Y29tbWl0IDVmYzU2YjkwN2Q5OTMyNjBiOWViZGIxMzdhZjY2ZmU2OTYzNWFlOWUKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglGcmkgSmFuIDMwIDE2OjM2OjQwIDIwMDkgLTA2MDAKCiAgICBBZGQgZmVhdHVyZS1yZW1vdmFsLXNjaGVkdWxlLnR4dAoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgMjU1ZDI4ZTE2NDJlOGZjMzJhNjc1MzIyNmJlMWE5NmI0ODFjZTExMQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglUdWUgRmViIDEwIDA5OjMyOjM4IDIwMDkgKzAxMDAKCiAgICA4eHggc2VyaWFsLCBzbWM6IENvZGluZy1TdHlsZSBjbGVhbnVwIHNlcmlhbCBTTUMgZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgMmIzZjEyYzIxNDM0NjUwOGNhZTNmMTI0NTgwOGMxY2E1NGM4MWZkZApBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglUdWUgRmViIDEwIDA5OjMxOjQ3IDIwMDkgKzAxMDAKCiAgICA4eHggc2VyaWFsLCBzbWM6IGFkZCBjb25maWd1cmFibGUgU01DIFJ4IGJ1ZmZlciBsZW4KCiAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9uIENPTkZJR19TWVNfU01DX1JYQlVGTEVOLgogICAgV2l0aCB0aGlzIG9wdGlvbiBpdCBpcyBwb3NzaWJsZSB0byBhbGxvdyB0aGUgcmVjZWl2ZQogICAgYnVmZmVyIGZvciB0aGUgU01DIG9uIDh4eCB0byBiZSBncmVhdGVyIHRoZW4gMS4gSW4gY2FzZQogICAgQ09ORklHX1NZU19TTUNfUlhCVUZMRU4gPT0gMSB0aGlzIGRyaXZlciB3b3JrcyBhcyB0aGUKICAgIG9sZCB2ZXJzaW9uLgoKICAgIFdoZW4gZGVmaW5pbmcgQ09ORklHX1NZU19TTUNfUlhCVUZMRU4gYWxzbwogICAgQ09ORklHX1NZU19NQVhJRExFIG11c3QgYmUgZGVmaW5lZCB0byBzZXR1cCB0aGUgbWF4aW11bQogICAgaWRsZSB0aW1lb3V0IGZvciB0aGUgU01DLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGU5MTVmOGJiNzNkNzQxNzhiYzIxZDNhNDU3OTU5ODgzYjFhZmQxYzAKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVRodSBGZWIgNSAyMTowNDozNiAyMDA5IC0wNTAwCgogICAgY29tbW9uL3todXNoLCBrZ2RiLCBzZXJpYWx9LmM6IGJ1aWxkIGJ5IENPQkpTLSQoLi4uKSBpbiBNYWtlZmlsZQoKICAgIE1vdmUgZ2xvYmFsICcjaWZkZWYgQ09ORklHX3h4eCAuLi4uICNlbmRpZicgb3V0IG9mIHRoZSAuYyBmaWxlcyBhbmQgaW50bwogICAgdGhlIENPQkpTLSQoQ09ORklHX3h4eCkgaW4gdGhlIE1ha2VmaWxlLiAgQWxzbyBkZWxldGUgdW51c2VkIHZhciBpbiBrZ2RiCiAgICBjb2RlIGluIHRoZSBwcm9jZXNzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBhYjc2ZTk4NDhhMWY0ZGI2NGQxNDIzMzc0MWQ3MzlhM2IzMzYwYzkzCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUaHUgRmViIDUgMjE6MDQ6NTAgMjAwOSAtMDUwMAoKICAgIGJ6aXAyOiBtb3ZlIGlmZGVmIGhhbmRsaW5nIHRvIE1ha2VmaWxlIENPQkpTLSQoLi4uKQoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBhZTBiMDVkZjA0ZTFjYzY1YzVhZDE5Y2NkMzYyZjRiZTgyZGY3MzE2CkF1dGhvcjogSmVycnkgVmFuIEJhcmVuIDxndmIudWJvb3RAZ21haWwuY29tPgpEYXRlOglUaHUgRmViIDUgMjI6MTg6MDIgMjAwOSAtMDUwMAoKICAgIEZpeCB3aGl0ZXNwYWNlIGRhbWFnZTogZG91YmxlIHNwYWNlIGNoYW5nZWQgdG8gYSB0YWIKCiAgICBBdCBzb21lIHBvaW50IGFuIGludGVudGlvbmFsIGRvdWJsZSBzcGFjZSBhdCB0aGUgZW5kIG9mIHRoZSBzZW50ZW5jZQogICAgZ290IGNoYW5nZWQgaW50byBhIHRhYiBpbiB0aGUgR1BMIGhlYWRlciBsaW5lOgogICAgICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIGRhbWFnZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDRmOTc1Njc4ZGU5OTViNTU3NDlkNWU4NDU5MGMyNjg5NzJhN2M4MzUKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAxMCAwOTo1MzoyOSAyMDA5ICswMTAwCgogICAgY2ZpOiBtYWtlIGZsYXNoX2dldF9pbmZvKCkgbm9uIHN0YXRpYwoKICAgIElmIG9uIHlvdXIgYm9hcmQgaXMgbW9yZSB0aGFuIG9uZSBmbGFzaCwgeW91IG11c3Qga25vdwogICAgdGhlIHNpemUgb2YgZXZlcnkgc2luZ2xlIGZsYXNoLCBmb3IgZXhhbXBsZSwgZm9yIHVwZGF0aW5nCiAgICB0aGUgRFRTIGJlZm9yZSBib290aW5nIExpbnV4LiBTbyBtYWtlIHRoaXMgZnVuY3Rpb24KICAgIGZsYXNoX2dldF9pbmZvKCkgZXh0ZXJuLCBhbmQgeW91IGNhbiBoYXZlIGFsbCBpbmZvCiAgICBhYm91dCB5b3VyIGZsYXNoZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODYzMjFmYzExMjhjOTNhMTBhYzRhZmI5ZDMxN2IwZGY4ZWNlMGY5ZQpBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CVRodSBGZWIgNSAyMzo1ODoyNSAyMDA5IC0wODAwCgogICAgbmV0OiByZW1vdmVkIGJvYXJkLXNwZWNpZmljIENPTkZJR3MgZnJvbSBNUEM1eHh4IEZFQyBkcml2ZXIKCiAgICBBZGRlZCBuZXcgQ09ORklHIG9wdGlvbnMgZm9yIHRoZSB0aHJlZSB0eXBlIG9mIE1BQy1QSFkgaW50ZXJjb25uZWN0IGFuZAogICAgYXBwbGllZCB0aGVtIGFsbCByZWxldmFudCBib2FyZCBjb25maWcgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDYzOGVkM2UyOTZlNzBmYWIyODZkMTU3YjdhZGVkYWFhNGEwOWE0NzQKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVRodSBGZWIgNSAyMTowNDo0NyAyMDA5IC0wNTAwCgogICAgbmV0L3NudHAuYzogbW92ZSBpZmRlZiBpbnRvIE1ha2VmaWxlIENPQkpTLSQoLi4uKQoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgOWU1YmU4MjE0YmE3NTE0MzZlNTdjM2JlMDQ0YmY2ZGNjYjlhNjY4NwpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEZlYiAzIDE4OjI2OjQxIDIwMDkgLTA2MDAKCiAgICB0c2VjOiBGaXggYSBidWcgaW4gc29mdC1yZXNldHRpbmcKCiAgICBTT0ZUX1JFU0VUIG11c3QgYmUgYXNzZXJ0ZWQgZm9yIGF0IGxlYXN0IDMgVFggY2xvY2tzLiAgVXN1YWxseSwgdGhhdCdzIGFib3V0IDMwCiAgICBjbG9jayBjeWNsZXMsIHNvIGl0J3MgYmVlbiBtb3N0bHkgd29ya2luZy4JQnV0IHdlIGhhZCBubyBndWFyYW50ZWUsIGFuZCBhdAogICAgc2xvd2VyIGJpdHJhdGVzLCBpdCdzIGp1c3Qgb3ZlciBhIG1pY3Jvc2Vjb25kIChvdmVyIDEwMDAgY2xvY2sgY3ljbGVzKS4gIFRoaXMKICAgIGVuZm9yY2VzIGEgMiBtaWNyb3NlY29uZCBnYXAgYmV0d2VlbiBhc3NlcnRpb24gYW5kIGRlYXNzZXJ0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgMDlmY2M4YjVkODY5MDNiNzZlN2U0ZDFkODc5ZDZmNGJjYTI1YzI3YgpBdXRob3I6IFNpbW9uIE11bnRvbiA8c2ltb25Abmlkb3Jhbi5tNWRhdGEuY29tPgpEYXRlOglNb24gRmViIDIgMDk6NDQ6MDggMjAwOSArMDAwMAoKICAgIEZpeCAxMDBNYnMgZXRoZXJuZXQgb3BlcmF0aW9uIG9uIHNoNzc2MyBiYXNlZCBib2FyZHMKCiAgICAxMDBNYnMgZXRoZXJuZXQgZG9lcyBub3Qgd29yayBvbiBzaDc3NjMgY2hpcHMgZHVlIHRvIHRoZSB3cm9uZyB2YWx1ZSBiZWluZwogICAgdXNlZCBpbiB0aGUgR0VDTVIgcmVnaXN0ZXIuIEZvbGxvd2luZyBkaWZmIGZpeGVzIHRoZSBwcm9ibGVtCgogICAgU2lnbmVkLW9mZi1ieTogU2ltb24gTXVudG9uCTxzaW1vbkBuaWRvcmFuLm01ZGF0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDJiYzJhOGY2ZGM5ZmRkYTQ2NTMxN2RhNTk0NzRlNjVjMjRhMzk4YTIKQXV0aG9yOiBrc2lAa29pOC5uZXQgPGtzaUBrb2k4Lm5ldD4KRGF0ZToJRnJpIEZlYiA2IDE2OjI3OjU1IDIwMDkgLTA4MDAKCiAgICBGaXggTVBDODI2MCB3aXRoIGV0aGVybmV0IG9uIFNDQwoKICAgIFRoaXMgZml4ZXMgTVBDODI2MCBjb21waWxhdGlvbiB3aXRoIGV0aGVybmV0IG9uIFNDQy4gUHJvYmFibHkgd2FzIGEKICAgIHR5cG8gb3Igc29tZXRoaW5nLi4uCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2V5IEt1YnVzaHluIDxrc2lAa29pOC5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGFlNWQ4ZjYxM2NlYzFhNmFmN2JmMWZjOWM0MmEzYjg1NmYwMjEwMjMKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJRnJpIEphbiAzMCAxMjo1NjoxNSAyMDA5ICswMTAwCgogICAgODJ4eCBzZXJpYWwsIHNtYzogQ29kaW5nLVN0eWxlIGNsZWFudXAgc2VyaWFsIFNNQyBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBjOTJmYWM5MWEwNmM2MGY4NzRjNjA1ZTNjYTgwZGQ0MDdjMWNhYWE3CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMzAgMTI6NTU6MzggMjAwOSArMDEwMAoKICAgIDgyeHggc2VyaWFsLCBzbWM6IGFkZCBjb25maWd1cmFibGUgU01DIFJ4IGJ1ZmZlciBsZW4KCiAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9uIENPTkZJR19TWVNfU01DX1JYQlVGTEVOLgogICAgV2l0aCB0aGlzIG9wdGlvbiBpdCBpcyBwb3NzaWJsZSB0byBhbGxvdyB0aGUgcmVjZWl2ZQogICAgYnVmZmVyIGZvciB0aGUgU01DIG9uIDgyeHggdG8gYmUgZ3JlYXRlciB0aGVuIDEuIEluIGNhc2UKICAgIENPTkZJR19TWVNfU01DX1JYQlVGTEVOID09IDEgdGhpcyBkcml2ZXIgd29ya3MgYXMgdGhlCiAgICBvbGQgdmVyc2lvbi4KCiAgICBXaGVuIGRlZmluaW5nIENPTkZJR19TWVNfU01DX1JYQlVGTEVOIGFsc28KICAgIENPTkZJR19TWVNfTUFYSURMRSBtdXN0IGJlIGRlZmluZWQgdG8gc2V0dXAgdGhlIG1heGltdW0KICAgIGlkbGUgdGltZW91dCBmb3IgdGhlIFNNQy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBiY2VkN2NjZWZhMDg1MTJjNTRhNmQxNDY2NThmZjdkYmMzM2Q1ZGZlCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIEZlYiA2IDA4OjA4OjA2IDIwMDkgLTA2MDAKCiAgICBwcGM6IEZpeCByb2xsIG92ZXIgYnVnIGluIGZsdXNoX2NhY2hlKCkKCiAgICBJZiB3ZSBjYWxsIGZsdXNoX2NhY2hlKDB4ZmZmZmYwMDAsIDB4MTAwMCkgaXQgd291bGQgbmV2ZXIKICAgIHRlcm1pbmF0ZSB0aGUgbG9vcCBzaW5jZSBlbmQgPSAweGZmZmZmZmZmIGFuZCB3ZSdkIHJvbGwgb3ZlcgogICAgb3VyIGNvdW50ZXIgZnJvbSAweGZmZmZmZTAgdG8gMCAoYXNzdW1pbmcgYSAzMi1ieXRlIGNhY2hlIGxpbmUpCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA4N2M5MDYzOTYzNTYxZDNkMDEwNjRiZTM0ZDBjMzA4NTVhNTY1ODdiCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEZlYiA1IDIwOjQwOjU4IDIwMDkgLTA2MDAKCiAgICBwcGM6IE1vdmUgQ09ORklHX01BWF9NRU1fTUFQUEVEIHRvIGNvbW1vbiBjb25maWcuaAoKICAgIE1vdmVkIENPTkZJR19NQVhfTUVNX01BUFBFRCB0byB0aGUgYXNtL2NvbmZpZy5oIHNvIGl0cyBrZXB0IGNvbnNpc3RlbnQKICAgIGJldHdlZW4gdGhlIHR3byBjdXJyZW50IHVzZXJzIChsaWJfcHBjL2JvYXJkLmMsIDQ0eCBTUEQgRERSMikuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDdkNDFjYzNhMTFhMDNjNmQ1NjE0NmQwNTYxNDVkZjczZjQ3ZWI1MApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBGZWIgNSAyMDo0MDo1NyAyMDA5IC0wNjAwCgogICAgQWRkIGFuIGFyY2hpdGVjdHVyZSBzcGVjaWZpYyBjb25maWcuaCBmb3IgY29tbW9uIGRlZmluZXMKCiAgICBXZSBoYXZlIGNvbW1vbiBkZWZpbmVzIHRoYXQgd2UgZHVwbGljYXRlIGluIHZhcmlvdXMgd2F5cy4gIEhhdmluZyBhbgogICAgYXJjaCBzcGVjaWZpYyBjb25maWcuaCBnaXZlcyB1cyBhIGNvbW1vbiBsb2NhdGlvbiBmb3IgdGhvc2UgZGVmaW5lcy4KCiAgICBFdmVudHVhbGx5IHdlIHNob3VsZCBiZSBhYmxlIHRvIHJlcGxhY2UgdGhpcyB3aGVuIHdlIGhhdmUgcHJvcGVyCiAgICBLY29uZmlnIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA0Yzc4ZDRhNmMwMTYyMTcyMWI3MzI0MThlMWM2ZGE2ODRhNTZiYmIxCkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5YkBrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgRmViIDMgMTg6MTA6NTYgMjAwOSAtMDYwMAoKICAgIG1wYzg2NDFocGNuOiBDaGFuZ2UgUENJIE1FTSBwY2kgYnVzIGFkZHJlc3MKCiAgICBOb3cgdGhhdCB0aGUgcmVzdCBvZiB1LWJvb3QgY2FuIHN1cHBvcnQgaXQsIGNoYW5nZSB0aGUgUENJIGJ1cwogICAgYWRkcmVzcyBvZiB0aGUgUENJIE1FTSByZWdpb25zIGZyb20gMHg4MDAwMDAwMCB0byAweGMwMDAwMDAwLAogICAgYW5kIHVzZSB0aGUgc2FtZSBidXMgYWRkcmVzcyBmb3IgYm90aCBQQ0kxIGFuZCBQQ0kyLiAgVGhpcyB3aWxsCiAgICBtYXhpbWl6ZSB0aGUgYW1vdW50IG9mIFBDSSBhZGRyZXNzIHNwYWNlIGxlZnQgb3ZlciB0byBtYXAgUkFNCiAgICBvbiBzeXN0ZW1zIHdpdGggbGFyZ2UgYW1vdW50cyBvZiBtZW1vcnkuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5YkBrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDE3ODVkYmVlZDQzNTk5ZWVkMWQ4ODc1NjczYzk2OTEyY2Q3NzAxNDEKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3liQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBGZWIgMyAxODoxMDo1NSAyMDA5IC0wNjAwCgogICAgZHJpdmVycy9ibG9jay9haGNpOiBGaXggcGNpIG1hcHBpbmcgYnVnCgogICAgVGhlIGNvZGUgYXNzdW1lcyB0aGF0IHRoZSBwY2kgYnVzIGFkZHJlc3MgYW5kIHRoZSB2aXJ0dWFsCiAgICBhZGRyZXNzIHVzZWQgdG8gYWNjZXNzIGEgcmVnaW9uIGFyZSB0aGUgc2FtZSwgYnV0IHRoZXkgbWlnaHQKICAgIG5vdCBiZS4gIEZpeCB0aGlzIGFzc3VtcHRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5YkBrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGQ1OTFhODBlNzQwOTFlN2EwNjU4ZDE2NTcyMWU2YzdkZTJlZjBiY2QKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3liQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBGZWIgMyAxODoxMDo1NCAyMDA5IC0wNjAwCgogICAgTVBDODY0MUhQQ046IEVuYWJsZSBDT05GSUdfQUREUl9NQVAKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3liQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNDlmNDZmM2JmMDhhYWY3YjFkYjEzMWExMDgyZjFlNjAzYmI3YTk0YgpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreWJAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEZlYiAzIDE4OjEwOjUzIDIwMDkgLTA2MDAKCiAgICBtcGM4NjQxaHBjbjogQ2xlYW4gdXAgUENJIG1hcHBpbmcgY29uY2VwdHMKCiAgICBDbGVhbiB1cCBQQ0kgbWFwcGluZyBjb25jZXB0cyBpbiB0aGUgODY0MSBjb25maWcgLSByZW5hbWUgX0JBU0UKICAgIHRvIF9CVVMsIGFzIGl0J3MgYWN0dWFsbHkgYSBQQ0kgYnVzIGFkZHJlc3MsIHNlcGFyYXRlIHZpcnR1YWwKICAgIGFuZCBwaHlzaWNhbCBhZGRyZXNzZXMgaW50byBfVklSVCBhbmQgX1BIWVMsIGFuZCB1c2UgZWFjaAogICAgYXBwb3ByaWF0ZWx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreWJAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBjOTMxNWU2YjRmMjQ0OTgxZGUwYjJlYWFhMjlhNzgzOGExNjViNDk0CkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5YkBrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgRmViIDMgMTg6MTA6NTIgMjAwOSAtMDYwMAoKICAgIG1wYzg2eHg6IEFkZCBzdXBwb3J0IHRvIHBvcHVsYXRlIGFkZHIgbWFwIGJhc2VkIG9uIEJBVHMKCiAgICBJZiBDT05GSUdfQUREUl9NQVAgaXMgZW5hYmxlZCwgdXBkYXRlIHRoZSBhZGRyZXNzIG1hcAogICAgd2hlbmV2ZXIgd2Ugd3JpdGUgYSBiYXQuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5YkBrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGQzNWFlNWE5Mzg2NzliZDdlMTgxNjdmYWY3OWQwZmIzYzY2MzliNTEKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3liQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBGZWIgMyAxODoxMDo1MSAyMDA5IC0wNjAwCgogICAgcG93ZXJwYzogTW92ZSBkdXBsaWNhdGVkIEJBVCBkZWZpbmVzIHRvIG1tdS5oCgogICAgVGhlIEJBVCBmaWVsZHMgYXJlIGFyY2hpdGVjdGVkOyB0aGVyZSdzIG5vIG5lZWQgZm9yIHRoZXNlIHRvIGJlIGluCiAgICBjcHUtc3BlY2lmaWMgZmlsZXMuICBEcm9wIHRoZSBkdXBsaWNhdGlvbiBhbmQgbW92ZSB0aGVzZSB0bwogICAgaW5jbHVkZS9hc20tcHBjL21tdS5oLiAgQWxzbywgcmVtb3ZlIHRoZSBCTF94eHggZGVmaW5lcyB0aGF0IHdlcmUgb25seQogICAgdXNlZCBieSB0aGUgYWxhc2thIGJvYXJkLCBhbmQgc3dpdGNoIHRvIHVzaW5nIHRoZSBCQVRVX0JMX3h4eCBkZWZpbmVzCiAgICB1c2VkIGJ5IGFsbCB0aGUgb3RoZXIgYm9hcmRzLiAgVGhlIEJMXyBkZWZpbmVzIHByZXZpb3VzbHkgaW4gdXNlCiAgICBoYWQgdG8gYmUgc2hpZnRlZCBpbnRvIHRoZSBwcm9wZXIgcG9zaXRpb24gZm9yIHVzZSwgd2hpY2ggd2FzIGluZWZmaWNpZW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreWJAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA2ZTYxZmFlNGQzNjBhMTM4MGI2M2U3ZDAwN2IzMTQ3N2UzNjZiY2NlCkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5YkBrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgRmViIDMgMTg6MTA6NTAgMjAwOSAtMDYwMAoKICAgIGRyaXZlcnMvcGNpOiBDcmVhdGUgcGNpX21hcF9iYXIgZnVuY3Rpb24KCiAgICBJdCBpcyBubyBsb25nZXIgYWx3YXlzIHRydWUgdGhhdCB0aGUgcGNpIGJ1cyBhZGRyZXNzIGNhbiBiZQogICAgdXNlZCBhcyB0aGUgdmlydHVhbCBhZGRyZXNzIGZvciBwY2kgYWNjZXNzZXMuICBwY2lfbWFwX2JhcigpCiAgICBpcyBjcmVhdGVkIHRvIHJldHVybiB0aGUgdmlydHVhbCBhZGRyZXNzIGZvciBhIHBjaSByZWdpb24uCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5YkBrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDJlY2NhMzQwMTc3NWIxMjVjM2I5ZmY2NTc2NmJlZmIyMzk4OTQxNGIKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3liQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBGZWIgMyAxODoxMDo0OSAyMDA5IC0wNjAwCgogICAgbXBjODY0MWhwY246IFNldCB1cCBvdXRib3VuZCBwY2kgd2luZG93cyBiZWZvcmUgaW5ib3VuZAoKICAgIEJlY2F1c2UgdGhlIGluYm91bmQgcGNpIHdpbmRvd3MgYXJlIG1hcHBlZCBnZW5lcm91c2x5LCBzZXQgdXAKICAgIHRoZSBtb3JlIHNwZWNpZmljIG91dGJvdW5kIHdpbmRvd3MgZmlyc3QuICBUaGlzIHdheSwgd2hlbiB3ZQogICAgc2VhcmNoIHRoZSBwY2kgcmVnaW9ucyBmb3Igc29tZXRoaW5nLCB3ZSB3aWxsIGhpdCBvbiB0aGUgbW9yZQogICAgc3BlY2lmaWMgcmVnaW9uLiAgVGhpcyBjYW4gYWN0dWFsbHkgYmUgYSBwcm9ibGVtIG9uIHN5c3RlbXMKICAgIHdpdGggbGFyZ2UgYW1vdW50cyBvZiBSQU0uCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5YkBrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGI4MWI3NzNlYWQwNjg3MTE0ZGM4YTgwMGY5OWVhNmU1MDQ0NDc3MzkKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3liQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBGZWIgMiAxNjozNDo1MiAyMDA5IC0wNjAwCgogICAgbXBjODY0MWhwY246IFVzZSBwaHlzaWNhbCBhZGRyZXNzIGluIGZsYXNoIGJhbmtzIGRlZmludGlvbgoKICAgIElmIHRoZSBWQSBhbmQgUEEgb2YgdGhlIGZsYXNoIGFyZW4ndCB0aGUgc2FtZSwgdGhlIGJhbmtzIGxpc3QKICAgIHNob3VsZCBiZSBpbml0aWFsaXplZCB0byBob2xkIHRoZSBwaHlzaWNhbCBhZGRyZXNzLiAgQ29ycmVjdCB0aGlzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreWJAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAyZDQzZTg3M2EyOWNhNDk1OWJhNmEzMGZjN2ZiMzk2ZDNmZDBkY2NmCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIEZlYiA2IDA5OjQ5OjMyIDIwMDkgLTA2MDAKCiAgICBwY2k6IGdpdmUgcHJlZmVyZW5jZSB0byBub24tUENJX1JFR0lPTl9TWVNfTUVNT1JZIHJlZ2lvbnMgd2hlbiBtYXRjaGluZwoKICAgIFdoZW4gd2Ugc2VhcmNoIGZvciBhbiBhZGRyZXNzIG1hdGNoIGluIHBjaV9ob3NlX3twaHlzX3RvX2J1cyxidXNfdG9fcGh5c30KICAgIHdlIHNob3VsZCBnaXZlIHByZWZlcmVuY2UgdG8gbWVtb3J5IHJlZ2lvbnMgdGhhdCBhcmVuJ3Qgc3lzdGVtIG1lbW9yeS4KCiAgICBJdHMgcG9zc2libGUgdGhhdCB3ZSBoYXZlIG92ZXIgbWFwcGVkIHN5c3RlbSBtZW1vcnkgaW4gdGhlIHJlZ2lvbnMgYW5kCiAgICB3ZSB3YW50IHRvIGF2b2lkIGRlcGVuZGluZyBvbiB0aGUgb3JkZXIgb2YgdGhlIHJlZ2lvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmZjRlNjZlOTNjMWFkNDc2NDRiZTNiNGZmZDZhNDZlMWNlOWI2NjEyCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIEZlYiA2IDA5OjQ5OjMxIDIwMDkgLTA2MDAKCiAgICBwY2k6IFJlbmFtZSBQQ0lfUkVHSU9OX01FTU9SWSB0byBQQ0lfUkVHSU9OX1NZU19NRU1PUlkgZm9yIGNsYXJpdHkKCiAgICBUaGUgUENJX1JFR0lPTl9NRU1PUlkgYW5kIFBDSV9SRUdJT05fTUVNIGFyZSBhIGJpdCB0byBzaW1pbGFyIGFuZAogICAgY2FuIGJlIGNvbmZ1c2luZyB3aGVuIHJlYWRpbmcgdGhlIGNvZGUuCgogICAgUmVuYW1lIFBDSV9SRUdJT05fTUVNT1JZIHRvIFBDSV9SRUdJT05fU1lTX01FTU9SWSB0byBjbGFyaWZ5IGl0cyB1c2VkCiAgICBmb3Igc3lzdGVtIG1lbW9yeSBtYXBwaW5nIHB1cnBvc2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgOGRhNjAxMjgwYThhY2JjMzM4NTc4NDc4MGVkMzUxMzBlNTM4MTJmMQpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CVdlZCBGZWIgNCAxMzo0NzoyMiAyMDA5IC0wNjAwCgogICAgTkFORDogQWRkIHRpbWVvdXQgZm9yIHJlc2V0IGNvbW1hbmQKCiAgICBXaXRob3V0IHRoZSB0aW1lb3V0IHByZXNlbnQgYW4gaW5maW5pdGUgbG9vcCBjYW4gb2NjdXIgaWYgdGhlCiAgICBOQU5EIGRldmljZSBpcyBicm9rZW4gb3Igbm90IHByZXNlbnQuCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDEwZGM2YTliZWY3M2Q3ZDRjYjI1YjNmZGUyN2VlOTFmODQ4NGIxMjYKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglXZWQgRmViIDQgMTM6Mzk6NDAgMjAwOSAtMDYwMAoKICAgIE5BTkQ6IFNpbGVuY2Ugd2FybmluZyB3aGVuIENPTkZJR19TWVNfTkFORF9RVUlFVF9URVNUCgogICAgQ29tbWl0IGNmYTQ2MGFkZmRlZmNjMzBkMTA0ZTFhOWVlNDQ5OTRlZTM0OWJiN2IgcmVtb3ZlZCBzdXBwb3J0CiAgICBmb3IgZGlzYWJsaW5nIHRoZSAiTm8gTkFORCBkZXZpY2UgZm91bmQhISEiIHdhcm5pbmcgd2hlbgogICAgQ09ORklHX1NZU19OQU5EX1FVSUVUX1RFU1Qgd2FzIGRlZmluZWQuICBUaGlzIHJlLWFkZHMgc3VwcG9ydAogICAgZm9yIHNpbGVuY2luZyB0aGUgd2FybmluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWQwOWFiMmUzYWMyOGYzMDQzNzJlY2ViNGE1Y2I0ZDI0ZTEwMmExMwpBdXRob3I6IFZhbGVyaXkgR2x1c2hrb3YgPGd2dkBsc3RlYy5jb20+CkRhdGU6CU1vbiBKYW4gMTkgMTY6MzI6NTkgMjAwOSArMDIwMAoKICAgIE5BTkQ6IEZpeGVkIGludmFsaWQgcG9pbnRlcnMgdG8gc3RhdGljIHJlbG9jYXRlZCBjaGlwIG5hbWVzCgogICAgRGVhciBXb2xmZ2FuZywKCiAgICBZb3UgYXJlIHJpZ2h0LCB0aGUgcGF0Y2ggd2FzIHVnbHkuCiAgICBUaGUgbmV3IG9uZSBzZWVtcyB0byBiZSBiZXR0ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogVmFsZXJpeSBHbHVzaGtvdiA8Z3Z2QGxzdGVjLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVhOTQyN2RjOWI4NDM4NzU5ZGIzZjY3YTFlNTQ3MDYyZjc2ZWIxOGQKQXV0aG9yOiBkZXJla0BzaWNvbml4LmNvbSA8ZGVyZWtAc2ljb25peC5jb20+CkRhdGU6CU1vbiBKYW4gMjYgMTQ6MDg6MTcgMjAwOSAtMDcwMAoKICAgIGVudl9uYW5kOiBmaXggZW52IG1lbW9yeSByZWxlYXNlCgogICAgVGhpcyBmaXhlcyBhIGJ1ZyB0aGF0IHRtcCBlbnZpcm9ubWVudCBtZW1vcnkgbm90IGJlaW5nIHJlbGVhc2VkLgoKICAgIFNpZ25lZC1vZmYtYnk6IERlcmVrIE91IDxkb3VAc2ljb25peC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2OTg5ZTRmNTQ2ZDk2MGE0MDdkZDU0MjVmODAwZGZmOTc1MWM4MTMyCkF1dGhvcjogUmljaGFyZCBSZXRhbnVidW4gPFJpY2hhcmRSZXRhbnVidW5AUnVnZ2VkQ29tLmNvbT4KRGF0ZToJVGh1IEZlYiA1IDA5OjMzOjUwIDIwMDkgLTA1MDAKCiAgICBDb2xkZmlyZTogTTUyN3g6IEFkZCBtaXNzaW5nIEdQSU8gcmVnaXN0ZXIgYWRkcmVzcyBkZWZpbmVzCgogICAgQWRkIG1pc3NpbmcgR1BJTyByZWdpc3RlcnMgYWRkcmVzcyBkZWZpbml0aW9uIGZvciBDb2xkZmlyZSBNNTI3MS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNoYXJkIFJldGFudWJ1biA8UmljaGFyZFJldGFudWJ1bkBSdWdnZWRDb20uY29tPgoKY29tbWl0IGM0ZmY3N2Y1ZTZjM2EwMTYxMGNlOTc0MzRjMGQ1OWFjYjE0NzZmOTUKQXV0aG9yOiBSaWNoYXJkIFJldGFudWJ1biA8UmljaGFyZFJldGFudWJ1bkBSdWdnZWRDb20uY29tPgpEYXRlOglGcmkgSmFuIDIzIDE0OjQyOjU4IDIwMDkgLTA1MDAKCiAgICBDb2xkZmlyZTogbWNmbWlpOiBBbGxvdyBub24tYXV0b25lZ290aWF0aW5nIFBIWXMgdG8gdXNlIG1paSBjb21tYW5kCgogICAgTW9kaWZpZWQgbWlpX2luaXQgdG8gc3VwcG9ydCBib2FyZHMgd2l0aCBQSFlzIHRoYXQgYXJlIG5vdCBzZXQgdG8KICAgIGF1dG9uZWdvdGlhdGUsIGJ1dCBzdGlsbCB3YW50IHRvIHVzZSB1LWJvb3QncyBtaWkgY29tbWFuZHMgdG8gcHJvYmUKICAgIHRoZSBzbWkgYnVzLiBTdWNoIFBIWXMgd2lsbCBub3Qgc2V0IHRoZSBBdXRvbmVnb3RpYXRlLWRvbmUgYml0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+Cgpjb21taXQgOTJkM2U2ZTBmZmNiYjcyMjRjODMxMDRmOGQ4N2I1YjRiZjM5YTM4ZgpBdXRob3I6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+CkRhdGU6CUZyaSBKYW4gMjMgMTE6NDQ6MzAgMjAwOSAtMDUwMAoKICAgIENvbGRmaXJlOiBBcHBsaWVkIGJhdWRyYXRlIGZvcm11bGEgb2Ygc2VyaWFsX2luaXQgdG8gc2VyaWFsX3NldGJyZwoKICAgIEFwcGxpZWQgdGhlIHBhdGNoIGZvciBiYXVkcmF0ZSBkaXZpZGVyIHZhbHVlIHRydW5jYXRpb24gZm9yCiAgICBzZXJpYWxfaW5pdCB0byBzZXJpYWxfc2V0YnJnIGFzIHdlbGwuCgogICAgU2lnbmVkLW9mZi1ieTogUmljaGFyZCBSZXRhbnVidW4gPFJpY2hhcmRSZXRhbnVidW5AUnVnZ2VkQ29tLmNvbT4KCmNvbW1pdCA4NzA2ZWYzNzhmMmRiMWVmNjViOWMyZjkwOTU2MWYyM2UzZGMyMTQ4CkF1dGhvcjogUmljaGFyZCBSZXRhbnVidW4gPFJpY2hhcmRSZXRhbnVidW5AUnVnZ2VkQ29tLmNvbT4KRGF0ZToJRnJpIEphbiAyMyAxNDowNzowNSAyMDA5IC0wNTAwCgogICAgQ29sZGZpcmU6IE01MjcxRVZCOiBCb2FyZCBoZWFkZXIgdXBkYXRlIChkZXBlbmRlbmNpZXMpCgogICAgQ2xlYW51cCBmb3IgTTUyNzFFVkI6CiAgICBBZGRlZCBjbGFyaWZpY2F0aW9uIG9uIHRoZSB1c2Ugb2YgQ09ORklHX1NZU19DTE9DSy4KICAgIE1vZGlmaWVkIHRvIHVzZSB1LWJvb3QncyBIVVNIIHBhcnNlci4KICAgIENsZWFudXAgb24gZW52aXJvbm1lbnQgc2V0dGluZ3MuCiAgICBSZW1vdmVkIGNvbXBpbGVyIHdhcm5pbmcgYnkgZGVmaW5pbmcgQ09ORklHX1NZU19DUzBfKgoKICAgIERlcGVuZGVuY2llczoKICAgIEFkZGVkIHRoZSB1c2Ugb2YgQ09ORklHX1NZU19NQ0ZfU1lOQ1IgZm9yIGNsb2NrIG11bHRpcGxpZXIuCiAgICBUaGlzIGRlcGVuZHMgb24gYSBwYXRjaCB0byBpbmNsdWRlL2FzbS1tNjhrL201MjcxLmgKICAgIHRoYXQgZGVmaW5lcyB0aGUgbXVsdGlwbGllciBhbmQgZGl2aWRlciByYXRpb3MuCgogICAgUmVtb3ZlZCB0aGUgZGVmaW5pdGlvbiBvZiBDT05GSUdfU1lTX0ZFQ0kyQy4KICAgIFRoaXMgZGVwZW5kcyBvbiBhIHBhdGNoIHRoYXQgcmVtb3ZlcyB0aGUgdXNlIG9mIGl0IGluCiAgICBjcHUvbWNmNTJ4Mi9jcHVfaW5pdC5jCgogICAgU2lnbmVkLW9mZi1ieTogUmljaGFyZCBSZXRhbnVidW4gPFJpY2hhcmRSZXRhbnVidW5AUnVnZ2VkQ29tLmNvbT4KCmNvbW1pdCBlMGRiMzQ0ZmFiZmViNGY5NjQ5ODQ2Zjk0ODM4ZjUxMTcyZjZhMWY2CkF1dGhvcjogUmljaGFyZCBSZXRhbnVidW4gPFJpY2hhcmRSZXRhbnVidW5AUnVnZ2VkQ29tLmNvbT4KRGF0ZToJVGh1IEphbiAyOSAxNDozNjowNiAyMDA5IC0wNTAwCgogICAgQ29sZGZpcmU6IE01MjcxOiBBbGxvdyBib2FyZCBoZWFkZXIgZmlsZSB0byBzcGVjaWZ5IGNsb2NrIG11bHRpcGxpZXIKCiAgICBNNTI3MSBkeW5hbWljIGNsb2NrIG11bHRpcGxpZXIuIEl0IGlzIGN1cnJlbnRseSBmaXhlZCBhdCAxMDBNSHouCgogICAgQWxsb3cgdGhlIGJvYXJkIGhlYWRlciBmaWxlIHRvIHNldCB0aGVpciBvd24gbXVsdGlwbGllciBhbmQgZGl2aWRlci4KICAgIEFkZGVkIHRoZSAjZGVmaW5lIGZvciB0aGUgbXVsdGlwbGllciBhbmQgZGl2aWRlciB0byB0aGUgY3B1IGhlYWRlciBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+Cgpjb21taXQgZDFlZjI1ZGQ4MWM3OWRjZmFkNWMyZmYwMTYyYjFiZWEyMWQwNGJjMwpBdXRob3I6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+CkRhdGU6CUZyaSBKYW4gMjMgMTA6NDc6MTMgMjAwOSAtMDUwMAoKICAgIENvbGRmaXJlOiBNNTI3MUVWQjogUmVtb3ZlIHVzYWdlIG9mIENPTkZJR19TWVNfRkVDSTJDCgogICAgRGlzY29udGludWUgdGhlIHVzZSBvZiBDT05GSUdfU1lTX0ZFQ0kyQyAob25seSB1c2VkIGJ5IE01MjcxRVZCKS4KICAgIFVzZSByZWFkLW1vZGlmeS13cml0ZSB0byBhY3RpdmF0ZSB0aGUgRkVDIHBpbnMgd2l0aG91dCBkaXNhYmxpbmcgSTJDLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+Cgpjb21taXQgZWU3M2NjNTlhYjkwNDk3NmFmM2MzM2I0NTRmYzg0Zjc4NjE4YjJkMQpBdXRob3I6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+CkRhdGU6CUZyaSBKYW4gMjMgMDk6NDU6MzQgMjAwOSAtMDUwMAoKICAgIENvbGRmaXJlOiBjbWRfYmRpbmZvIGNsZWFudXAKCiAgICBDT05GSUdfTTY4SyBiZGluZm8gY2xlYW51cDoKCiAgICBGaXhlZCBjb21waWxlciB3YXJuaW5nIGFib3V0IGJhdWRyYXRlIHByaW50aW5nLgogICAgZm9ybWF0ICclZCcgZXhwZWN0cyB0eXBlICdpbnQnLCBidXQgYXJndW1lbnQgMiBoYXMgdHlwZSAnbG9uZyB1bnNpZ25lZCBpbnQnLgoKICAgIEFkZGVkIHByaW50aW5nIG9mICJjcHVmcmVxIgoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+Cgpjb21taXQgNGZmYzM5MDUwYWE0NmVkOGEzZDI5NzMyMjkzZGZmNzY5ZTU0ZmZmYQpBdXRob3I6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+CkRhdGU6CUZyaSBKYW4gMjMgMDk6Mjc6MDAgMjAwOSAtMDUwMAoKICAgIENvbGRmaXJlOiBGaXggaGFsZi1iYXVkIFVBUlQgYnkgYWRkaW5nIE01MjcxIHRvIENvbGRmaXJlIHYyIGNvcmUgbGlzdAoKICAgIEFkZGVkIHRoZSBDT05GSUdfTTUyNzEgdG8gdGhlIGxpc3Qgb2YgQ29sZGZpcmUgVjIgcHJvY2Vzc29yLiBUaGlzCiAgICB3YXMgY2F1c2luZyB0aGUgYnVzIGNsb2NrIChub3QgQ1BVIGNsb2NrKSB0byBiZSBkZWNsYXJlZCB0d2ljZSBhcwogICAgZmFzdCBhcyBpdCBhY3R1YWxseSBpcy4gVGhpcyBjYXVzZXMgVUFSVFMgdG8gb3BlcmF0ZSBhdCBoYWxmIHRoZQogICAgc3BlY2lmaWVkIGJhdWRyYXRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+Cgpjb21taXQgNTlkMWJkYTdmOTJjOGEyOGMzYWJhOTRlNDgwNjM3NDlkNDI1OTQ5ZgpBdXRob3I6IERpcmsgRWliYWNoIDxlaWJhY2hAZ2RzeXMuZGU+CkRhdGU6CVR1ZSBGZWIgMyAxNToxNToyMSAyMDA5ICswMTAwCgogICAgcHBjNHh4OiBNYWtlIFBDSUUgc3VwcG9ydCBzZWxlY3RhYmxlCgogICAgT24gc29tZSBwbGF0Zm9ybXMgUENJRSBzdXBwb3J0IGlzIG5vdCByZXF1aXJlZCwgYnV0IHdvdWxkIGJlIGluY2x1ZGVkCiAgICBiZWNhdXNlIHRoZSBjcHUgc3VwcG9ydHMgaXQuIFRvIHJlZHVjZSBmb29wcmludCBpdCBpcyBub3cgY29uZmlndXJhYmxlCiAgICB2aWEgQ09ORklHX1BDSV9ESVNBQkxFX1BDSUUuCgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBFaWJhY2ggPGVpYmFjaEBnZHN5cy5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBiMTI5ZWZmNWVkZTM5NGNjMWZhZWI2ZGJmNmE5ODdlOTFhYmNlNTUyCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBGZWIgMyAyMjoxMzoxNiAyMDA5ICswMTAwCgogICAgcHBjNHh4OiBPbmx5IGZpeHVwIG9wYiBhdHRhY2hlZCBVQVJUcwoKICAgIFRoaXMgcGF0Y2ggdXBkYXRlcyB0aGUgZmR0IFVBUlQgY2xvY2sgZml4dXAgY29kZSB0bwogICAgb25seSB0b3VjaCBDUFUgaW50ZXJuYWwgVUFSVHMgb24gNHh4IHN5c3RlbXMuCiAgICBPbmx5IHRoZXNlIFVBUlRzIGFyZSBkZWZpbml0ZWx5IGNsb2NrZWQgYnkgZ2QtPnVhcnRfY2xrLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDRiN2UzZDA0NWNjODJmN2Y3YjZmM2ExOWI1NGE4MTRkYTM2YWM1MmMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBKYW4gMTMgMTE6MDA6MjkgMjAwOSAtMDUwMAoKICAgIEJsYWNrZmluOiBtb3ZlIGRlZmF1bHQgYm9vdCBTUEkgQ1MgdG8gY29tbW9uIGNvZGUKCiAgICBNb3ZlIHRoZSBkZWZhdWx0IFNQSSBDUyB0aGF0IHdlIGJvb3QgZnJvbSBpbnRvIGNvbW1vbiBjb2RlIHNvIHRoYXQgaXQgY2FuCiAgICBiZSB1c2VkIGluIG90aGVyIFNQSSBkcml2ZXJzIGFuZCBlbnZpcm9ubWVudCBzZXR0aW5ncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgZjc5MGVmNmZmMTIzODFjYjBlNDNkZTU0ZmIyYjBmMTIwNGFkOGVkNgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJV2VkIERlYyAxMCAxMjozMzo1NCAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IGR5bmFtaWNhbGx5IHVwZGF0ZSBVQVJUIHNwZWVkIHdoZW4gaW5pdGlhbGl6aW5nCgogICAgUHJldmlvdXNseSwgYm9vdGluZyBvdmVyIHRoZSBVQVJUIHJlcXVpcmVkIHRoZSBiYXVkIHJhdGUgdG8gYmUga25vd24gYWhlYWQKICAgIG9mIHRpbWUuICBVc2luZyBhIGJpdCBvZiB0cmlja3kgc2ltcGxlIG1hdGgsIHdlIGNhbiBjYWxjdWxhdGUgdGhlIG5ldyBib2FyZAogICAgcmF0ZSBiYXNlZCBvbiB0aGUgb2xkIGRpdmlzb3JzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFJvYmluIEdldHogPHJnZXR6QGJsYWNrZmluLnVjbGludXgub3JnPgoKY29tbWl0IDk3ZjI2NWYxNGYyMzA1MGYzY2I5OTdmNjE3ZjNhNjkxN2I4NDNlYTIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBEZWMgOSAxNzoyMTowOCAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IGFkZCBzdXBwb3J0IGZvciBmYXN0IFNQSSByZWFkcyB3aXRoIEJvb3QgUk9NCgogICAgTmV3ZXIgQmxhY2tmaW4gYm9vdCByb21zIHN1cHBvcnQgdXNpbmcgdGhlIGZhc3QgU1BJIHJlYWQgY29tbWFuZCByYXRoZXIgdGhhbgogICAganVzdCB0aGUgc2xvdyBvbmUuCUlmIHRoZSBmdW5jdGlvbmFsaXR5IGlzIGF2YWlsYWJsZSwgdGhlbiB1c2UgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDY3NjE5OTgyYmZjNWNkNjI3MTBhNDhlM2NiZmZjMzA0Y2I3OGMzNDEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBPY3QgMTEgMjE6NDY6NTIgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBjaGVjayBmb3IgcmVzZXJ2ZWQgc2V0dGluZ3MgaW4gRERSIE1NUnMKCiAgICBTb21lIGJpdHMgb2YgdGhlIEREUiBNTVJzIHNob3VsZCBub3QgYmUgc2V0LiAgSWYgdGhleSBkbywgYmFkIHRoaW5ncyBtYXkKICAgIGhhcHBlbiAobGlrZSByYW5kb20gZmFpbHVyZXMgb3IgaGFyZHdhcmUgZGVzdHJ1Y3Rpb24pLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA2MjJhOGRjMDk1OGRkNTk5NzQzMzQ4ZWE5NGViMTBiOWQwYmU4YWU2CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgT2N0IDExIDIxOjU0OjAwIDIwMDggLTA0MDAKCiAgICBCbGFja2Zpbjogc2V0IGRlZmF1bHQgdm9sdGFnZSBsZXZlbHMgZm9yIEJGNTM4L0JGNTM5IHBhcnRzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDA5ZGM2YjBiYmQxZDVlMzljZGRkZWViYzA1OWY5YTc1NjMwZTRmNmYKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVN1biBKdW4gMSAwMToyOTo1NyAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IHVzZSBvbi1jaGlwIHN5c2NvbnRyb2woKSByb20gZnVuY3Rpb24gd2hlbiBhdmFpbGFibGUKCiAgICBOZXdlciBCbGFja2ZpbidzIGhhdmUgYW4gb24tY2hpcCByb20gd2l0aCBhIHN5c2NvbnRyb2woKSBmdW5jdGlvbiB0aGF0IG5lZWRzCiAgICB0byBiZSB1c2VkIHRvIHByb3Blcmx5IHByb2dyYW0gdGhlIG1lbW9yeSBhbmQgdm9sdGFnZSBzZXR0aW5ncyBhcyBpdCB3aWxsCiAgICBpbmNsdWRlIChwb3NzaWJseSBjcml0aWNhbCkgZmFjdG9yeSB0ZXN0ZWQgYmlhcyB2YWx1ZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGUxZmI2ZDBkNTJmYmUzZmJjMWE0YzY1MWRhY2YxMWU5YzE0MTdmNjMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBGZWIgNSAxMTo0NDo1MiAyMDA5ICswMTAwCgogICAgY2ZpX2ZsYXNoOiBGaXggdHlwbyBpbiBjZmlfZmxhc2guYwoKICAgIFBhdGNoICJmbGFzaC9jZmlfZmxhc2g6IFVzZSB2aXJ0dWFsIHNlY3RvciBzdGFydCBhZGRyZXNzLCBub3QgcGh5cyIKICAgIGludHJvZHVjZWQgYSBzbWFsbCB0eXBvIGFuZCBjb21waWxhdGlvbiB3YXJuaW5nIGZvciBzeXN0ZW1zIHdpdGggQ0ZJCiAgICBsZWdhY3kgc3VwcG9ydCAoZS5nLiBoY3U0KS4gVGhpcyBwYXRjaCBmaXhlcyBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjg3NDVkYjk2OWI3MjY5Mzc1NDk5MWM4MzhmNjhhN2ZiNGE4YjFhYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEphbiAyOSAxMToyMTozOCAyMDA5ICswMTAwCgogICAgamVkZWNfZmxhc2g6IE9ubHkgdXNlIG1hbnVmYWN0dXJlciBkZWZpbmVzIGZyb20gY29tbW9uIGZsYXNoLmgKCiAgICBUaGlzIHBhdGNoIHJlbW92ZXMgdGhlIGRvdWJsZSBkZWZpbmVkIG1hbnVmYWN0dXJlciBkZWZpbmVzIGZyb20KICAgIGplZGVjX2ZsYXNoLmMuIFNpbmNlIHRoZSBjb21tb24gZGVmaW5lcyBpbiBmbGFzaC5oIGFyZSAzMmJpdAogICAgd2Ugbm93IG5lZWQgdGhlICgxNikgY2FzdC4gVGhpcyBwYXRjaCBhbHNvIHJlbW92ZXMgdGhlIGNvbXBpbGF0aW9uCiAgICB3YXJuaW5nIChlLmcuIHNlZW4gb24gaGN1NSk6CgogICAgLi9NQUtFQUxMIGhjdTUKICAgIENvbmZpZ3VyaW5nIGZvciBoY3U1IGJvYXJkLi4uCiAgICBqZWRlY19mbGFzaC5jOjIxOTogd2FybmluZzogbGFyZ2UgaW50ZWdlciBpbXBsaWNpdGx5IHRydW5jYXRlZCB0byB1bnNpZ25lZCB0eXBlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGVjMjFkNWNmY2I2YjRlN2ZjZGQ1YzZlOTI2ZTFhODI0OTAwNzA2ZjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBGZWIgNSAxMToyNTo1NyAyMDA5ICswMTAwCgogICAgY2ZpX2ZsYXNoOiBTaWxlbmNlIGNvbXBpbGF0aW9uIHdhcm5pbmcKCiAgICBQYXRjaCAiZmxhc2gvY2ZpX2ZsYXNoOiBVc2UgdmlydHVhbCBzZWN0b3Igc3RhcnQgYWRkcmVzcywgbm90IHBoeXMiCiAgICBpbnRyb2R1Y2VkIGEgc21hbGwgY29tcGlsYXRpb24gd2FybmluZy4gVGhpcyBwYXRjaCBmaXhlcyBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDljZTk5MjFhN2Q4YjFjZTc2NDY1NmIxNGI0MjIxN2JiZjRmYWEzOApBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreWJAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIEZlYiAyIDE2OjM0OjUxIDIwMDkgLTA2MDAKCiAgICBmbGFzaC9jZmlfZmxhc2g6IFVzZSB2aXJ0dWFsIHNlY3RvciBzdGFydCBhZGRyZXNzLCBub3QgcGh5cwoKICAgIGluY2x1ZGUvZmxhc2guaCB3YXMgY29tbWVudGVkIHRvIHNheSB0aGF0IHRoZSBhZGRyZXNzIGluCiAgICBmbGFzaF9pbmZvLT5zdGFydCB3YXMgYSBwaHlzaWNhbCBhZGRyZXNzLiAgSG93ZXZlciwgZnJvbSB1LWJvb3QncwogICAgcG9pbnQgb2YgdmlldywgYW5kIGxvb2tpbmcgYXQgbW9zdCBmbGFzaCBjb2RlLCBpdCBtYWtlcyBtb3JlCiAgICBzZW5zZSBmb3IgdGhpcyB0byBiZSBhIHZpcnR1YWwgYWRkcmVzcy4gIFNvIEkgY29ycmVjdGVkIHRoZQogICAgY29tbWVudCB0byBpbmRpY2F0ZSB0aGF0IHRoaXMgd2FzIGEgdmlydHVhbCBhZGRyZXNzLgoKICAgIFRoZSBvbmx5IGZsYXNoIGRyaXZlciB0aGF0IHdhcyBhY3R1YWxseSB0cmVhdGluZyB0aGUgYWRkcmVzcwogICAgYXMgcGh5c2ljYWwgd2FzIHRoZSBtdGQvY2ZpX2ZsYXNoIGRyaXZlci4gIEhvd2V2ZXIsIHRoaXMgY29kZQogICAgd2FzIHVzaW5nIGl0IGluY29uc2lzdGVudGx5IGFzIGl0IGFjdHVhbGx5IGRpcmVjdGx5IGRlcmVmZXJlbmNlZAogICAgdGhlICJzdGFydCIgZWxlbWVudCwgd2hpbGUgaXQgdXNlZCBtYXBfcGh5c21lbSB0byBnZXQgYQogICAgdmlydHVhbCBhZGRyZXNzIGluIG90aGVyIHBsYWNlcy4gIEkgY2hhbmdlZCB0aGlzIGRyaXZlciBzbwogICAgdGhhdCB0aGUgY29kZSB3aGljaCBpbml0aWFsaXplcyB0aGUgaW5mby0+c3RhcnQgZmllbGQgY2FsbHMKICAgIG1hcF9waHlzbWVtIHRvIGdldCBhIHZpcnR1YWwgYWRkcmVzcywgZWxpbWluYXRpbmcgdGhlIG5lZWQgZm9yCiAgICBmdXJ0aGVyIG1hcF9waHlzbWVtIGNhbGxzLglUaGUgY29kZSBpcyBub3cgY29uc2lzdGVudC4KCiAgICBUaGUgKm9ubHkqIHBsYWNlIGEgcGh5c2ljYWwgYWRkcmVzcyBzaG91bGQgYmUgdXNlZCBpcyB3aGVuIGRlZmluaW5nIHRoZQogICAgZmxhc2ggYmFua3MgbGlzdCB0aGF0IGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgZmxhc2hfaW5mbyBzdHJ1Y3QsCiAgICB1c3VhbGx5IGZvdW5kIGluIHRoZSBib2FyZCBjb25maWcgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3liQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNjU3ZjIwNjJkOGUxN2ViZjRhNTVmNTJjOWU3MWMwN2MwYzk0Yzc3OQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBGZWIgNCAwOTo0MjoyMCAyMDA5ICswMTAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmcKCiAgICAoc2hvd3MgdXAgb25seSB3aGVuIERFQlVHIGlzIGVuYWJsZWQpCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0NzgzMmNkMTVhZTAyZmI2ZmRlOGViZWQ1YjI3MmY4NTc3NWYyY2ViCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gT2N0IDYgMDM6NDU6NTUgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiB1cGRhdGUgYW5vbWFseSBsaXN0cwoKICAgIFVwZGF0ZSB0aGUgYW5vbWFseSBsaXN0cyB0byBtYXRjaCBsYXRlc3QgYW5vbWFseSBzaGVldHMuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDcwYTRkYTQ1ZTE2YjcyZThlNWIwYmFhZWNkYWVlOWJlODYxOTY0N2QKQXV0aG9yOiBSYWxwaCBLb25kemllbGxhIDxya0Bhcmdvcy1tZXNzdGVjaG5pay5kZT4KRGF0ZToJTW9uIEphbiAyNiAxMjozNDozNiAyMDA5IC0wNzAwCgogICAgQURTNTEyMSBBZGQgUEFUQSBzdXBwb3J0CgogICAgT3JpZ2luYWwgcGF0Y2ggZnJvbSBSYWxwaCBLb25kemllbGxhCiAgICBwbHVzIGNsZWFuIHVwIGJ5IFdvbGZnYW5nIERlbmsKICAgIHBsdXMgY2hhbmdlcyBieSBKb2huIFJpZ2J5Cgl1c2UgaXBzIGNsb2NrIG5vdCBscGMKCXBvcnQgZm9yd2FyZCB0byBjdXJyZW50IHUtYm9vdCByZWxlYXNlCgogICAgU2lnbmVkLW9mZi1ieTogUmFscGggS29uZHppZWxsYSA8cmtAYXJnb3MtbWVzc3RlY2huaWsuZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWJmYmQwYWU0OTY3ZGYxODEwMjM0NWRiNGY0YjUyOWExM2RhMTA3YgpBdXRob3I6IE1hcnRoYSBNYXJ4IDxtbWFyeEBzaWxpY29udGt4LmNvbT4KRGF0ZToJTW9uIEphbiAyNiAxMDo0NTowNyAyMDA5IC0wNzAwCgogICAgQURTNTEyMSBBZGQgSUMgSWRlbnQgTW9kdWxlIChJSU0pIHN1cHBvcnQKCiAgICBJSU0gKElDIElkZW50aWZpY2F0aW9uIE1vZHVsZSkgaXMgdGhlIGZ1c2Vib3ggZm9yIHRoZSBtcGM1MTIxLgogICAgVXNlICNkZWZpbmUgQ09ORklHX0lJTSB0byB0dXJuIG9uIHRoZSBjbG9jayBmb3IgdGhpcyBtb2R1bGUKICAgIHVzZSAjZGVmaW5lIENPTkZJR19DTURfRlVTRSB0byBhZGQgZnVzZWJveCBjb21tYW5kcy4KICAgIEZ1c2Vib3ggY29tbWFuZHMgaW5jbHVkZSB0aGUgYWJpbGl0eSB0byByZWFkCiAgICB0aGUgc3RhdHVzLCByZWFkIHRoZSByZWdpc3RlciBjYWNoZSwgb3ZlcnJpZGUgdGhlIHJlZ2lzdGVyIGNhY2hlLAogICAgcHJvZ3JhbSB0aGUgZnVzZXMgYW5kIHNlbnNlIHRoZW0uCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGhhIE1hcnggPG1tYXJ4QHNpbGljb250a3guY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTRkMTljZDFiY2U5YTI0YjEzMzU1OThmMTU2ODE0MGY0OTUwZTRkOQpBdXRob3I6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSmFuIDIzIDEwOjMzOjE1IDIwMDkgLTA3MDAKCiAgICBBRFM1MTIxIEZpeCByZXYyIHNpbGljb24gcGNpIGlvcGFkIGNvbmZpZwoKICAgIFJlc2V0IGNvbmZpZyBpcyBub3QgY29ycmVjdAoKICAgIFNpZ25lZC1vZmYtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRjMTU0MjUyYzQ4MGIxM2Y2OWNlMWI3MWE5NTMwYjA1MTVkYTc2YTYKQXV0aG9yOiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE5vdiAxOSAxMzo1NzozNCAyMDA4IC0wNzAwCgogICAgQURTNTEyMSBESVUgQWRkIGRpdV9ibXBfYWRkciBlbnYKCiAgICBBZGQgc3VwcG9ydCBmb3IgdXNpbmcgYSBibXAgb3RoZXIgdGhhbgogICAgRlNMX0xvZ29fQk1QIGZvciB0aGUgRElVIHNwbGFzaCBzY3JlZW4uCgogICAgQ2FuIG5vdyBzZXQgdGhlIGVudiB2YXIgImRpdV9ibXBfYWRkciIgdG8KICAgIHRoZSBhZGRyZXNzIG9mIGEgQk1QIGluIGZsYXNoIHRvIHVzZSBpbnN0ZWFkCiAgICBvZiB0aGUgZGVmYXVsdCBGU0xfTG9nb19CTVAuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGhhIE1hcnggPG1tYXJ4QHNpbGljb250a3guY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTJjMjBmYmQzYTc3ODhjMWExNTRmNTBhM2Y0NGYyOGE3NzYzZjk5YQpBdXRob3I6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDMwIDE2OjM5OjM1IDIwMDggLTA2MDAKCiAgICBBRFM1MTIxIERJVSBNYWtlIGluY2x1c2lvbiBvZiBGU0wgbG9nbyBvcHRpb25hbAoKICAgIE1ha2UgaW5jbHVzaW9uIG9mIEZTTCBsb2dvIG9wdGlvbmFsIGFuZAogICAgdHVybiBpdCBvZmYgYnkgZGVmYXVsdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZDk5ZWMxNDlhYmU5NGU3ZjZiMmJkYTQ3NjZkNzAxYjQwMDUwNTNmCkF1dGhvcjogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CkRhdGU6CVN1biBGZWIgMSAxMjoyNzo1MyAyMDA5ICswMTAwCgogICAgQ29tcGlsZSB3YXJuaW5nIGZpeCBpbiBvbmVuYW5kX3Vib290LmgKCiAgICBSZWdyZXNzaW9uIHNpbmNlIG1lcmdlIHdpbmRvdyBhZnRlciAyMDA5LjAxCgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+Cgpjb21taXQgYTI3MGQxZTcyOTVjM2Q4MjlmNDJjMDQ4MDExNzk0MWRmYzFjNjQ3NwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEphbiAyOSAwNjozMzo1NSAyMDA5ICswMTAwCgogICAgVVNCOiBBZGQgRUhDSSBzdXBwb3J0IGZvciBWQ1QgRUhDSSBjb250cm9sbGVyIChyZWFsbHkgd2l0aCBkcml2ZXIgbm93KQoKICAgIFNvbWVob3cgSSBtaXNzZWQgdGhlIHJlYWwgZHJpdmVyIHBhcnQgaW4gbXkgbGFzdCBwYXRjaCB2ZXJzaW9uLiBUaGlzIHBhdGNoCiAgICBub3cgYWRkcyB0aGUgZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IDcxNmViZjQzNmM5ZTQzZGY2NzQwZTAxNzJmNmIyYTgxZGRiZjFiOGUKQXV0aG9yOiBDbGlmZiBDYWkgPGNsaWZmLmNhaUBhbmFsb2cuY29tPgpEYXRlOglTYXQgTm92IDI5IDE4OjIyOjM4IDIwMDggLTA1MDAKCiAgICBCbGFja2ZpbjogYWRkIGRyaXZlciBmb3Igb24tY2hpcCBNTUMvU0QgY29udHJvbGxlcgoKICAgIFRoaXMgaXMgYSBwb3J0IG9mIHRoZSBMaW51eCBCbGFja2ZpbiBvbi1jaGlwIFNESCBkcml2ZXIgdG8gVS1Cb290LgoKICAgIFNpZ25lZC1vZmYtYnk6IENsaWZmIENhaSA8Y2xpZmYuY2FpQGFuYWxvZy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNmU4N2VhMGNhOTUxNDY1ZWJhMTQ0YWIyZTZkYmE2ZmI1MDc3MzdhMgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IE9jdCAxMSAyMjo0NzozNCAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGFkZCBwb3J0IG11eGluZyBmb3IgQkY1MXggU1BJCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGZjNjhmOWY4NTk1OTY2NGQ1MjhkYWVhMmFlZjVlZjU0OTc0MzMxY2UKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBKYW4gNiAwNjoxNjoxOSAyMDA5IC0wNTAwCgogICAgQmxhY2tmaW46IG91dHB1dCBib290aW5nIHNvdXJjZSB3aGVuIGJvb3RpbmcKCiAgICBLbm93aW5nIHRoZSBib290aW5nIHNvdXJjZSBvZiB0aGUgcGFydCBpcyB1c2VmdWwsIGVzcGVjaWFsbHkgd2hlbiB0aGUgcGFydAogICAgY2FuIHN3aXRjaCBkeW5hbWljYWxseSBiZXR3ZWVuIHNvdXJjZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDhkZjNjZTBmNDljMzc5NDc4MDBhYzdjODRlNzUxNDk5ODgyNjE5ZmMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVRodSBEZWMgMTEgMDY6MzA6NDYgMjAwOCAtMDUwMAoKICAgIEJsYWNrZmluOiBzZXQgZGVmYXVsdCBDT05GSUdfRU5WX1NQSV9DUyBiYXNlZCBvbiBib290cm9tCgogICAgU2V0IHRoZSBkZWZhdWx0IENPTkZJR19FTlZfU1BJX0NTIHZhbHVlIHRvIG1hdGNoIHRoZSBTUEkgQ1MgdGhhdCBpcyB1c2VkIGJ5CiAgICB0aGUgQmxhY2tmaW4gb24tY2hpcCBib290cm9tIHRvIGJvb3Qgb3V0IG9mIFNQSSBmbGFzaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMmI0YTQ4NmU2ZmFjNTAyZDhiODgzZTM0NGNjNDAxMjI4Mzk0NWIzZApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IERlYyAxMSAwNDowNjoyNiAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IHVwZGF0ZSBhc20tYmxhY2tmaW4vcG9zaXhfdHlwZXMuaCB0byBsYXRlc3QgTGludXggdmVyc2lvbgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBlNWViOTNlNzczOTFiY2MzMDg2OTcxMTZjNTQ0ZWExMzQwYWFhZThhCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgRGVjIDYgMDI6NTQ6NTIgMjAwOCAtMDUwMAoKICAgIEJsYWNrZmluOiBhZGQgcG9ydCBJIGJpdHMKCiAgICBTb21lIHBlb3BsZSBuZWVkIHRvIGFjY2VzcyBwb3J0IEksIHNvIG1ha2Ugc3VyZSB0aGUgcGlucyBhcmUgZGVmaW5lZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgOGE2YjI3MjU5NmQ0M2RlMGRiNDk0M2VhYzdhZjU4YzM1MzRjNDAyNgpBdXRob3I6IFNvbmljIFpoYW5nIDxTb25pYy5aaGFuZ0BhbmFsb2cuY29tPgpEYXRlOglXZWQgTm92IDI2IDIyOjE2OjQ1IDIwMDggLTA1MDAKCiAgICBCbGFja2ZpbjogYWRkIGRyaXZlciBmb3Igb24tY2hpcCBBVEFQSSBjb250cm9sbGVyCgogICAgVGhpcyBpcyBhIHBvcnQgb2YgdGhlIExpbnV4IEJsYWNrZmluIG9uLWNoaXAgQVRBUEkgZHJpdmVyIHRvIFUtQm9vdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTb25pYyBaaGFuZyA8U29uaWMuWmhhbmdAYW5hbG9nLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBiZTlkOGM3ODBlNjgzMWNiODRiN2Q0NTkwY2VhZTAzZGNhOGZjMTBiCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglXZWQgTm92IDI2IDIxOjQzOjA2IDIwMDggLTA1MDAKCiAgICBCbGFja2ZpbjogYWRkIGRyaXZlciBmb3Igb24tY2hpcCBOQU5EIGNvbnRyb2xsZXIKCiAgICBUaGlzIGlzIGEgcG9ydCBvZiB0aGUgTGludXggQmxhY2tmaW4gb24tY2hpcCBORkMgZHJpdmVyIHRvIFUtQm9vdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNDE0OGUwMmFiYWU5YTA5OWY0NDQ0YjVlMTY4ZWJjMmI5MTFkMjI5NQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJV2VkIE5vdiAxMiAwNzoxODoxNSAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IGJ1aWxkIHdpdGggLW1uby1mZHBpYwoKICAgIFVzZSB0aGUgLW1uby1mZHBpYyBmbGFnIHNvIHRoYXQgYW55IEJsYWNrZmluIHRvb2xjaGFpbiBjYW4gYmUgdXNlZCB0byBidWlsZAogICAgdXAgdS1ib290LCBpbmNsdWRpbmcgb25lcyB0aGF0IG91dHB1dCBGRFBJQyBFTEYgYnkgZGVmYXVsdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNzBlOTU1ODlhMjRhMmQ4M2FkMDAzMTdlNGE5NjExZDAyMTFlY2I1OApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVHVlIE5vdiAxMSAwNTo0Mzo1NyAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IGZpeCB1cCBFQklVIGRlZmluZXMKCiAgICBUaGUgRUJJVSBkZWZpbmVzIGZvciBFQlNaIDI1Ni81MTIgd2VyZSBpbmNvcnJlY3QuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDk2MTk1NGVhMGVjOGRjNDM0MTAzNGMxYTFmZjMxMDdlYzA1Mjc4MDkKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVdlZCBOb3YgNSAxMjo0NToyNCAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IHVzZSA4LzE2LzMyIGJpdCB0cmFuc2ZlciB3aWR0aHMgaW4gZG1hX21lbWNweSgpCgogICAgUmF0aGVyIHRoYW4gdXNpbmcgOGJpdCB0cmFuc2ZlcnMgZm9yIGV2ZXJ5dGhpbmcsIHVzZSA4LzE2LzMyIGJpdCB0cmFuc2ZlcnMKICAgIGFzIHVzYWJsZSB3aXRoIHRoZSBzb3VyY2UvZGVzdGluYXRpb24gYWRkcmVzc2VzIGFuZCB0aGUgY291bnQgc2l6ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYjkzYzY4NjQ4NDI2ZjkwNmQ2M2I5ODExNzQ5NmI2NDE1ZjUwNWYzOQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJV2VkIE5vdiA1IDA4OjUwOjIzIDIwMDggLTA1MDAKCiAgICBCbGFja2Zpbjogb25seSBmbGFnIEwxIGluc3RydWN0aW9uIGZvciBETUEgbWVtY3B5CgogICAgVGhlIHBlcmZvcm1hbmNlIGRpZmZlcmVuY2UgZnJvbSBkb2luZyBhbiA4IGJpdCBETUEgbWVtY3B5IHZzIGFuIG9wdGltaXplZAogICAgY29yZSBtZW1jcHkgY2FuIGJlIHByZXR0eSBiaWcgd2hlbiB5b3UgYWRkIGluIHRoZSBvdmVyaGVhZCBvZiBzZXR0aW5nIHVwIHRoZQogICAgTURNQSByZWdpc3RlcnMsIGNhY2hlIGZsdXNoZXMsIGV0Yy4uLiAgU28gb25seSB1c2UgZG1hX21lbWNweSgpIHdoZW4gd2UKICAgIGFjdHVhbGx5IHJlcXVpcmUgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGUzNDdjMDkyYTNiM2EyY2UxZTcyZjI1ZjQ4MjkxNjM2MzRkMDlmYmUKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVdlZCBOb3YgNSAwNzoyMDozNyAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IGRtYV9tZW1jcHkoKTogZml4IHJhbmRvbSBmYWlsdXJlcwoKICAgIFdlIGhhdmUgdG8gbWFrZSBzdXJlIHRoZSBETUEgY2hhbm5lbCBpcyBhY3R1YWxseSBkaXNhYmxlZCBpbiBoYXJkd2FyZSBiZWZvcmUKICAgIGF0dGVtcHRpbmcgdG8gcmVwcm9ncmFtIGl0LiAgT3RoZXJ3aXNlIHRoZSBuZXcgc2V0dGluZ3MgYXJlIGlnbm9yZWQgYW5kIHdlCiAgICBlbmQgdXAgd2l0aCByYW5kb20gaGFuZ3MvZmFpbHVyZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGZkY2U4M2MxMDg4NDZkNmYwZDViMTc3NGUxY2MyOWYyNTczYTZhZDMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBOb3YgNCAwMDowNDowMyAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IHJld3JpdGUgY2FjaGUgaGFuZGxpbmcgZnVuY3Rpb25zCgogICAgVGFrZSB0aGUgY2FjaGUgZmx1c2ggZnVuY3Rpb25zIGZyb20gdGhlIGtlcm5lbCBhcyB0aGV5IHVzZSBoYXJkd2FyZSBsb29wcyBpbgogICAgb3JkZXIgdG8gZ2V0IG9wdGltYWwgcGVyZm9ybWFuY2UuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDg0YzVmMGRjNDdkMTc1OTNmZDgxMjA2NjE0ODkxYmRjOTRmNmQ1MWMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBOb3YgMyAyMjozMDowNSAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IHNldHVwIGJpX2VuZXRhZGRyIGZvciBzaW5nbGUgbmV0cwoKICAgIEZvciBzeXN0ZW1zIHdpdGggQ09ORklHX05FVF9NVUxUSSBkaXNhYmxlZCwgYmlfZW5ldGFkZHIgZG9lcyBub3QgZ2V0IHNldHVwCiAgICBiYXNlZCBvbiAkZXRoYWRkciwgc28gc2V0IGl0IHVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA0MDU5OTIzOWU3ODc1YjM5ZTJhNWMxMmU2NTQ1OTkyMDQxYzcyYzUyCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglGcmkgT2N0IDI0IDIyOjQ4OjQ3IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogY2FjaGUgY29yZS9zeXN0ZW0gY2xvY2sgdmFsdWVzCgogICAgQ2FsY3VsYXRpbmcgdGhlIGNsb2NrcyByZXF1aXJlcyBhIGJpdCBvZiBjYWxscyB0byBnY2MgbWF0aCBmdW5jdGlvbnMsIHNvCiAgICBjYWNoZSB0aGUgdmFsdWVzIGFmdGVyIHRoZSBmaXJzdCBydW4gc2luY2UgdGhleSdsbCBtb3N0IGxpa2VseSBuZXZlcgogICAgY2hhbmdlIG9uY2UgVS1Cb290IGlzIHVwIGFuZCBydW5uaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA2OTU3YTYyMDliMDJmNmI2OTYwN2ZjNDc0MjVmMTM3MzFjYzQ3N2YxCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglGcmkgT2N0IDI0IDE4OjE4OjE2IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogZW5hYmxlIC0tZ2Mtc2VjdGlvbnMKCiAgICBTdGFydCBidWlsZGluZyBhbGwgQmxhY2tmaW4gYm9hcmRzIHdpdGggLWZmdW5jdGlvbi1zZWN0aW9ucy8tZmRhdGEtc2VjdGlvbnMKICAgIGFuZCBsaW5raW5nIHdpdGggLS1nYy1zZWN0aW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgZWUxZDIwMDFlYTdmYmFiYjJiOTI1NjAyNmRjNTQ2OGYwNTczMzdmOApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIE9jdCAyMCAyMTowODo1NCAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGRvbnQgY2hlY2sgYmF1ZCBpZiBpdCB3b250IGFjdHVhbGx5IGdldCB1c2VkCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDQwMGY1Nzc4ZjM3NWJjOTljNzNjODQ4OGM1NTVkZWYyNjFjY2ZhYjcKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBPY3QgMTQgMDc6NTQ6MDkgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBhZGQgZHJpdmVyIGZvciBvbi1jaGlwIFNQSSBjb250cm9sbGVyCgogICAgVGhpcyBmaWxscyBvdXQgdGhlIFNQSSBiYWNrZW5kIGZvciB0aGUgQmxhY2tmaW4gb24tY2hpcCBTUEkgcGVyaXBoZXJhbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgN2ExZTg3YjEwNjJlNmVhYzA3MDRjNmZjMmY3YzY2MWNhZjg4MTRjZApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IE9jdCAxOCAwNTozMzo1MSAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IG9ubHkgYnVpbGQgcG9zdCBjb2RlIHdoZW4gQ09ORklHX1BPU1QKCiAgICBTYXZlIHNvbWUgdGltZSBieSB1c2luZyBDT05GSUdfUE9TVCBpbiB0aGUgTWFrZWZpbGUgcmF0aGVyIHRoYW4gQyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNmQ3ZDQ4MDNjNzRiYjg2ZTFiNDAxYjExOTllNjMzODFhNjJiOTM4MgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IEphbiA4IDExOjU3OjU3IDIwMDkgLTA1MDAKCiAgICBCbGFja2ZpbjogYmZpbl9tYWM6IGNsZWFudXAgcG9pbnRlci9jYXN0cyBmb3IgYWxpYXNpbmcgaXNzdWVzCgogICAgUmVkbyBob3cgcG9pbnRlcnMgYXJlIG1hbmFnZWQgdG8gZ2V0IHJpZCBvZiB1Z2x5IGNhc3RzIGFuZCBzdHJpY3QgcG9pbnRlcgogICAgYWxpYXNpbmcgaXNzdWVzIHRoYXQgYXJlIGhpZ2hsaWdodGVkIGJ5IGdjYyA0LjMuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgQWNrZWQtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgMDkyZDI0ODdiYWY3YzI5MzQzYzE2NWUzYWU4MmVhOGE3ZjllNjc5YgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVHVlIERlYyA5IDE3OjQ2OjIxIDIwMDggLTA1MDAKCiAgICBCbGFja2ZpbjogYmZpbl9tYWM6IGNvbnZlcnQgQ09ORklHX0JGSU5fTUFDX1JNSUkgdG8gQ09ORklHX1JNSUkKCiAgICBObyBwb2ludCBpbiBoYXZpbmcgYSBCbGFja2Zpbi1zcGVjaWZpYyBkZWZpbmUgIkNPTkZJR19CRklOX01BQ19STUlJIiB0aGF0CiAgICBkb2VzIGV4YWN0bHkgdGhlIHNhbWUgdGhpbmcgYXMgY29tbW9uICJDT05GSUdfUk1JSSIuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgQWNrZWQtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgOGVlZDZjYTUxZTUwZmFkZTY4ODdlOGJkYjFmZjZhNDQxMTZiNDJiNQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJV2VkIE5vdiA1IDA2OjM2OjE1IDIwMDggLTA1MDAKCiAgICBCbGFja2ZpbjogYmZpbl9tYWM6IHVzZSBjb21tb24gZGVidWcoKQoKICAgIFJhdGhlciB0aGVuIGRlZmluaW5nIG91ciBvd24gREVCVUdGKCksIGp1c3QgdXNlIHRoZSBjb21tb24gZGVidWcoKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CiAgICBBY2tlZC1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBhN2VjNmFjOGIyYzZkY2U2ZmM2NzBhMmE4NTVkZWI2ZWVlMzQwZTA0CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gT2N0IDIwIDEzOjU5OjUxIDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogYmZpbl9tYWM6IHJlc3BlY3QgQ09ORklHX1BIWV97QUREUixDTE9DS19GUkVRfQoKICAgIFJhdGhlciB0aGFuIGhhdmluZyB0aGUgb24tY2hpcCBNQUMgaGFyZGNvZGVkIHRvIHBoeSBhZGRyZXNzIDEgYW5kIGEgc3BlZWQKICAgIG9mIDIuNW1oeiwgdXNlIHRoZXNlIGFzIGRlZmF1bHRzIGlmIHRoZSBib2FyZCBkb2Vzbid0IHNwZWNpZnkgb3RoZXJ3aXNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIEFja2VkLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGFjNDVhZjRlNjNlYTkyNWY0YWNjYzk4NDUzYWFiMWExMTY2YzE5NmQKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBPY3QgMTQgMDQ6NTI6MDAgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBiZmluX21hYzogY2xlYW51cCBNSUkvUEhZIGZ1bmN0aW9ucwoKICAgIENsZWFudXAgYW5kIHJld3JpdGUgdGhlIE1JSS9QSFkgcmVsYXRlZCBmdW5jdGlvbnMgc28gdGhhdCB3ZSBjYW4gcmV1c2UgdGhlCiAgICBleGlzdGluZyBjb21tb24gbGludXgvbWlpcGh5LmggY29kZSBhbmQgaG9vayBpbnRvIHRoZSBgbWlpYCBjb21tYW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIEFja2VkLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDZiMzEwYTA1ZjBkMTBjNzUxZjIyNDY4MDQwOTMyMTM5ZjcxYzcxZDMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBPY3QgMTQgMDA6MzE6MzAgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBiZmluX21hYzogc2V0IE1EQ0RJViBiYXNlZCBvbiBTQ0xLCgogICAgUmF0aGVyIHRoYW4gaGFyZGNvZGluZyBNRENESVYgdG8gMjQgKHdoaWNoIGlzIGNvcnJlY3QgZm9yIH4xMjVtaHogU0NMSyksCiAgICB1c2UgdGhlIHJlYWwgYWxnb3JpdGhtIHNvIGl0IGdldHMgc2V0IGNvcnJlY3RseSByZWdhcmRsZXNzIG9mIFNDTEsuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgQWNrZWQtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgOTMwNTkwZjNlNDljOGYzMjI1NmVkZjJlNTg2MWUxNTM1YTMyOWM2YwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBKYW4gMzEgMDk6MTA6NDggMjAwOSArMDEwMAoKICAgIGl4cDogbW92ZSBzZXJpYWwgdG8gZHJpdmVycy9zZXJpYWwKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGY5MGM4MDIyZjQ0OGJjNWU5MzA5MGU0YjcxNDM2OGU1MmU5MTJmMGYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgSmFuIDMxIDA5OjA0OjU4IDIwMDkgKzAxMDAKCiAgICBpeHA6IG1vdmUgcGNpIGluaXQgaW4gYXJtL2JvYXJkIGluc3RlYWQgb2YgY3B1CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA4Y2I3OWI1ZjI3NWYxODg4Y2NiMjc4YTJkMjE5NzE0MDQ0NGE4NGI3CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IEphbiAzMSAwODo1Njo0OSAyMDA5ICswMTAwCgogICAgaXhwOiBtb3ZlIHBjaSBkcml2ZXJzIHRvIGRyaXZlcnMvcGNpCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAwMTJkNWJhYjA5YTUzNGU0ODAwYjAyZjUwY2Y1MDhlNjgzNzIwMmVhCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IEphbiAzMSAwODo1Mzo0NCAyMDA5ICswMTAwCgogICAgaXhwOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBmNjkzZjUwMWQ2NzQzNGRmMWY4MTVmZDE4MjRhNzE5NzNhZTA4MjA3CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IEphbiAzMSAwODo1Mzo0NCAyMDA5ICswMTAwCgogICAgaXhwOiBhZGQgbWlzc2luZyBvcyBkZWZpbmUKCiAgICBuZWVkIGJ5IGFybS1lbGYgdG9vbGNoYWlucyBhbmQgbm8gaW1wYWN0IG9uIHRoZSBhcm0tbGludXggb25lCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBiNGUyZjg5ZGZjYjIwNmEyMmQzNGZhNmIzNDg3OGQ4NWI0OThiMzlmCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IEphbiAzMSAwOTo1MzozOSAyMDA5ICswMTAwCgogICAgaXhwOiByZW1vdmUgdGhlIG9wdGlvbiB0byBpbmNsdWRlIHRoZSBNaWNyb2NvZGUKCiAgICBpbnN0ZWFkIHRoZSBib2FyZCB3aWxsIGhhdmUgdG8gbG9hZCBpdCBmcm9tIGZsYXNoIG9yIHJhbQogICAgd2hpY2ggd2lsbCBiZSBzcGVjaWZpZWQgYnkgbnBlX3Vjb2RlIGVudiB2YXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDFiMDE3YmFmMjA3MWQ4ZGFmNjQzYmNlODcyNTBkYjg5OGM2MDZjNjYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgSmFuIDMwIDA5OjQ1OjIzIDIwMDkgKzAxMDAKCiAgICBpeHAvbnBlOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA0ZTY5MDg3YTFkNmVmMmVjYTZmNDYwMjZjZjVlNzM5OWI2YzllN2MwCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIEphbiAyOCAyMTo1ODowNCAyMDA5ICswMTAwCgogICAgU1gxOiBhZGQgaGFyZHdhcmUgVjIgc3VwcG9ydAoKICAgIEluIHRoZSBWMiB0aGUgMiBmbGFzaCBoYXMgYmVlbiByZXBsYWNlIGJ5IG9uZSAzMk1CIGZsYXNoCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBmODc3ZjIyMzNkYmNkNzQxN2MyZjBiYWJlNmE4NDkwOTliMTY3ZjNjCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIEphbiAyOCAyMTo1ODowMyAyMDA5ICswMTAwCgogICAgU1gxOiBGaXggc2Vjb25kIGZsYXNoIG1hcHBpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDQ3ZmQzYmZmZWQ2NDMwYzkxZWIyNjYwZjg1OTU3NGVkOThiZTViZDgKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgSmFuIDI4IDIxOjU4OjAzIDIwMDkgKzAxMDAKCiAgICBTWDE6IGFkZCBDT05GSUdfU1RET1VUX1VTQlRUWSB0byBlbmFibGUgcHJlYm9vdCBzdGRvdXQgcmVkaXJlY3QgdG8gdXNidHR5CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBjZmNhMzM4MzdlYzgzODI5YzZhNDljM2JjYzg2YzMxYmMyNDk1ZmY2CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIEphbiAyOCAyMTo1Nzo1OSAyMDA5ICswMTAwCgogICAgbW92ZSBTYW1zdW5nJ3MgYm9hcmQgdG8gYm9hcmQvc2Ftc3VuZwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZTQ5NDNlYzU3NDY2ZWE1ZGZhMDg1ZTdhOWUwZWM0NGNiOTNjNGUxZQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVRodSBKYW4gMjkgMTI6MDc6MjEgMjAwOSArMDEwMAoKICAgIG1vdmUgQVJNIEx0ZC4gdG8gdmVuZG9yIGRpcgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYTg3ZmIxYjMwOGEyYTM3NWNiOWNhNzRjYTBkZDNlMmM1NzkzZDNiZgpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgpEYXRlOglXZWQgSmFuIDI4IDE1OjMwOjM3IDIwMDkgLTA1MDAKCiAgICBwcGM0eHg6IENsZWFuIHVwIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgS29yYXQgYm9hcmQKCiAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgdGhlIGRlZmF1bHQgZW52aXJvbm1lbnRhbCB2YXJpYWJsZXMgZm9yIHRoZQogICAgS29yYXQgUFBDIDQ0MEVQeCBib2FyZCwgYW5kIG1ha2VzIGFkZGl0aW9uYWwgbWlub3IgZml4ZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjIwNDA1ZTMxNjgwZWZjMzYyOTNjNTliNDk2M2RiNTdjOWQ5M2RmNApBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgpEYXRlOglXZWQgSmFuIDI4IDE1OjMwOjAyIDIwMDkgLTA1MDAKCiAgICBwcGM0eHg6IEFkZCB2YXJpYWJsZSAia29yYXRfdXNiY2YiIGZvciBLb3JhdCBib2FyZAoKICAgIFRoZSBuZXcgZW52aXJvbm1lbnQgdmFyaWFibGUgImtvcmF0X3VzYmNmIiBzZWxlY3RzIHRoZSBVU0IKICAgIHBvcnQgdXNlZCBieSB0aGUgS29yYXQgYm9hcmQncyBDb21wYWN0Rmxhc2ggY29udHJvbGxlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmYzAxZWExZTI3ZDViMTI0ZjBhMTg2OGQwY2U1NjlmMTU2ZDU4ZGZlCkF1dGhvcjogR3VubmFyIFJhbmdveSA8Z3VubmFyQHJhbmdveS5jb20+CkRhdGU6CUZyaSBKYW4gMjMgMTI6NTY6MzEgMjAwOSArMDEwMAoKICAgIEFWUjMyOiBtYWNiIC0gU2VhcmNoIGZvciBQSFkgaWQKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3Igc2VhcmNoaW5nIHRocm91Z2ggYXZhaWxhYmxlIFBIWS1hZGRyZXNzZXMgaW4KICAgIHRoZSBtYWNiLWRyaXZlci4gVGhpcyBpcyBuZWVkZWQgZm9yIHRoZSBBVEVWSzExMDAgZXZhbHVhdGlvbiBib2FyZCwKICAgIHdoZXJlIHRoZSBQSFktYWRkcmVzcyB3aWxsIGJlIGluaXRpYWxpemVkIHRvIGVpdGhlciAxIG9yIDcuCgogICAgVGhpcyBwYXRjaCBhZGRzIGEgY29uZmlnIG9wdGlvbiwgQ09ORklHX01BQ0JfU0VBUkNIX1BIWSwgd2hpY2ggd2hlbgogICAgZW5hYmxlZCB0ZWxscyB0aGUgZHJpdmVyIHRvIHNlYXJjaCBmb3IgdGhlIFBIWSBhZGRyZXNzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1bm5hciBSYW5nb3kgPGd1bm5hckByYW5nb3kuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUGF1bCBEcml2ZWtsZXBwIDxwYXVsZHJpdmVrbGVwcEBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBPbGF2IE1vcmtlbiA8b2xhdm1ya0BnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGFmODYyNmUwYzA4YTc4MGQ5ZGVkMWQ5YzQ4ODNhODkzNTVmNjBlNzUKQXV0aG9yOiBPbGF2IE1vcmtlbiA8b2xhdm1ya0BnbWFpbC5jb20+CkRhdGU6CUZyaSBKYW4gMjMgMTI6NTY6MjYgMjAwOSArMDEwMAoKICAgIEZpeCBJUCBhbGlnbm1lbnQgcHJvYmxlbQoKICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyB2b2xhdGlsZSBmcm9tOgogICAgdm9sYXRpbGUgSVBfdCAqaXAgPSAoSVBfdCAqKXhpcDsKCiAgICBEdWUgdG8gYSBidWcsIGF2cjMyLWdjYyB3aWxsIGFzc3VtZSB0aGF0IGlwIGlzIGFsaWduZWQgb24gYSB3b3JkIGJvdW5kYXJ5IHdoZW4KICAgIHVzaW5nIHZvbGF0aWxlLCB3aGljaCBjYXVzZXMgYW4gZXhjZXB0aW9uIHNpbmNlIHhpcCBpc24ndCBhbGlnbmVkIG9uIGEgd29yZAogICAgYm91bmRhcnkuCgogICAgU2lnbmVkLW9mZi1ieTogR3VubmFyIFJhbmdveSA8Z3VubmFyQHJhbmdveS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBQYXVsIERyaXZla2xlcHAgPHBhdWxkcml2ZWtsZXBwQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE9sYXYgTW9ya2VuIDxvbGF2bXJrQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgMTJhOGI5ZGIxMmY4MmExODlmZjE0M2E1ODczMTAwN2Y1NDY5ZGE2MQpBdXRob3I6IFJvbiBNYWRyaWQgPHJvbl9tYWRyaWRAc2JjZ2xvYmFsLm5ldD4KRGF0ZToJV2VkIEphbiAyOCAxNjoxNzoyMSAyMDA5IC0wODAwCgogICAgTWFydmVsbCA4OEUxMTE4IGludGVycnVwdCBmaXgKCiAgICBUaGlzIHBhdGNoIGFkanVzdHMgdGhlIExFRCBjb250cm9sIHNvIHRoYXQgaW50ZXJydXB0IGxpbmVzIGFyZSBub3QgcmVhZGluZyBMRURzCiAgICBhbmQgZWZmZWN0aXZlbHkgY2F1c2luZyBpbmRlZmluaXRlIGludGVycnVwdHMgdG8gdGhlIGNvbnRyb2xsZXIuCgogICAgU2lnbmVkLW9mZi1ieTogUm9uIE1hZHJpZCA8cm9uX21hZHJpZEBzYmNnbG9iYWwubmV0PgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA5YTM3ZjJhY2MzMWEzMjk2ZGRkZDM1NzRlYTllYWY3ZjMxOTgwN2I5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDIxIDE3OjE0OjI2IDIwMDkgKzAxMDAKCiAgICBuZXQ6IHNtYzkxMXguYzogQWRkIExBTjkyMTEgdG8gY2hpcF9pZHNbXSBhcnJheQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNzVlZGViZTMwMTFjOTYzYTdjZDg0YmUwZjRhOTg3NDc3ZjJhYWY4OQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVHVlIEphbiAyNyAxNjo1MzozOSAyMDA5IC0wNTAwCgogICAgTW92ZSBpc192YWxpZF9ldGhlcl9hZGRyKCkgdG8gaW5jbHVkZS9uZXQuaAoKICAgIEltcG9ydCB0aGUgaXNfdmFsaWRfZXRoZXJfYWRkcigpIGZ1bmN0aW9uIGZyb20gdGhlIExpbnV4IGtlcm5lbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDI2ODg1OTMzOGMwMTg4ZWFiMWQwZDNiODY3YjdkYWQzYzVjYzczNGEKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBKYW4gNSAxMjoyNToxMyAyMDA5ICswMTAwCgogICAgbmV0OiBTb3J0IE1ha2VmaWxlIGxhYmVscwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgMWZiY2JlOWE5NWYzOWFmYjJkZjZhYjhjYmEyNWIyODRiNDdlYmZiMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMjggMjM6MDY6NDIgMjAwOSArMDEwMAoKICAgIDg1eHg6IEZpeCBjb21waWxlIGJyZWFrYWdlIHdpdGggc2JjODU0MCBhbmQgc2JjODU2MAoKICAgIFRoaXMgZml4ZXMgYW4gZXJyb3Igd2hpY2ggcmFpc2VzIGp1c3QgYSB3YXJuaW5nOgogICAgc2JjODU2MC5jOjI1MDogd2FybmluZzogcGFzc2luZyBhcmd1bWVudCAyIG9mICdzdHJtaHonIG1ha2VzIGludGVnZXIgZnJvbSBwb2ludGVyIHdpdGhvdXQgYSBjYXN0CgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2MjYyNWMwYjA4MWJkNDAxOWNlY2FiMTRlOWZjMmUwNWU0OGQyYTU4CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglXZWQgSmFuIDI4IDEzOjQ4OjU1IDIwMDkgLTA1MDAKCiAgICBTUEQ4MjNUUzogZG8gbm90IGRlZmluZSBDT05GSUdfQ01EX0VOVgoKICAgIFNpbmNlIHRoZSBTUEQ4MjNUUyBib2FyZCBkb2VzIG5vdCBhY3R1YWxseSBoYXZlIGFueSB3cml0YWJsZSBmbGFzaCB0byBzYXZlCiAgICBpdHMgZW52aXJvbm1lbnQsIHVuZGVmaW5lIENPTkZJR19DTURfRU5WIHNvIHRoZSAic2F2ZWVudiIgY29tbWFuZCBpcwogICAgZGlzYWJsZWQuCgogICAgVGhpcyBmaXhlcyB0aGUgYnVpbGQgZXJyb3I6CiAgICBjb21tb24vbGliY29tbW9uLmEoY21kX252ZWRpdC5vKTogSW4gZnVuY3Rpb24gYGRvX3NhdmVlbnYnOgogICAgY29tbW9uL2NtZF9udmVkaXQuYzo1NTc6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYHNhdmVlbnYnCiAgICBtYWtlOiAqKiogW3UtYm9vdF0gRXJyb3IgMQoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA3Mzc5ZjQ1YTdiYzcxOTQxYzM5MjBjMmY2YjNjM2ZhYTRkN2ZkMzE1CkF1dGhvcjogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KRGF0ZToJV2VkIEphbiAyOCAyMTo0MDoxNiAyMDA5ICswMTAwCgogICAgT01BUDM6IEFkZCBab29tMSBib2FyZCBzdXBwb3J0CgogICAgU3VwcG9ydCBmb3IgWm9vbSBNREsgd2l0aCBPTUFQMzQzMC4gRGV0YWlscyBvZiBab29tIE1ESyBhdmFpbGFibGUgaGVyZToKICAgIGh0dHA6Ly93d3cubG9naWNwZC5jb20vcHJvZHVjdHMvZGV2a2l0L3RpL3pvb21fbW9iaWxlX2RldmVsb3BtZW50X2tpdAoKICAgIFNpZ25lZC1vZmYtYnk6IE5pc2hhbnRoIE1lbm9uIDxubUB0aS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBLcmlkbmVyIDxqa3JpZG5lckBiZWFnbGVib2FyZC5vcmc+Cgpjb21taXQgMmJlMmM2Y2M2NzRlMjYyMzc5NjJmNWNmNGMwZDMxMWUxMzllNDI0MQpBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CVdlZCBKYW4gMjggMjE6Mzk6NTggMjAwOSArMDEwMAoKICAgIE9NQVAzOiBBZGQgUGFuZG9yYSBzdXBwb3J0CgogICAgQWRkIFBhbmRvcmEgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmF6dnlkYXMgSWdub3RhcyA8bm90YXNhc0BnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdvb2dsZW1haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gS3JpZG5lciA8amtyaWRuZXJAYmVhZ2xlYm9hcmQub3JnPgoKY29tbWl0IGFkOWJjOGU1MmQxNzRkNjk5ZDEzNjdiZTBiOTAwODllNGZkZWI5MzMKQXV0aG9yOiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdvb2dsZW1haWwuY29tPgpEYXRlOglXZWQgSmFuIDI4IDIxOjM5OjU4IDIwMDkgKzAxMDAKCiAgICBPTUFQMzogQWRkIEVWTSBib2FyZAoKICAgIEFkZCBFVk0gYm9hcmQgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYW5pa2FuZGFuIFBpbGxhaSA8bWFuaS5waWxsYWlAdGkuY29tPgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEtyaWRuZXIgPGprcmlkbmVyQGJlYWdsZWJvYXJkLm9yZz4KCmNvbW1pdCA5ZDBmYzgxMTBlN2U3NTUyMzkzMjljMjZmMzAwZDVmYzk5NDZkM2VjCkF1dGhvcjogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KRGF0ZToJV2VkIEphbiAyOCAyMTozOTo1NyAyMDA5ICswMTAwCgogICAgT01BUDM6IEFkZCBPdmVybyBib2FyZAoKICAgIEFkZCBPdmVybyBib2FyZCBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZXZlIFNha29tYW4gPHNha29tYW5AZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEtyaWRuZXIgPGprcmlkbmVyQGJlYWdsZWJvYXJkLm9yZz4KCmNvbW1pdCBmOTA0Y2RiYjY4MTY3YzY0Nzg4N2YxOTkyOWFkMjk1ZGJhYWM4ODYyCkF1dGhvcjogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KRGF0ZToJVHVlIEphbiAyNyAxODoxOToxMiAyMDA5ICswMTAwCgogICAgT01BUDM6IEFkZCBjb21tb24gcG93ZXIgY29kZSwgUkVBRE1FLCBhbmQgQmVhZ2xlQm9hcmQKCiAgICBBZGQgQmVhZ2xlQm9hcmQgc3VwcG9ydCwgY29tbW9uIHBvd2VyIGNvZGUgYW5kIFJFQURNRS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBLcmlkbmVyIDxqa3JpZG5lckBiZWFnbGVib2FyZC5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdvb2dsZW1haWwuY29tPgoKY29tbWl0IDljZGE0ZjEwNGI1MzEzZmFkYzIxYjc1YWE3ODFjN2E2YWFmNmVhNjAKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgSmFuIDI4IDA4OjMxOjEwIDIwMDkgLTA2MDAKCiAgICA4NXh4OiBGaXggY29tcGlsZSBicmVha2FnZSB3aXRoIE1QQzg1NDBFVkFMCgogICAgQ29uZmlndXJpbmcgZm9yIE1QQzg1NDBFVkFMIGJvYXJkLi4uCiAgICBtcGM4NTQwZXZhbC5jOiBJbiBmdW5jdGlvbiAnY2hlY2tib2FyZCc6CiAgICBtcGM4NTQwZXZhbC5jOjUzOiBlcnJvcjogaW52YWxpZCBvcGVyYW5kcyB0byBiaW5hcnkgLwogICAgbWFrZVsxXTogKioqIFttcGM4NTQwZXZhbC5vXSBFcnJvciAxCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAxYTQ0OGRiNzdiMTAxNTM3MDNiYzVlNGFkMTNkZDU1ZDg4YmViMWQ2CkF1dGhvcjogQnJ5YW4gV3UgPGJyeWFuLnd1QGFuYWxvZy5jb20+CkRhdGU6CVN1biBKYW4gMTggMjM6MDQ6MjcgMjAwOSAtMDUwMAoKICAgIHVzYl9zY2FuX2RldmljZXM6IGZpeCBvdXRwdXQgd2l0aCBubyBkZXZpY2VzCgogICAgV2Ugc2hvdWxkIGNoZWNrIHRoZSByZXR1cm4gb2YgdXNiX25ld19kZXZpY2UoKSBzbyB0aGF0IGlmIG5vIFVTQiBkZXZpY2UgaXMKICAgIGZvdW5kLCB3ZSBwcmludCBvdXQgdGhlIHJpZ2h0IG1lc3NhZ2UgcmF0aGVyIHRoYW4gYWx3YXlzIHNheWluZyAibmV3IHVzYgogICAgZGV2aWNlIGZvdW5kIi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCcnlhbiBXdSA8YnJ5YW4ud3VAYW5hbG9nLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IGYxYzFmNTQwMjQzNDM4MjQ2YWVmYjcwM2ZkY2YxNjk1N2UzYTcyZTEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBKYW4gMjIgMTA6MTE6MjEgMjAwOSArMDEwMAoKICAgIFVTQjogQWRkIGhpZ2gtc3BlZWQgKDQ4ME1iL3MpIHRvIGFsbCBVU0IgcmVsYXRlZCBvdXRwdXRzCgogICAgV2l0aCB0aGlzIHBhdGNoIHRoZSBVU0IgcmVsYXRlZCBjb25uZWN0aW9uIHNwZWVkIG91dHB1dCAoInVzYiB0cmVlIiBjb21tYW5kIGFuZAogICAgZGVidWcgb3V0cHV0KSBpcyBub3cgaGlnaC1zcGVlZCBlbmFibGVkLgoKICAgIFRoaXMgcGF0Y2ggYWxzbyBmaXhlcyBhIGNvbXBpbGF0aW9uIHdhcm5pbmcgd2hlbiBkZWJ1Z2dpbmcgaXMgZW5hYmxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KCmNvbW1pdCBkYWEyZGFmYjQ1MGE4MDczYTRlNDJmZDQ2Y2Q0ZTk5NWIyMDhlNGNiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDIxIDE3OjEyOjE5IDIwMDkgKzAxMDAKCiAgICBVU0I6IEFkZCBkY2FjaGUgc3VwcG9ydCB0byB0aGUgRUhDSSBkcml2ZXIKCiAgICBUaGlzIHBhdGNoIGFkZHMgcm91dGluZXMgdG8gaGFuZGxlIChmbHVzaC9pbnZhbGlkYXRlKSB0aGUgZGNhY2hlIGZvciB0aGUKICAgIFFIIGFuZCBxVEQgc3RydWN0dXJlcyBhbmQgZGF0YSBidWZmZXJzLiBUaGlzIGlzIG5lZWRlZCBvbiBwbGF0Zm9ybXMgdXNpbmcKICAgIHRoaXMgRUhDSSBzdXBwb3J0IHdpdGggZGNhY2hlIGVuYWJsZWQgKGxpa2UgdGhlIE1JUFMgVkNUIGJvYXJkIHBvcnQpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IDRlMGVhMGVmYzFlNTAxMTg2YWNhODU3N2E0MDQyZmM2ZmE2NDE2MDIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMjEgMTc6MTI6MjggMjAwOSArMDEwMAoKICAgIFVTQjogQWRkIEVIQ0kgc3VwcG9ydCBmb3IgVkNUIEVIQ0kgY29udHJvbGxlcgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IDgzMmU2MTQxOGVlZGZlYTE3MmJkMmZkZmQwZWEwZDE5OWNjNzBhOWQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMjEgMTc6MTI6MTAgMjAwOSArMDEwMAoKICAgIFVTQjogQWRkIGNvbmZpZyBvcHRpb24gdG8gY2FsbCBlaGNpX2hjZF9pbml0KCkgYWdhaW4gYWZ0ZXIgRUhDSSByZXNldAoKICAgIFRoaXMgcGF0Y2ggYWRkcyB0aGUgY29uZmlnIG9wdGlvbiBDT05GSUdfRUhDSV9IQ0RfSU5JVF9BRlRFUl9SRVNFVAogICAgdG8gY2FsbCBlaGNpX2hjZF9pbml0KCkgYWdhaW4gYWZ0ZXIgZWhjaV9yZXNldCgpIGlzIGV4ZWN1dGVkLiBUaGlzCiAgICBpcyBuZWVkZWQgZm9yIHRoZSB1cGNvbWluZyBWQ1QgRUhDSSBzdXBwb3J0IHdoaWNoIG5lZWRzIHRvIHJlLWluaXQKICAgIHRoZSBoY2QgcGFydCBhZ2FpbiBhZnRlciB0aGUgRUhDSSBDTURfUkVTRVQgaXMgZXhlY3V0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+Cgpjb21taXQgNTk3ZWIyOGJkOTY5MTI2NmI3YjgwNDM2NGNkYTU3N2NkYjUxZDEwNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAyMSAxNzoxMjowMSAyMDA5ICswMTAwCgogICAgVVNCOiBGaXggc3BlZWQgZGV0ZWN0aW9uIG9uIEVIQ0kgY250ciB3aXRoIHJvb3QgaHViIHRyYW5zYWN0aW9uIHRyYW5zbGF0b3JzCgogICAgVGhpcyBwYXRjaCBmaXhlcyBhbiBpc3N1ZSB0aGF0IHRoZSBzcGVlZCBvZiBVU0IgZGV2aWNlcyB3YXMgbm90IGRldGVjdGVkCiAgICBjb3JyZWN0bHkgb24gc29tZSBFSENJIGNvbnRyb2xsZXJzLiBUaGlzIHdpbGwgYmUgdXNlZCBvbiB0aGUgdXBjb21pbmcgVkNUCiAgICBFSENJIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+Cgpjb21taXQgMjBjYzA2NjExZWEzM2ZjMGE2N2E1ZTU2ZTY0NzYzNzlkMmRlMzA5MQpBdXRob3I6IFRob21hcyBBYnJhaGFtIDx0LWFicmFoYW1AdGkuY29tPgpEYXRlOglTdW4gSmFuIDQgMDk6NDE6MjAgMjAwOSArMDUzMAoKICAgIHVzYiA6IG11c2IgOiBFbmFibGluZyBVU0IgTVNDIHN1cHBvcnQgZm9yIERNNjQ0NiAoVEkgRGFWaW5jaSkgcGxhdGZvcm0KCiAgICBFbmFibGluZyBVU0IgTVNDIHN1cHBvcnQgZm9yIERNNjQ0NiAoVEkgRGFWaW5jaSkgcGxhdGZvcm0gaW4gdGhlCiAgICBjb25maWd1cmF0aW9uIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogUmF2aSBCYWJ1IDxyYXZpYmFidUB0aS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTd2FtaW5hdGhhbiBTIDxzd2FtaS5peWVyQHRpLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFRob21hcyBBYnJhaGFtIDx0LWFicmFoYW1AdGkuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQWpheSBLdW1hciBHdXB0YSA8YWpheS5ndXB0YUB0aS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KCmNvbW1pdCA1MzhlZjk2NzcxNTMyMmY2NGVlMDhlZmEyMjk2ZDk2ODIxMTFiMDE0CkF1dGhvcjogVGhvbWFzIEFicmFoYW0gPHQtYWJyYWhhbUB0aS5jb20+CkRhdGU6CVN1biBKYW4gNCAwOTo0MToxNiAyMDA5ICswNTMwCgogICAgdXNiIDogbXVzYiA6IEVuYWJsaW5nIERNNjQ0NiAoVEkgRGFWaW5jaSkgVVNCIG1vZHVsZSBwb3dlcgoKICAgIEVuYWJsaW5nIERNNjQ0NiAoVEkgRGFWaW5jaSkgVVNCIG1vZHVsZSBwb3dlciBhbmQgTVVTQiBsb3ctbGV2ZWwKICAgIGNvbnRyb2xsZXIgaG9vayB1cCB0byBVU0IgY29yZSBsYXllci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYXZpIEJhYnUgPHJhdmliYWJ1QHRpLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN3YW1pbmF0aGFuIFMgPHN3YW1pLml5ZXJAdGkuY29tPgogICAgU2lnbmVkLW9mZi1ieTogVGhvbWFzIEFicmFoYW0gPHQtYWJyYWhhbUB0aS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBamF5IEt1bWFyIEd1cHRhIDxhamF5Lmd1cHRhQHRpLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IGUxNDJlOWYzNWY4ZWM2MWU3NGJmODAxOTQyOGIwMDNmNTA3MGMzM2IKQXV0aG9yOiBUaG9tYXMgQWJyYWhhbSA8dC1hYnJhaGFtQHRpLmNvbT4KRGF0ZToJU3VuIEphbiA0IDA5OjQxOjEzIDIwMDkgKzA1MzAKCiAgICB1c2IgOiBtdXNiIDogQWRkaW5nIERNNjQ0NiAoVEkgRGFWaW5jaSkgcGxhdGZvcm0gc3BlY2lmaWMgVVNCIHN1cHBvcnQKCiAgICBBZGRpbmcgRE02NDQ2IChUSSBEYVZpbmNpKSBwbGF0Zm9ybSBzcGVjaWZpYyBVU0IgZnVuY3Rpb25hbGl0eSBmb3IKICAgIFVTQiBQaHkgYW5kIFZCVVMgaW5pdGlhbGl6YXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogUmF2aSBCYWJ1IDxyYXZpYmFidUB0aS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTd2FtaW5hdGhhbiBTIDxzd2FtaS5peWVyQHRpLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFRob21hcyBBYnJhaGFtIDx0LWFicmFoYW1AdGkuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQWpheSBLdW1hciBHdXB0YSA8YWpheS5ndXB0YUB0aS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KCmNvbW1pdCBhOWQzOWViZTkxZWNkZDVhYzBhMGNmNTZlYTE2MmExOTc3M2RiOGRhCkF1dGhvcjogVGhvbWFzIEFicmFoYW0gPHQtYWJyYWhhbUB0aS5jb20+CkRhdGU6CVN1biBKYW4gNCAwOTo0MTowOSAyMDA5ICswNTMwCgogICAgdXNiIDogbXVzYiA6IEFkZGluZyBVU0IgVkJVUyBlbmFibGUgZnVuY3Rpb25hbGl0eSBmb3IgRE02NDR4IERWRVZNCgogICAgQWRkaW5nIFVTQiBWQlVTIGVuYWJsZSBmdW5jdGlvbmFsaXR5IGZvciBETTY0NHggRFZFVk0gKFRJIERhVmluY2kpCiAgICBwbGF0Zm9ybS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYXZpIEJhYnUgPHJhdmliYWJ1QHRpLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN3YW1pbmF0aGFuIFMgPHN3YW1pLml5ZXJAdGkuY29tPgogICAgU2lnbmVkLW9mZi1ieTogVGhvbWFzIEFicmFoYW0gPHQtYWJyYWhhbUB0aS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBamF5IEt1bWFyIEd1cHRhIDxhamF5Lmd1cHRhQHRpLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IGExNDI4OTY5MzRjNzU1ZTY3OWJhODdlMjI3YThlNDQ5ZjM5YjAwMTIKQXV0aG9yOiBUaG9tYXMgQWJyYWhhbSA8dC1hYnJhaGFtQHRpLmNvbT4KRGF0ZToJU3VuIEphbiA0IDA5OjQxOjAzIDIwMDkgKzA1MzAKCiAgICB1c2IgOiBtdXNiIDogQWRkaW5nIGhvc3QgY29udHJvbGxlciBkcml2ZXIgZm9yIE1lbnRvciBVU0IgY29udHJvbGxlcgoKICAgIEFkZGluZyBNZW50b3IgVVNCIGNvcmUgZnVuY3Rpb25hbGl0eSBhbmQgTWVudG9yIFVTQiBIb3N0IGNvbnRyb2xsZXIKICAgIGZ1bmN0aW9uYWxpdHkgZm9yIE1lbnRvciBVU0IgT1RHIGNvbnRyb2xsZXIgKG11c2JoZHJjKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYXZpIEJhYnUgPHJhdmliYWJ1QHRpLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN3YW1pbmF0aGFuIFMgPHN3YW1pLml5ZXJAdGkuY29tPgogICAgU2lnbmVkLW9mZi1ieTogVGhvbWFzIEFicmFoYW0gPHQtYWJyYWhhbUB0aS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBamF5IEt1bWFyIEd1cHRhIDxhamF5Lmd1cHRhQHRpLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IGM3ZDcwM2YzZjNjM2Q2YjAyMGJkYTRjZjYzM2Y4YTYxNjdjM2NkMmEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVRodSBKYW4gMSAxODoyNzoyNyAyMDA5IC0wNTAwCgogICAgdXNiLmg6IHVzZSBzdGFuZGFyZCBfX0xJVFRMRV9FTkRJQU4gZnJvbSBMaW51eCBoZWFkZXJzCgogICAgUmF0aGVyIHRoYW4gZm9yY2luZyBwZW9wbGUgdG8gZGVmaW5lIGEgY3VzdG9tICJMSVRUTEVFTkRJQU4iLCBqdXN0IHVzZSB0aGUKICAgIF9fTElUVExFX0VORElBTiBvbmUgZnJvbSB0aGUgTGludXggYnl0ZW9yZGVyIGhlYWRlcnMgdGhhdCBldmVyeSBhcmNoIGlzCiAgICBhbHJlYWR5IHNldHRpbmcgdXAuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+Cgpjb21taXQgN2I2ZTMxZWIxN2UzZmY3NjIzOGE2MDgwM2ZjNTMxNTE3ZDUxNjIyMwpBdXRob3I6IE1pY2hhZWwgVHJpbWFyY2hpIDx0cmltYXJjaGlAZ2FuZGFsZi5zc3N1cC5pdD4KRGF0ZToJV2VkIERlYyAzMSAxMDozMzo1NiAyMDA4ICswMTAwCgogICAgVVNCIGVoY2kgaXhwNHh4IHN1cHBvcnQKCiAgICBBZGQgVVNCIGVoY2kgaXhwNHh4IGhvc3QgY29udHJvbGxlci4gVGVzdCBvbiBpeGRwNDY1IGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgVHJpbWFyY2hpIDx0cmltYXJjaGltaWNoYWVsQHlhaG9vLml0PgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+Cgpjb21taXQgMWVkOWY5YWRjODgyMTg4NDFkZmViNjBiOTA5NGE1YTU0OGJmZjAwOQpBdXRob3I6IE1pY2hhZWwgVHJpbWFyY2hpIDx0cmltYXJjaGlAZ2FuZGFsZi5zc3N1cC5pdD4KRGF0ZToJV2VkIERlYyAzMSAxMDozMzoyMiAyMDA4ICswMTAwCgogICAgVVNCIGVoY2kgcmVtb3ZlIGluZmluaXRlIGxvb3AgYW5kIHVzZSBoYW5kc2hha2UgZnVuY3Rpb24KCiAgICBVU0IgZWhjaSBjb2RlIGNsZWFudXAuIFVzZSBoYW5kc2hha2UgaW5zdGVhZCBvZiBpbmZpbml0ZSB3aGlsZSBsb29wCiAgICB0byBjaGVjayB0aGUgU1REX0FTUyBzdGF0dXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFRyaW1hcmNoaSA8dHJpbWFyY2hpbWljaGFlbEB5YWhvby5pdD4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IDhmZWEyOTE0YWM5NzQwMjliNjU5MjZlZjgyNDdkOTA4Zjg0ZDIwMmQKQXV0aG9yOiBNaWNoYWVsIFRyaW1hcmNoaSA8dHJpbWFyY2hpQGdhbmRhbGYuc3NzdXAuaXQ+CkRhdGU6CVdlZCBEZWMgMzEgMTA6MzI6NDEgMjAwOCArMDEwMAoKICAgIEFkZCBpbml0aWFsIHN1cHBvcnQgZm9yIFVTQiBlaGNpIHBjaQoKICAgIEFkZCBVU0IgZWhjaSBwY2kgc3VwcG9ydC4gVGhpcyBwYXRjaCBkb2Vzbid0IGluY2x1ZGUgYW55CiAgICBwY2lfaWRzIGFuZCBpdCBpcyBub3QgdGVzdGVkIG9uIHJlYWwgaGFyZHdhcmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBUcmltYXJjaGkgPHRyaW1hcmNoaW1pY2hhZWxAeWFob28uaXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KCmNvbW1pdCAxNGU0MTExY2RhYjdlNzczOGZmNmEyMDNkNDQ1ZTRkODM3N2YwNThmCkF1dGhvcjogQnJ5YW4gV3UgPEJyeWFuLld1QGFuYWxvZy5jb20+CkRhdGU6CVRodSBKYW4gMSAxOTo0ODowNyAyMDA5IC0wNTAwCgogICAgdXNiX3N0b3JhZ2U6IGRvIG5vdCByZXNldCBTYW5EaXNrIENvcnBvcmF0aW9uIFUzIENydXplciBNaWNybyBVU0IgdGh1bWIgZHJpdmUKCiAgICBUaGUgU2FuRGlzayBDb3Jwb3JhdGlvbiBVMyBDcnV6ZXIgTWljcm8gMS80R0IgRmxhc2ggRHJpdmUgMDAwMDE2MjQ0MzczRkZCNAogICAgZG9lcyBub3QgbGlrZSB0byBiZSByZXNldCwgc28gY2hlY2sgZm9yIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEJyeWFuIFd1IDxicnlhbi53dUBhbmFsb2cuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+Cgpjb21taXQgMWViNzM0ZmVkM2I3OWE1ZTYxMDZkYWQxNmU4ODA0MTg5NGZkYWIzMApBdXRob3I6IFRob21hcyBBYnJhaGFtIDx0LWFicmFoYW1AdGkuY29tPgpEYXRlOglTdW4gSmFuIDQgMTI6MTU6MzUgMjAwOSArMDUzMAoKICAgIHVzYiA6IHVzYl9rYmQgOiBQb3B1bGF0aW5nICdwcml2JyBtZW1iZXIgb2YgVVNCIGtleWJvYXJkIGRldmljZV90IHN0cnVjdHVyZQoKICAgIFRoaXMgcGF0Y2ggcG9wdWxhdGVzIHRoZSAncHJpdicgZmllbGQgb2YgdGhlIFVTQiBrZXlib2FyZCBkZXZpY2VfdAogICAgc3RydWN0dXJlLiBUaGUgJ3ByaXYnIGZpZWxkIGlzIHBvcHVsYXRlZCB3aXRoIHRoZSBhZGRyZXNzIG9mIHRoZQogICAgJ3N0cnVjdCB1c2JfZGV2aWNlJyBzdHJ1Y3R1cmUgdGhhdCByZXByZXNlbnRzIHRoZSBVU0IgZGV2aWNlLgoKICAgIFRoZSAncHJpdicgZmllbGQgY2FuIHRoZW4gYmUgdXNlZCBpbiB0aGUgJ3VzYl9ldmVudF9wb2xsJyBmdW5jdGlvbiB0bwogICAgZGV0ZXJtaW5lIHRoZSBVU0IgZGV2aWNlIHRoYXQgcmVxdWlyZXMgdG8gYmUgcG9sbGVkLiBBbgogICAgZXhhbXBsZSBvZiBpdHMgdXNhZ2UgaW4gJ3VzYl9ldmVudF9wb2xsJyBmdW5jdGlvbiBpcyBhcyBiZWxvdy4KCglkZXZpY2VfdCAqZGV2OwoJc3RydWN0IHVzYl9kZXZpY2UgKnVzYl9rYmRfZGV2OwoKCTxzbmlwPgoKCWRldiA9IGRldmljZV9nZXRfYnlfbmFtZSgidXNia2JkIik7Cgl1c2Jfa2JkX2RldiA9IChzdHJ1Y3QgdXNiX2RldmljZSAqKWRldi0+cHJpdjsKCWlmYWNlID0gJnVzYl9rYmRfZGV2LT5jb25maWcuaWZfZGVzY1swXTsKCiAgICBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgQWJyYWhhbSA8dC1hYnJhaGFtQHRpLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IDM2NjUyM2MyNmI2MzIwYWYxNzE0NTliMTllNmUwZTllM2JhYTgzY2EKQXV0aG9yOiBNaWNoYWVsIFRyaW1hcmNoaSA8dHJpbWFyY2hpQGdhbmRhbGYuc3NzdXAuaXQ+CkRhdGU6CVRodSBEZWMgMTggMTA6MDU6MzcgMjAwOCArMDEwMAoKICAgIFVTQiBjaGFuZ2Ugc3BlZWQKCiAgICBVU0IgY2hhbmdlcyB0aGUgc3BlZWQgYWNjb3JkaW5nIHRvIHRoZSBwb3J0IHN0YXR1cwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgVHJpbWFyY2hpIDx0cmltYXJjaGltaWNoYWVsQHlhaG9vLml0PgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+Cgpjb21taXQgYzBkNzIyZmU3ZWUxY2I0NTJkZmQ5MjQ2NDE5MTg4YjNmNmQ5YzRkZgpBdXRob3I6IFJlbXkgQsO2aG1lciA8bGludXhAYm9obWVyLm5ldD4KRGF0ZToJU2F0IERlYyAxMyAyMjo1MTo1OCAyMDA4ICswMTAwCgogICAgRUhDSSBmaXggY29kZSBhbmQgaXhwNHh4IHRlc3QuCiAgICBVU0IgZWhjaSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjoKCiAgICAjZGVmaW5lIENPTkZJR19DTURfVVNCCSAgICAxCiAgICAjZGVmaW5lIENPTkZJR19VU0JfU1RPUkFHRQkgICAgMQogICAgI2RlZmluZSBDT05GSUdfVVNCX0VIQ0kKICAgICNkZWZpbmUgQ09ORklHX1VTQl9FSENJX0lYUDRYWAkxCiAgICAjZGVmaW5lIENPTkZJR19FSENJX0lTX1RESQkxCiAgICAjZGVmaW5lIENPTkZJR19FSENJX0RFU0NfQklHX0VORElBTiAgICAgMQogICAgI2RlZmluZSBDT05GSUdfRUhDSV9NTUlPX0JJR19FTkRJQU4gICAgIDEKICAgICNkZWZpbmUgQ09ORklHX1NZU19VU0JfRUhDSV9NQVhfUk9PVF9QT1JUUyAyCiAgICAjZGVmaW5lIENPTkZJR19MRUdBQ1lfVVNCX0lOSVRfU0VRCSAgICAxCgogICAgMiBVU0IgRGV2aWNlKHMpIGZvdW5kCgkgICBzY2FubmluZyBidXMgZm9yIHN0b3JhZ2UgZGV2aWNlcy4uLiAwIFN0b3JhZ2UgRGV2aWNlKHMpIGZvdW5kCiAgICA9PiB1c2IgdHJlZQoKICAgIERldmljZSBUcmVlOgogICAgICAxICBIdWIgKDEuNU1CaXQvcywgMG1BKQogICAgICB8ICB1LWJvb3QgRUhDSSBIb3N0IENvbnRyb2xsZXIKICAgICAgfAogICAgICB8Ky0yICBNYXNzIFN0b3JhZ2UgKDEyTUJpdC9zLCAxMDBtQSkKCSAgIFNvbnkgU3RvcmFnZSBNZWRpYSAwQzA3MDQwOTMwMjk2CgogICAgPT4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFRyaW1hcmNoaSA8dHJpbWFyY2hpbWljaGFlbEB5YWhvby5pdD4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQsO2aG1lciA8bGludXhAYm9obWVyLm5ldD4KCmNvbW1pdCA1MWFiMTQyYjhiNTQ2ZDVlNjI3YjJjOGMzNmQwYWRhZTIyMjU2NWY3CkF1dGhvcjogbWljaGFlbCA8bWljaGFlbEBwYW5pY2tpbmcucmV0aXM+CkRhdGU6CVRodSBEZWMgMTEgMTM6NDM6NTUgMjAwOCArMDEwMAoKICAgIFtQQVRDSF0gVGhpcyBwYXRjaCBhZGQgdmFyaXVzIGZpeCB0byB0aGUgZWhjaS4KICAgIC0gZml4IGVoY2lfcmVhZGwsIGVoY2lfd3JpdGVsCiAgICAtIGludHJvZHVjZSBuZXcgZGVmaW5lIGluIGVoY2kuaAogICAgLSBpbnRyb2R1Y2UgdGhlIGhhbmRzaGFrZSBmdW5jdGlvbiBmb3Igd2FpdGluZyBvbiBhIHJlZ2lzdGVyCiAgICAtIGZpeCB1c2JfZWhjaV9mc2wgd2l0aCB0aGUgbmV3IEhDX0xFTkdUSCBtYWNybwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgVHJpbWFyY2hpIDx0cmltYXJjaGltaWNoYWVsQHlhaG9vLml0PgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCw7ZobWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IGRiNjMyOTliMWRkMjg5NGFkZTU0MjI3ODIxMGJjY2QwNDZkZTY0MzUKQXV0aG9yOiBtaWNoYWVsIDxtaWNoYWVsQHBhbmlja2luZy5yZXRpcz4KRGF0ZToJV2VkIERlYyAxMCAxNzo1NToxOSAyMDA4ICswMTAwCgogICAgW1BBVENIXSBGaXggRUhDSSB1c2IuIEkgc3RhcnQgdG8gdGVzdCBvbiBhCiAgICBJWFA0NjUgYm9hcmQgYW5kIEkgZmluZCBzb21lIGVycm9ycyBpbiB0aGUgY29kZS4gVGhpcwogICAgcGF0Y2ggZml4OgogICAgLSBkZXNjcmlwdG9yIGluaXRpemlhbGl6YXRpb24gKGNvbmZpZywgaW50ZXJmYWNlIGFuZCBlbmRwb2ludAogICAgICBtdXN0IGJlIG9uZSBuZXh0LXRvIHRoZSBvdGhlciB3aGVuIHRoZSBVU0JfRFRfQ09ORklHIG1lc3NhZ2UKICAgICAgaXMgc2VuZC4KICAgIC0gRklYIGxpdHRsZS9lbmRpYW4gYmlnZW5kaWFuIChpbnRyb2R1Y2UgdGhlIENPTkZJR19FSENJX0RFU0NfQklHX0VORElBTgogICAgICBhbmQgdGhlIENPTkZJR19FSENJX01NSU9fQklHX0VORElBTikKICAgIC0gSW50cm9kdWNlIHRoZSBsaW51eCB2ZXJzaW9uIG9mIHRoZSB1c2JfY29uZmlnX2Rlc2NyaXB0b3IgYW5kCiAgICAgIHVzYl9pbnRlcmZhY2UgZGVzY3JpcHRvci4gVGhpcyBkZXNjcmlwdG9yIGRvZXMndCBjb250YWlucwogICAgICB1LWJvb3QgZXh0ZW5zaW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgVHJpbWFyY2hpIDx0cmltYXJjaGltaWNoYWVsQHlhaG9vLml0PgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCw7ZobWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IDZiOTI0ODdkY2Y5YWZlODNhMzU3MDE1M2Q2Njk0MGZkYjI5M2JlNzYKQXV0aG9yOiBNaWNoYWVsIFRyaW1hcmNoaSA8dHJpbWFyY2hpQGdhbmRhbGYuc3NzdXAuaXQ+CkRhdGU6CUZyaSBOb3YgMjggMTM6MjI6MDkgMjAwOCArMDEwMAoKICAgIFVTQiBlaGNpIGZyZWVzY2FsZSBzdXBwb3J0CgogICAgQWRkIFVTQiBlaGNpIGZyZWVzY2FsZSBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBUcmltYXJjaGkgPHRyaW1hcmNoaUBnYW5kYWxmLnNzc3VwLml0PgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCw7ZobWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IGFhZjA5OGNmZWVkMDQ1OTVkNGM1MTAwZmZkMzkwOTVkNzllZGJmOTAKQXV0aG9yOiBNaWNoYWVsIFRyaW1hcmNoaSA8dHJpbWFyY2hpQGdhbmRhbGYuc3NzdXAuaXQ+CkRhdGU6CUZyaSBOb3YgMjggMTM6MjA6NDYgMjAwOCArMDEwMAoKICAgIFVTQiBlaGNpIGNvcmUgc3VwcG9ydAoKICAgIEFkZCBVU0IgZWhjaSBjb3JlIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFRyaW1hcmNoaSA8dHJpbWFyY2hpQGdhbmRhbGYuc3NzdXAuaXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IELDtmhtZXIgPGxpbnV4QGJvaG1lci5uZXQ+Cgpjb21taXQgM2UxMjY0ODRkZjc4NjhlMzQxNTQ1Y2NlNzQwYjI0YjYyYjBjZDNiNwpBdXRob3I6IE1pY2hhZWwgVHJpbWFyY2hpIDx0cmltYXJjaGlAZ2FuZGFsZi5zc3N1cC5pdD4KRGF0ZToJRnJpIE5vdiAyOCAxMzoxOToxOSAyMDA4ICswMTAwCgogICAgUHJlcGFyZSBVU0IgbGF5ZXIgZm9yIGVoY2kKCiAgICBQcmVwYXJlIFVTQiBsYXllciBmb3IgZWhjaSBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBUcmltYXJjaGkgPHRyaW1hcmNoaUBnYW5kYWxmLnNzc3VwLml0PgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCw7ZobWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IGEwY2IzZmMzMWU1ODk5NmExYzU3MzI3MTVhYzA0MTU5ZDRkMjg0ZmQKQXV0aG9yOiBNaWNoYWVsIFRyaW1hcmNoaSA8dHJpbWFyY2hpQGdhbmRhbGYuc3NzdXAuaXQ+CkRhdGU6CVdlZCBEZWMgMTAgMTU6NTI6MDYgMjAwOCArMDEwMAoKICAgIFVTQiBzdG9yYWdlIGNsZWFudXAgcGF0Y2gKCiAgICBDbGVhbnVwIHVzYiBzdG9yYWdlCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBUcmltYXJjaGkgPHRyaW1hcmNoaW1pY2hhZWxAeWFob28uaXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KCmNvbW1pdCBmZTAzM2FkNmQwODgzMDYzZmU4NTcyMzdhYmI5NDM2ZmFiMDMyMDhjCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTdW4gT2N0IDEyIDA2OjAyOjU1IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogZml4dXAgbWlzYyB3YXJuaW5ncyBzdWNoIGFzIHByaW50ZidzIGFuZCBtaXNzaW5nIGNhc3RzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDFmNGEzYmI1MDM0MzcxOWM0MzRkN2UyNTQxYTJmODY0ODBhNmQyNWMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVN1biBPY3QgMTIgMjI6MDk6MjYgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBjb252ZXJ0IG9sZCBib2FyZHMgdG8gdXNlIENPQkpTLXkgTWFrZWZpbGUgc3R5bGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMWY3NWQ2ZjBmZjAwNTc2MmQzZTZhZDkyYWU0Y2UyYWIzNjZiM2JiNQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IE9jdCAxMSAyMjozODozNyAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGJmNTMzLXN0YW1wOiByZXdyaXRlIHJlc291cmNlIHN3YXAgbG9naWMKCiAgICBUaGUgb2xkIHN3YXAgZnVuY3Rpb24gdGVuZGVkIHRvIGNsb2JiZXIgdW5yZWxhdGVkIHBpbnMgYW5kIHNjcmV3IHVwIG1hc2tzLgogICAgUmV3cml0ZSB0aGUgdGhpbmcgZnJvbSBzY3JhdGNoIHNvIGl0IG9ubHkgdXNlcyB0aGUgcmVzb3VyY2VzIGl0IG5lZWRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAyOWQ0ZWEwYTkwNzNjODI0NjkxODQzMzEwMTAxMzZmNTJlZGY4ZGI2CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgT2N0IDExIDIyOjA4OjQyIDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogYm9vdGxkcjogaW1wbGVtZW50IEJGNTN4L0JGNTZ4IExEUiBsb2FkZXIKCiAgICBUaGUgQkY1M3gvQkY1NnggcGFydHMgZG8gbm90IGhhdmUgYW4gb24tY2hpcCBST00gdG8gYm9vdCBMRFJzIG91dCBvZgogICAgYXJiaXRyYXJ5IG1lbW9yeSBsb2NhdGlvbnMsIHNvIGltcGxlbWVudCBhIGJhc2ljIG9uZSBpbiBzb2Z0d2FyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgOGIzNWUzYWVmZjZjMmQ3NDdjMzc2OTc5OTdiM2Y4YTgwODQzMjMyOQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IE9jdCAxMSAyMjowNTo0MiAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGltcGxlbWVudCByZWFsIHdyaXRlIHN1cHBvcnQgZm9yIE9UUAoKICAgIE5vdyB0aGF0IHJlYWwgZG9jdW1lbnRhdGlvbiBoYXMgYmVlbiByZWxlYXNlZCBmb3IgdGhlIE9UUCBpbnRlcmZhY2UgYW5kCiAgICB0aGUgb24tY2hpcCBST00gd3J0IHdyaXRpbmcvdGltaW5ncywgaW1wbGVtZW50IHN1cHBvcnQgZm9yIHJlYWRpbmcvd3JpdGluZwogICAgYXMgd2VsbCBhcyBkdW1waW5nL2xvY2tpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDkzNzJjMzIxNDgwOGZhYjU0NTIyN2Q4ZDBmNzZiM2JmY2M2NzYwZWMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBPY3QgMTEgMjI6MDQ6MDUgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiB1cGRhdGUgb24tY2hpcCBST00gQVBJCgogICAgVGhpcyBicmluZ3MgdGhlIEFQSSBmb3IgdGhlIG9uLWNoaXAgUk9NIGluIGxpbmUgd2l0aCB0aGUgdG9vbGNoYWluIGFuZAogICAgaGFyZHdhcmUgZG9jdW1lbnRhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNzYzMzkwM2JmZjQzMmVjN2IyNzkwNWRjZTczOTY5NTg1NTNmMmJlNgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IE9jdCAxMSAyMTo1MjoxNyAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGFsbG93IHNlcmlhbCBjb25zb2xlIHRvIGJlIGRpc2FibGVkCgogICAgU29tZSBkZXZpY2VzIGhhdmUgbm8gVUFSVCBkZXZpY2UgcHVsbGVkIG91dCwgc28gYWxsb3cgcGVvcGxlIHRvIGRpc2FibGUgdGhlCiAgICBkcml2ZXIgY29tcGxldGVseSBpbiBmYXZvciBvZiBvdGhlciBtZXRob2RzIChsaWtlIEpUQUctY29uc29sZSkuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDM2ZWE4ZTlhZDExMDdhZjEyZDI0NGJiYThjNzNlODViOWY2NTVlNDUKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBPY3QgMTEgMjE6NTE6MjAgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBzdXBwb3J0IGNvbnNvbGUtb3Zlci1KVEFHCgogICAgVGhlIEJsYWNrZmluIEpUQUcgaGFzIHRoZSBhYmlsaXR5IHRvIHBhc3MgZGF0YSB2aWEgYSBiYWNrLWNoYW5uZWwgd2l0aG91dAogICAgaGFsdGluZyB0aGUgcHJvY2Vzc29yLiAgVXRpbGl6ZSB0aGF0IGNoYW5uZWwgdG8gZW11bGF0ZSBhIGNvbnNvbGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGNmOGYyZWZiNWYzOWM1MjI1ZGE5MjM5MWMxNGEwN2VlY2JlY2E4ODEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBPY3QgMTEgMjE6NDk6MDYgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBoYW5kbGUgbmV3IGFub21hbGllcyB3aXRoIHJlc2V0CgogICAgV29ya2Fyb3VuZCBmdW4gbmV3IGFub21hbGllcyByZWxhdGVkIHRvIHNvZnR3YXJlIHJlc2V0IG9mIHRoZSBwcm9jZXNzb3IuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGIxZTk0MzViNjQzMDQzZGQ4ZmJkMWZjYzQ3MzA5YzZhY2I3YjNjOGUKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBPY3QgMTEgMjE6NDQ6MDAgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBwYXNzIFJFVFggdG8gTGludXgKCiAgICBNYWtlIHN1cmUgd2Ugc2F2ZSB0aGUgdmFsdWUgb2YgUkVUWCBhdCBwb3dlciBvbiBhbmQgdGhlbiBwYXNzIGl0IG9uIHRvIHRoZQogICAga2VybmVsIHNvIHRoYXQgaXQgY2FuIG5pY2VseSBkZWJ1ZyBhICJkb3VibGUtZmF1bHQtY2F1c2VkLWEtcmVzZXQiIGNyYXNoLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBiNWViYTNmYWZjY2NkMTk3OTM4MGYxMmEyNTZiZDBlMTliZTNkNjFlCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgT2N0IDExIDIxOjQwOjI2IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogY2xhcmlmeSByZWxvY2F0aW9uIGNvbW1lbnQgZHVyaW5nIGluaXQKCiAgICBQZW9wbGUgb2Z0ZW4gYXNrIHF1ZXN0aW9ucyBhYm91dCB0aGUgaW5pdCBwcm9jZXNzIGFuZCB3aGVuIHRoaW5ncyBnbwogICAgZnJvbSBmbGFzaCB0byByZWxvY2F0ZWQgYmFzZSwgc28gY2xhcmlmeSB0aGUgY29tbWVudHMgYSBiaXQuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDk1NDMzZjZkNDNlZGU2YjQwYzFkOTAwZjNmNzA0YzgzOWFhMDc0ZjEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBPY3QgMTEgMjE6MjM6NDEgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBqdXN0IHNldCBTUCByZWdpc3RlciBkaXJlY3RseSBkdXJpbmcgaW5pdAoKICAgIE5vIG5lZWQgdG8gc2V0IHRoZSBTUCByZWdpc3RlciBpbmRpcmVjdGx5IHRvIHRoZSBjb25maWd1cmVkIHZhbHVlIHdoZW4gaXQKICAgIGNhbiBiZSBzZXQgZGlyZWN0bHkuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDUxMjMwZTZlMzU2Y2NmNGM5MzJlMGM0ZmY1NGYxZTQ5ZGEwMjI4NWMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBPY3QgMTEgMjE6MTU6NTMgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBhZGQgcG9ydG11eGluZyBmb3IgVUFSVHMgb24gdGhlIEJGNTF4CgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDRmNmEzMTMyNDBjNTMxMDQyZjE2OTA5YTNhMTcwYWIwNDdiOTU3NzkKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVN1biBKdW4gMSAwMToyNjoyOSAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IHJlc3BlY3QgQ09ORklHX0NMS0lOX0hBTEYKCiAgICBBcyBwb2ludGVkIG91dCBieSBJdmFuIEtvcnlha292c2tpeSwgdGhlIGluaXRpYWxpemF0aW9uIGNvZGUgd2FzIG5vdAogICAgYWN0dWFsbHkgcmVzcGVjdGluZyB0aGUgQ09ORklHX0NMS0lOX0hBTEYgb3B0aW9uIHdoZW4gY29uZmlndXJpbmcgdGhlCiAgICBQTExfQ1RMIHJlZ2lzdGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBkYzJiZmIwYjU4ZDc0NjJiOWViYTY4ZjNhZTM4ZTM4Y2FkYTBhZDMzCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTdW4gSnVuIDEgMDE6MjE6MzQgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiB1c2UgY29tbW9uIG1lbWNweSByb3V0aW5lIGR1cmluZyBpbml0CgogICAgUmF0aGVyIHRoYW4gdXNpbmcgYSBsb2NhbCBjdXN0b20gbWVtY3B5IGZ1bmN0aW9uLCBqdXN0IGNhbGwgdGhlIGV4aXN0aW5nCiAgICBvcHRpbWl6ZWQgQmxhY2tmaW4gdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMzYyYzk0MzM0NzM2NGU5MzczYWY0YzU1MzA3Nzg0OTFhYjU2ZWMyZQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJV2VkIEFwciA5IDAyOjI3OjA2IDIwMDggLTA0MDAKCiAgICBCbGFja2Zpbjogc2V0IGRlZmF1bHQgYm9vdCBTUEkgQ1MgZm9yIEJGNTM4L0JGNTM5CgogICAgVGhlIEJGNTM4L0JGNTM5IHVzZSBDUzIgZm9yIGJvb3Rpbmcgb2ZmIG9mIHJhdGhlciB0aGFuIENTMSBsaWtlIG5ld2VyCiAgICBCbGFja2ZpbiBwYXJ0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNzRkZGU4MGJkNWQ1NWJjMTQ2NjMwODUzY2ExOTFhYWVlYTdjMzBmNApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJV2VkIEFwciA5IDAyOjIwOjU5IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogcHVudCB1bnVzZWQgQkY1MzMtU1RBTVAgZGVmaW5pdGlvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgZmVlNTMxZWVlZmMzYjVmMmM2M2M3ZmUyN2I5ZjU1ZDkyNGM1OWMyNgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJRnJpIEFwciAxOCAyMDo0NDoxMSAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IHJlc3VycmVjdCBCRjUzMy1TVEFNUCB2aWRlbyBzcGxhc2ggZHJpdmVyCgogICAgVGhpcyB2aWRlbyBkcml2ZXIgdXNlZCB0byBsaXZlIGluIHRoZSBCbGFja2ZpbiBjcHUgZGlyZWN0b3J5LCBidXQgaXQgd2FzCiAgICBsb3N0IGR1cmluZyB0aGUgdW5pZmljYXRpb24gcHJvY2Vzcy4gIFRoaXMgYnJpbmdzIGl0IGJhY2suCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGE3NTBkMDM4ZjI1NDhkODQ2ZWExZTA0NmQ4NzNkYzkzMmQwNDEzMTkKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVdlZCBBcHIgOSAwMjozMToyOSAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IHRpZ2h0ZW4gdXAgcG9zdCBtZW1vcnkgY29kaW5nIHN0eWxlCgogICAgTm8gZnVuY3Rpb25hbCBjaGFuZ2VzIGhlcmU7IGp1c3QgY2xlYW51cCBjb2RlIHN0eWxlIGEgYml0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAwNjQ5OTA4ZjkyYzliZDIxNGRkMTM5YWEzZDQ2OThjMTY1NGE0NWM2CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglXZWQgQXByIDkgMDI6Mjk6MTggMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBiZjUzNy1zdGFtcCBuYW5kOiBmaXggbW9yZSBzdHlsZSBlcnJvcnMgaW4gcHJldmlvdXMgY29tbWl0CgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDQxZjMzMjVhZTlhZGQ2NDEwMzZkN2NiMzYyZTg4NGI2OThlNTNmMDcKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBPY3QgMTEgMjA6MzE6MTcgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBkcm9wIGRlYWQvd3JvbmcgZGVidWcgY29kZSBpbiBpbml0ZHJhbSgpCgogICAgVGhlIERFQlVHIGNvZGUgaW4gaW5pdGRyYW0oKSBpcyBxdWl0ZSBvbGQgYW5kIHdhcyBuZXZlciByZWFsbHkgdXNlZnVsLCBzbwogICAganVzdCBkcm9wIGl0IGFsdG9nZXRoZXIuICBDb21tb24gQmxhY2tmaW4gZGVidWcgY29kZSBkb2VzIGEgYmV0dGVyIGpvYi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNjViYTFhYmQzYjkwZTBiMjU4NTc0NTgwOWI3OGUyNjUxYmQzYmFjYgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IE9jdCAxMSAyMDozMDoyOCAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGJmNTMzLWV6a2l0OiBzaHVmZmxlIGZsYXNoIGRlZmluZXMgYSBsaXR0bGUKCiAgICBTb21lIG9mIHRoZSBmbGFzaCBkZWZpbmVzIHdlcmVuJ3QgaW4gdGhlIGNvcnJlY3QgbG9jYXRpb24gYW5kIGNhdXNlZCBidWlsZAogICAgcHJvYmxlbXMgaW4gc29tZSBjb25maWd1cmF0aW9ucywgc28gbGV0J3MgbW92ZSB0eXBlcyBhbmQgZGVmaW5lcyB0byBiZXR0ZXIKICAgIGxvY2FsIGxvY2F0aW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYmU4NTNiZjg2YjQxZTkxZjRjNDIyZjBmNTZmZGY4N2VhMzE5MTI2NgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIE9jdCA2IDA0OjE2OjQ3IDIwMDggLTA0MDAKCiAgICBCbGFja2Zpbjogb3ZlcmhhdWwgaTJjIGRyaXZlcgoKICAgIFRoZSBjdXJyZW50IEJsYWNrZmluIGkyYyBkcml2ZXIgZG9lcyBub3Qgd29yayBwcm9wZXJseSB3aXRoIGNlcnRhaW4gZGV2aWNlcwogICAgZHVlIHRvIGl0IGJyZWFraW5nIHVwIHRyYW5zZmVycyBpbmNvcnJlY3RseS4gIFRoaXMgaXMgYSByZXdyaXRlIG9mIHRoZQogICAgZHJpdmVyIGFuZCByZWxvY2F0ZXMgaXQgdG8gdGhlIG5ld2VyIHBsYWNlIGluIHRoZSBzb3VyY2UgdHJlZS4KCiAgICBBbHNvIHJlbW92ZSBkdXBsaWNhdGVkIEkyQyBzcGVlZCBkZWZpbmVzIGluIEJsYWNrZmluIGJvYXJkIGNvbmZpZ3MgYW5kCiAgICBkaXNhYmxlIEkyQyBzbGF2ZSBhZGRyZXNzIHVzYWdlIHNpbmNlIGl0IGlzbid0IGltcGxlbWVudGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBiNmVkYzcxOWExMDZhYjdmYTZlNjk1MGI0ZDk3YmMzOWMxMzY4ZTQ1CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gT2N0IDYgMDQ6MDA6MDcgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiByZXNwZWN0IENPTkZJR19TWVNfTU9OSVRPUl9MRU4gZm9yIGRlZmF1bHQgZmxhc2ggcHJvdGVjdGlvbgoKICAgIFJlc3BlY3QgdGhlIENPTkZJR19TWVNfTU9OSVRPUl9MRU4gZGVmaW5lIHJhdGhlciB0aGFuIGFzc3VtaW5nIGEgc2l6ZSBvZgogICAgMTI4a0Igd2hlbiBzZXR0aW5nIHVwIHRoZSBkZWZhdWx0IGZsYXNoIHByb3RlY3Rpb24gcmVnaW9uIGZvciBVLUJvb3QKICAgIGl0c2VsZi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNzhhMGJhN2RjMjRjOTY4MjM3MWY2ZWU4NTQ5YjU2OWZiNTczYTMyOQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIE9jdCA2IDAzOjU3OjM5IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogcmVzcGVjdC9jaGVjayBDT05GSUdfU1lTX0dCTF9EQVRBX1NJWkUKCiAgICBXaGVuIHNldHRpbmcgdXAgdGhlIGdsb2JhbCBkYXRhLCByYXRoZXIgdGhhbiByZWx5aW5nIG9uIHNpemVvZigpLCB1c2UgdGhlCiAgICBjb21tb24gQ09ORklHX1NZU19HQkxfREFUQV9TSVpFIGRlZmluZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMDE4MTVjMmQwNmM1YjgzOGYyY2Q1MzY3MDNlNDdiZDJjOTE0ODE5NApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIE9jdCA2IDAzOjUyOjI0IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogaW1wbGVtZW50IGdlbmVyYWwgc3VwcG9ydCBmb3IgQ09ORklHX1NUQVRVU19MRUQKCiAgICBIZXJlIGFyZSB0aGUgQmxhY2tmaW4tc3BlY2lmaWMgYW5kIGJvYXJkLWluZGVwZW5kZW50IHBpZWNlcyBmb3Igc3RhdHVzIGxlZHMuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDY4ODJiNWE3OWEzMjQ3NDk0YjYyYzA1MDE1ZmE2NzI1NTdmMWJmYWEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBPY3QgNiAwMzo0OTozMiAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGRvIG5vdCBpbml0IGkyYyBpbiBCbGFja2ZpbiBib2FyZCBpbml0CgogICAgVGhlIGNvbW1vbiBjb2RlIHRha2VzIGNhcmUgb2YgY2FsbGluZyBpMmNfaW5pdCgpIHdoZW4gbmVlZGVkLCBzbyBubyBwb2ludAogICAgaW4gdXMgZG9pbmcgaXQgYXMgd2VsbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMTExOGVhNzM2OThlZWU2ZTcyZWY1Y2JmYzAwZTQxNzQ2MDQwMzA0ZgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIE9jdCA2IDAzOjQyOjIwIDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogYmZpbl9tYWM6IHVwZGF0ZSBwb3J0IG11eGluZwoKICAgIEFkZHMgc3VwcG9ydCBtb3JlIEJsYWNrZmluIHBhcnRzIGFuZCBmaXhlcyBicm9rZW4gbXV4aW5nIGZvciBvbGRlciBvbmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAwNWI3NWU0ODgzMmZjNGFmZWVjZjhlNzZkNzA0MzQ5NTU3ZGZmYTM1CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gT2N0IDYgMDM6MzU6NDQgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBmaXggZGNhY2hlIGhhbmRsaW5nIHdoZW4gZG9pbmcgZG1hIG1lbWNweSdzCgogICAgT3VyIGRjYWNoZSBpbnZhbGlkYXRlIGZ1bmN0aW9uIGRvZXNuJ3QganVzdCBpbnZhbGlkYXRlLCBpdCBhbHNvIGZsdXNoZXMuCiAgICBTbyByZW5hbWUgdGhlIGZ1bmN0aW9uIGFjY29yZGluZ2x5IGFuZCBmaXggdGhlIGRtYV9tZW1jcHkoKSBmdW5jdGlvbiBzbyBpdAogICAgZG9lc24ndCBpbmFkdmVydGVudGx5IGNvcnJ1cHQgdGhlIGRhdGEgZGVzdGluYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDY4ZTU2MzI0OTQxNjgwOTVkNzVmMTIwYWY3MDA0M2I2OGFmZDI0NzYKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVRodSBBdWcgNyAxODo1Njo1NiAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGRvbnQgZ2VuZXJhdGUgbGRycyB3aXRoIC0tZm9yY2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNzQ2MjkwZGZkODZhNzBiNDFmYzVmZGQzZGYxNDI0YTY0N2Q1YzVlOApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IEF1ZyA3IDE4OjU1OjMwIDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogcGFzcyAtLWJtb2RlLy0taW5pdGNvZGUgd2hlbiBjcmVhdGluZyBsZHIKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMDMzMmU0ZGY3MWZjY2Y5YTk2YzVhNDM5M2UzYzVkNWRhYTUwODgwYQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IEF1ZyA3IDE4OjM5OjI3IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogbWluaW1pemUgdGltZSBjYWNoZSBpcyB0dXJuZWQgb2ZmIHdoZW4gcmVwbGFjaW5nIGNwbGIgZW50cmllcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAyMWQ2MzEzNjA0MzBjZjBhZTkwOTk2MTIyNzNjZDRkZTI4OTExYmE5CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUaHUgQXVnIDcgMTU6MzE6MTMgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBzcGxpdCBjYWNoZSBoYW5kbGluZyBvdXQgb2YgZG1hX21lbWNweSgpCgogICAgQ3JlYXRpbmcgYSBuZXcgZG1hX21lbWNweSgpIGZ1bmN0aW9uIHRoYXQgc2tpcHMgYWxsIGNhY2hlIGNoZWNrcyBhbGxvd3MgdXMKICAgIHRvIHVzZSB0aGUgZnVuY3Rpb24gaW4gdmVyeSBlYXJseSBpbml0IHdoZXJlIHRoZSBjYWNoZSBpcyBub3QgeWV0IHNldHVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBkMzFlYjM4NTEyYmVkMzc3ZDVkNGIzYzY5NjY2MmU1MjEyMGEyZTRjCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUaHUgQXVnIDcgMTU6MzA6NDkgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBhYm9ydCBkbWFfbWVtY3B5KCkgZm9yIEwxIHNjcmF0Y2hwYWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgODFiNzk5YWRkNzA5MTc3ZTgzODQ2NjQ2MWY3Yjk5ODk0ODhiMGZkNQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IEF1ZyA3IDE1OjI3OjUyIDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogcmVuYW1lIGJvb3RtLmMgdG8gYm9vdC5jCgogICAgVGhlIGJvb3QgZmlsZSBjb250YWlucyBmdW5jdGlvbnMgZm9yIG1vcmUgdGhhbiBqdXN0ICJib290bSIsIHNvIHJlbmFtZSBpdAogICAgYWNjb3JkaW5nbHkuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGQ3Y2E3ZGQ1YmZjNDE4YWMxNzNlOWQyNzEyZjZjYzJkODE0N2EwOTEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVRodSBBdWcgNyAxMzoyMjozNyAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IHNldCBtb3JlIHNhbmUgZGVmYXVsdCBib2FyZCBjb25maWcgdmFsdWVzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDM2Y2Q1MmEwMDc5NGZiMTVmZmFiMDVkNjQwYWNjYTkyZDc0ODI5OTMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVRodSBBdWcgNyAxNToyNDo1OSAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGNvbnZlcnQgQ01EX0xJTkVfQUREUiB0byBDT05GSUdfTElOVVhfQ01ETElORV97QUREUixTSVpFfQoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBjODA1NGJjMTJlMDA2NjliZDc1ODhmMmIzMGZlZjQ4YWE5NGJhYmFjCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUaHUgQXVnIDcgMTM6MjE6MjcgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBhZGQgYml0IGRlZmluZXMgZm9yIEREUiBwYXJ0cwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAxNTQ1MDJmZTA3OTZmM2I3YTQ2OTgzNzhjNWQyMDgwYWUyOGE5NzgyCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUaHUgQXVnIDcgMTM6MjE6MTEgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBhZGQgZGVmaW5lcyB0byBkZXNjcmliZSBhY3RpdmUgYm9vdHJvbSBiZWhhdmlvcgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAyYjZmZDVjNzdkYjljNmVkM2NlYTk3OTljODZmZjkyMmNmMDEwN2IyCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAyNyAxNjowMzo1MyAyMDA5IC0wNjAwCgogICAgbXBjODN4eDogZml4IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYGZsdXNoX2NhY2hlJyBlcnJvciBpbiBzaW1wYzgzMTMgYnVpbGQKCiAgICBleHRlbmQgY29tbWl0IGM3MDU2NGU2YjFiZDA4ZjMyMzAxODIzOTIyMzg5MDdmMzUzMWE4N2UKICAgICJOQU5EOiBGaXggY2FjaGUgYW5kIG1lbW9yeSBpbmNvbnNpc3RlbmN5IGlzc3VlIiB0byBhZGQgdGhlIGNhY2hlLm8gZGVwZW5kZW5jeQogICAgdG8gdGhlIHNpbXBjODMxMyBidWlsZCBhbmQgZml4IHRoaXM6CgogICAgLi4uTGFyZ2UgUGFnZSBOQU5ELi4uQ29uZmlndXJpbmcgZm9yIFNJTVBDODMxMyBib2FyZC4uLgogICAgbmFuZF9ib290X2ZzbF9lbGJjLm86IEluIGZ1bmN0aW9uIGBuYW5kX2Jvb3QnOgogICAgbmFuZF9zcGwvYm9hcmQvc2hlbGRvbi9zaW1wYzgzMTMvbmFuZF9ib290X2ZzbF9lbGJjLmM6MTUwOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBmbHVzaF9jYWNoZScKICAgIG1ha2VbMV06ICoqKiBbL2hvbWUvcjFhYWhhL2dpdC91LWJvb3QtbXBjODN4eC9uYW5kX3NwbC91LWJvb3Qtc3BsXSBFcnJvciAxCiAgICBtYWtlOiAqKiogW25hbmRfc3BsXSBFcnJvciAyCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1NGE3Y2M0OTEyZmVlZmE0NWJlOTYxY2M0N2NjMTU5NTYzNzI1ZDJmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAyOCAwOToyNTozMSAyMDA5ICswMTAwCgogICAgbXBjODUzNmRzLmM6IGluY2x1ZGUgc2F0YS5oIHRvIGZvciBuZWVkZWQgZnVuY3Rpb24gcHJvdG90eXBlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMmZiMjYwNGQ1YzIwYmViMDYxYjBhOTQyODJiN2Y2ZWIxNGQwMGNiOApBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CVR1ZSBKYW4gMjcgMTg6MDM6MTIgMjAwOSAtMDYwMAoKICAgIENvbW1hbmQgdXNhZ2UgY2xlYW51cAoKICAgIFJlbW92ZSBjb21tYW5kIG5hbWUgZnJvbSBhbGwgY29tbWFuZCAidXNhZ2UiIGZpZWxkcyBhbmQgdXBkYXRlCiAgICBjb21tb24vY29tbWFuZC5jIHRvIGRpc3BsYXkgIm5hbWUgLSB1c2FnZSIgaW5zdGVhZCBvZgogICAganVzdCAidXNhZ2UiLiBBbHNvIHJlbW92ZSBuZXdsaW5lcyBmcm9tIGNvbW1hbmQgdXNhZ2UgZmllbGRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgNzk2MjFiYzEwYmE4YjhjNDVkMzQ4OTk0YWJhNWI5ZTQ5MjNjYjc3YgpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CVR1ZSBKYW4gMjcgMTg6MDM6MTEgMjAwOSAtMDYwMAoKICAgIGFtY2M6IENsZWFuIHVwIGNvbW1hbmQgdXNhZ2Ugb3V0cHV0CgogICAgVXBkYXRlIHRhaWh1IGFuZCB0YWlzaGFuIGNvbW1hbmRzIHRvIHVzZSBjbWRfdXNhZ2UoKSBmdW5jdGlvbgogICAgdG8gZGlzcGxheSB1c2FnZSBtZXNzYWdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IDYyYzNhZTdjNmVmMjE1YjFhZmE2MTRhYmRmNjFhY2YwNzc3NTIyMDcKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglUdWUgSmFuIDI3IDE4OjAzOjEwIDIwMDkgLTA2MDAKCiAgICBTdGFuZGFyZGl6ZSBjb21tYW5kIHVzYWdlIG1lc3NhZ2VzIHdpdGggY21kX3VzYWdlKCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IDg0Y2RlMmJiNDA5YzA3YzZlZjM2YTE5MmQxOTQzNTlkNGU5Y2NkNzAKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglUdWUgSmFuIDI3IDE4OjAzOjA5IDIwMDkgLTA2MDAKCiAgICBwY3M0NDBlcDogQ2xlYW4gdXAgbGVkIGNvbW1hbmQgZGVmaW5pdGlvbgoKICAgIFRoZSBwY3M0NDBlcCdzIGxlZCBjb21tYW5kIHVzYWdlIGZvcm1hdHRpbmcgaXMgbm9uLXN0YW5kYXJkLiAgSXQKICAgIHdhcyBtYWRlIHN0YW5kYXJkIGluIHByZXBhcmF0aW9uIGZvciBsYXJnZXIgY29tbWFuZCB1c2FnZSB1cGRhdGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgOTUwN2U3ODY3ZTA0ZGM0OGM4MGVlMzMzYzJhOWE1ZTcwZTg4N2Y2MgpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CVR1ZSBKYW4gMjcgMTg6MDM6MDggMjAwOSAtMDYwMAoKICAgIENsZWFuIHVwIGRpdWZiIGNvbW1hbmQgZGVmaW5pdGlvbnMKCiAgICBUaGUgZGl1ZmIgY29tbWFuZCB1c2FnZSBmb3JtYXR0aW5nIGlzIG5vbi1zdGFuZGFyZC4gIEl0IHdhcwogICAgbWFkZSBzdGFuZGFyZCBpbiBwcmVwYXJhdGlvbiBmb3IgbGFyZ2VyIGNvbW1hbmQgdXNhZ2UgdXBkYXRlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IDY0NTBhODQ4NTgzNmZjODA2MTVhZTZkZTZhODY0YzMzMzY5YjQ0ZjUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDI4IDAwOjI5OjI2IDIwMDkgKzAxMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HLCB0aW55IGNvZGluZyBzdHlsZSBjbGVhbnVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgY2Y3ZTM5OWZiMzViM2FlYTkwYTI3ZDFkZjcyZjQ1ZjVkNjE1NjIwNApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVHVlIEphbiAyNyAxNjoxMjoyMSAyMDA5IC0wNTAwCgogICAgU0FUQTogZG8gbm90IGF1dG8taW5pdGlhbGl6ZSBkdXJpbmcgYm9vdAoKICAgIFJhdGhlciB0aGFuIGhhdmUgdGhlIGJvYXJkIGNvZGUgaW5pdGlhbGl6ZSBTQVRBIGF1dG9tYXRpY2FsbHkgZHVyaW5nIGJvb3QsCiAgICBtYWtlIHRoZSB1c2VyIG1hbnVhbGx5IHJ1biAic2F0YSBpbml0Ii4gIFRoaXMgYnJpbmdzIHRoZSBTQVRBIHN1YnN5c3RlbSBpbgogICAgbGluZSB3aXRoIGNvbW1vbiBVLUJvb3QgcG9saWN5LgoKICAgIFJhdGhlciB0aGFuIGhhdmluZyBhIGRlZGljYXRlZCB3ZWFrIGZ1bmN0aW9uICJpc19zYXRhX3N1cHBvcnRlZCIsIHBlb3BsZQogICAgY2FuIG92ZXJyaWRlIHNhdGFfaW5pdGlhbGl6ZSgpIHRvIGRvIHRoZWlyIHdlaXJkIGJvYXJkIHN0dWZmLiAgVGhlbiB0aGV5CiAgICBjYW4gY2FsbCB0aGUgYWN0dWFsIF9fc2F0YV9pbml0aWFsaXplKCkuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDUwOTcwODM5NzEyZGRhMzUzOTllMmZhODNmZTgxOGRmOTM1NGQ2MTgKQXV0aG9yOiBSaWNoYXJkIFJldGFudWJ1biA8UmljaGFyZFJldGFudWJ1bkBSdWdnZWRDb20uY29tPgpEYXRlOglNb24gSmFuIDI2IDA4OjQ1OjE0IDIwMDkgLTA1MDAKCiAgICBwYXJ0X2VmaTogRml4IHBhcnRpdGlvbiBzaXplIGNhbGN1bGF0aW9uIGR1ZSB0byBpbmNsdXNpdmUgZW5kaW5nIExCQS4KCiAgICBUaGUgZW5kaW5nIExCQSBpcyBpbmNsdXNpdmUuIEhlbmNlLCB0aGUgcGFydGl0aW9uIHNpemUgc2hvdWxkIGJlCiAgICAoKGVuZGluZy1MQkEgKyAxKSAtIHN0YXJ0aW5nLUxCQSkgdG8gZ2V0IHRoZSBwcm9wZXIgcGFydGl0aW9uIHNpemUuCgogICAgVGhpcyBpcyBjb25maXJtZWQgYWdhaW5zdCB0aGUgcmVzdWx0cyBmcm9tIHRoZSBwYXJ0ZWQgdG9vbC4KICAgIChlLmcuIHVzZSBwYXJ0ZWQgL2Rldi9zZGEgLXMgdW5pdCBTIHByaW50KSBhbmQgb2JzZXJ2ZSB0aGUgc2l6ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNoYXJkIFJldGFudWJ1biA8UmljaGFyZFJldGFudWJ1bkBSdWdnZWRDb20uY29tPgoKY29tbWl0IGI1YjAwNGFkOGEwYWM2Zjk4YmQ1NzA4ZWM4YjIyZmJkZGQxYzEwNDIKQXV0aG9yOiBUb21hc3ogRmlnYSA8dG9tYXN6LmZpZ2FAZ21haWwuY29tPgpEYXRlOglUdWUgRGVjIDMwIDE4OjM1OjU3IDIwMDggKzAxMDAKCiAgICBqZmZzMjogRml4IHplcm8gc2VjdG9yX3NpemUgd2hlbiBub3QgdXNpbmcgQ09ORklHX0pGRlMyX0NNRExJTkUKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGEgYnVnICg/KSBpbnRyb2R1Y2VkIGFmdGVyIGluY2x1c2lvbiBvZiB0aGUgbmV3CiAgICBKRkZTMiBjb2RlLgoKICAgIFdoZW4gbm90IHVzaW5nIENPTkZJR19KRkZTMl9DTURMSU5FLCB0aGUgY29kZSBpbiBjbWRfamZmczIuYyBkb2Vzbid0CiAgICBmaWxsIGluIHBhcnQtPnNlY3Rvcl9zaXplIChrZWVwaW5nIGl0IGFzIDApLCBidXQgYSBjb3JyZWN0IHZhbHVlIGlzCiAgICBuZWVkZWQgYnkgdGhlIGNvZGUgaW4gamZmczJfMXBhc3MuYy4gVGhpcyBjYXVzZXMgYWxsIEpGRlMyIGFjY2Vzc2VzCiAgICB0byBiZSBpbiB0aGUgc2FtZSBwbGFjZSBvZiB0aGUgbWVtb3J5LCB3aGF0IG9idmlvdXNseSBtZWFucwogICAgaW1wb3NzaWJpbGl0eSB0byB1c2UgdGhlIEpGRlMyIHBhcnRpdGlvbi4KCiAgICBUaGlzIHByb2JsZW0gaXMgZml4ZWQgaW4gdGhpcyBwYXRjaCBieSBpbmNsdWRpbmcgc2VjdG9yIHNpemUKICAgIGNhbGN1bGF0aW9uIGluIG5vbi1DT05GSUdfSkZGUzJfQ01ETElORSBtdGRwYXJ0c19pbml0IHZhcmlhbnQuCgogICAgU2lnbmVkLW9mZi1ieTogVG9tYXN6IEZpZ2EgPHRvbWFzei5maWdhX2F0X2dtYWlsLmNvbT4KCmNvbW1pdCBiYTY5ZGMyNmE1ZmQ2MDZkYTQ5NTczYmIyZjE1ZTc1NmEzNGYzZjk4CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUdWUgRGVjIDMwIDAyOjU5OjI1IDIwMDggLTA1MDAKCiAgICBzYXZlZW52OiBzdGFuZGFyZGl6ZSBlbmFibGVtZW50CgogICAgUmF0aGVyIHRoYW4gc3BlY2lhbCBjYXNpbmcgZWFjaCBlbnZpcm9ubWVudCB0eXBlIGZvciBlbmFibGluZyB0aGUgc2F2ZWVudgogICAgY29tbWFuZCwgaGF2ZSB0aGVtIGFsbCBiZWhhdmUgdGhlIHNhbWUuICBUaGlzIGF2b2lkcyBiaXRyb3QgYXMgbmV3IGVudgogICAgc291cmNlcyBhcmUgYWRkZWQvcmVtb3ZlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMmFjNjk4NWE3NDY2YTFjOGE3YWE4YjJmYTI0ZDM2MDkyNWE4Mjc2NApBdXRob3I6IEFuZHJldyBEeWVyIDxhZHllckByaWdodGhhbmR0ZWNoLmNvbT4KRGF0ZToJTW9uIERlYyAyOSAxNzozNjowMSAyMDA4IC0wNjAwCgogICAgc29mdF9pMmMuYyBhZGQgb3B0aW9uIGZvciByZXBlYXRlZCBzdGFydCBpbiBpMmNfcmVhZCgpCgogICAgVGhpcyBwYXRjaCBhZGRzIGEgI2RlZmluZSB0byBvcHRpb25hbGx5IGNoYW5nZSB0aGUgYmVoYXZpb3VyIG9mCiAgICBpMmNfcmVhZCgpIGluIHNvZnRfaTJjLmMgdG8gc2VuZCBhbiBJMkMgcmVwZWF0ZWQgc3RhcnQgaW5zdGVhZCBvZiBhCiAgICBzdG9wLXN0YXJ0IGJldHdlZW4gc2VuZGluZyB0aGUgZGV2aWNlIGFkZHJlc3MgcG9pbnRlciB3cml0ZSBhbmQKICAgIHJlYWRpbmcgYmFjayB0aGUgZGF0YS4gIFRoZSBjdXJyZW50IGJlaGF2aW91ciBpcyByZXRhaW5lZCBhcyB0aGUKICAgIGRlZmF1bHQuCgogICAgV2hpbGUgbW9zdCBkZXZpY2VzIHdpbGwgd29yayBlaXRoZXIgd2F5LCBJIGhhdmUgYSBzbWFydCBiYXR0ZXJ5KCopCiAgICB0aGF0IHJlcXVpcmVzIHJlcGVhdGVkIHN0YXJ0LCBhbmQgc29tZW9uZSBhdCBzb21lIHBvaW50IGZvdW5kIGEKICAgIGRldmljZSB0aGF0IHJlcXVpcmVkIGEgc3RvcC1zdGFydC4KCiAgICAoKikgaHR0cDovL3d3dy5pbnNwaXJlZC1lbmVyZ3kuY29tL1N0YW5kYXJkX1Byb2R1Y3RzL05MMjA1NC9OTDIwNTQlMjBSZXYxLjAlMjBEYXRhJTIwU2hlZXQucGRmCgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmV3IER5ZXIgPGFkeWVyQHJpZ2h0aGFuZHRlY2guY29tPgoKY29tbWl0IDM0MjkwNzE3MDA5NjNjYTJmOTQ0YzUxZDY5NWE3NDgxYWYwY2VlMzMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgSmFuIDI3IDIyOjA3OjE0IDIwMDkgKzAxMDAKCiAgICB7ZGVsdGEsenlsb25pdGV9L2xvd2xldmVsX2luaXQuUzogZml4IHR5cG8KCiAgICBDb21taXQgOWQ4MDNkOGMgbWlzdGFrZW5seSBjaGFuZ2VkIHNvbWUgY29uc3RhbnRzCiAgICBmcm9tIDB4MzAwIGludG8gMzAwIC0gdGhpcyBwYXRjaCBmaXhlcyBpdC4KCiAgICBQb2ludGVkIG91dCBieSBUb20gRXZhbnMgPHRvbUBjZW9zLmNvbS5hdT4sIHNlZQogICAgaHR0cDovL2FydGljbGUuZ21hbmUub3JnL2dtYW5lLmNvbXAuYm9vdC1sb2FkZXJzLnUtYm9vdC81MTk5MiBmb3IKICAgIGRldGFpbHMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAxYmM0MzQzNzMwMTNhZjI0MTgzNWMxNDAxMWFjM2YyOTFkY2NiZjUzCkF1dGhvcjogU3RlZmFuIEFsdGhvZWZlciA8c3RlZmFuLmFsdGhvZWZlckB3ZWIuZGU+CkRhdGU6CVNhdCBEZWMgMjAgMTk6NDA6NDEgMjAwOCArMDEwMAoKICAgIGRyaXZlcnMvbmV0L2UxMDAwLmM6IG1pc3NpbmcgdGVybWluYXRvciBmb3Igc3VwcG9ydGVkIGRldmljZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gQWx0aG9lZmVyIDxzdGVmYW4uYWx0aG9lZmVyQHdlYi5kZT4KCmNvbW1pdCA2NWY3ZDQxMDMxYTcwYjE2NDliMzUwMjA5OTVjNTA1ZWRjYTkxNTMzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEphbiAyNyAyMTozNjoyOCAyMDA5ICswMTAwCgogICAgZmF0LmM6IGZpeCB3YXJuaW5nOiBhcnJheSBzdWJzY3JpcHQgaXMgYWJvdmUgYXJyYXkgYm91bmRzCgogICAgRml4IGJhc2VkIG9uIHN1Z2dlc3Rpb24gYnkgRGF2aWQgSGF3a2lucyA8ZHdoQG92cm8uY2FsdGVjaC5lZHU+LgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMTA3YjgwMWNmM2ZlMzk2MTJkNjlkNzA1ODFlYmMzYmY1ZTIxNTU1NApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgSmFuIDIgMTU6MTE6NDEgMjAwOSArMDEwMAoKICAgIEZpeCBndW56aXAgaW4gY2FzZSBvZiBpbnN1ZmZpY2llbnQgb3V0cHV0IGJ1ZmZlcgoKICAgIFUtQm9vdCdzIGd1bnppcCgpIGZ1bmN0aW9uIGRvZXMgbm90IGhhbmRsZSB0aGUgcmV0dXJuIGNvZGUKICAgIG9mIHpsaWIncyBpbmZsYXRlKCkgZnVuY3Rpb24gY29ycmVjdGx5LiBndW56aXAoKSBpcyBpbXBsZW1lbnRlZAogICAgdG8gdW5jb21wcmVzcyBhbGwgaW5wdXQgZGF0YSBpbiBvbmUgcnVuLiBTbyB0aGUgY29ycmVjdCByZXR1cm4KICAgIGNvZGUgZm9yIHRoZSBnb29kIGNhc2UgaXMgWl9TVFJFQU1fRU5ELiBJbiBjYXNlIG9mIGluc3VmZmljaWVudAogICAgb3V0cHV0IGJ1ZmZlciBtZW1vcnkgaW5mbGF0ZSByZXR1cm5zIFpfT0suIEZvciBndW56aXAoKSB0aGlzCiAgICBpcyBhbiBlcnJvci4KCiAgICBJdCBhbHNvIG1ha2VzIHNlbnNlIHRvIG1lIHRvIGNhbGwgaW5mbGF0ZUVuZCgpIGFsc28gaW4gY2FzZQogICAgb2YgYW4gZXJyb3IuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgMmE2MWVmZjZhODJmMGQ2ZTIzMzVkOTY4Nzk5YjNmYmViM2ZmNGQ4ZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAyMSAxNzoyNTowMSAyMDA5ICswMTAwCgogICAgTUlQUzogQWRkIFZDVCBib2FyZCBzZXJpZXMgc3VwcG9ydCAoUGFydCAzLzMpCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGFlNjkxZTU3MTljNDhmMWQyODI2Y2I3MjcyMjQ5N2QxZDE2Mjc2NWIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMjEgMTc6MjQ6NDkgMjAwOSArMDEwMAoKICAgIE1JUFM6IEFkZCBWQ1QgYm9hcmQgc2VyaWVzIHN1cHBvcnQgKFBhcnQgMi8zKQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1MDc1Mjc5MGJjOTI4NWMwYzFjNTIzNWU4OGYzYTRlZjJlZWMxZTcyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDIxIDE3OjI0OjM5IDIwMDkgKzAxMDAKCiAgICBNSVBTOiBBZGQgVkNUIGJvYXJkIHNlcmllcyBzdXBwb3J0IChQYXJ0IDEvMykKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDNkM2JmYjAwODA2YjU0NDFmMTg3MWM3NDA4YzE3NDk4NjNlMGZkYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAyMSAxNzoyMDoyMCAyMDA5ICswMTAwCgogICAgTUlQUzogQWRkIGZsdXNoX2RjYWNoZV9yYW5nZSgpIGFuZCBpbnZhbGlkYXRlX2RjYWNoZV9yYW5nZSgpCgogICAgVGhpcyBwYXRjaCBhZGRzIGZsdXNoXy9pbnZhbGlkYXRlX2RjYWNoZV9yYW5nZSgpIHRvIHRoZSBNSVBTIGFyY2hpdGVjdHVyZS4KICAgIFRob3NlIGZ1bmN0aW9ucyBhcmUgbmVlZGVkIGZvciB0aGUgdXBjb21pbmcgZGNhY2hlIHN1cHBvcnQgZm9yIHRoZSBVU0IKICAgIEVIQ0kgZHJpdmVyLiBJIGNob3NlIHRoaXMgQVBJIGJlY2F1c2UgdGhvc2UgY2FjaGUgaGFuZGxpbmcgZnVuY3Rpb25zIGFyZQogICAgYWxyZWFkeSBwcmVzZW50IGluIHRoZSBQUEMgYXJjaGl0ZWN0dXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgZGU4MzJhOTk0MTRmZjA2YTRiMmNkYzlmNTI4MGIzODdkYTAzOTgzNApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEphbiAyNiAxMDowNToyMCAyMDA5ICswMTAwCgogICAgbmFuZF9zcGw6IEZpeCBjb21waWxlIHByb2JsZW0gd2l0aCBib2FyZF9uYW5kX2luaXQoKSBwcm90b3R5cGUKCiAgICBUaGlzIHBhdGNoIHJlbW92ZXMgdGhlIG5vdyBvYnNvbGV0ZSBhbmQgYWRkaXRpb25hbGx5IHdyb25nbHkgZGVmaW5lZAogICAgYm9hcmRfbmFuZF9pbml0KCkgcHJvdG90eXBlIGZyb20gbmFuZF9zcGwvbmFuZF9ib290LmMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZThlYWM0MzcxODk0MzBkOGUwNGE1ZDI1NGVkOTJjNThiYzUzNGE3OQpBdXRob3I6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+CkRhdGU6CVdlZCBKYW4gMTQgMDg6NDQ6MjYgMjAwOSAtMDUwMAoKICAgIENGSTogQWRkIGdlb21ldHJ5IHJldmVyc2FsIGZvciBTVE1pY3JvIE0yOVczMjBFVAoKICAgIEFkZGVkIGZsYXNoX2ZpeHVwX3N0bSB0byBmaXggZ2VvbWV0cnkgcmV2ZXJzYWwgb24gU1RNaWNybyBNMjlXMzIwRVQgZmxhc2ggY2hpcC4KCiAgICBNb2RlbGVkIGFmdGVyIGZsYXNoX2ZpeHVwX2FtZCwgdGhpcyBwYXRjaCBoYW5kbGVzIHRoZSBnZW9tZXRyeSByZXZlcnNhbAogICAgb3IgZXJhc2Ugc2VjdG9ycyB0aGF0IGV4aXN0IGZvciBTVCBNaWNybyAobm93IE51bW9ueXgpIE0yOVczMjBFVCBmbGFzaC4KICAgIFNpbmNlIEkgY2Fubm90IHRlc3QgYWxsIFNUTSdzIGNoaXBzLCB0aGUgZGV0ZWN0aW9uIGlzIGltcGxlbWVudGVkIGFzCiAgICBuYXJyb3cgYXMgcG9zc2libGUgZm9yIG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNoYXJkIFJldGFudWJ1biA8UmljaGFyZFJldGFudWJ1bkBSdWdnZWRDb20uY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDBmOGU4NTFlODk3YjUzNTk1OWEwNzgxMTcxOTEwY2Q5N2YzM2MzMGMKQXV0aG9yOiBKZW5zIEdlaHJsZWluIDxzZXdfc0B0cXMuZGU+CkRhdGU6CVR1ZSBEZWMgMTYgMTc6MjU6NTUgMjAwOCArMDEwMAoKICAgIENGSTogaW5jcmVhc2UgcGVyZm9ybWFuY2Ugb2YgZnVuY3Rpb24gZmluZF9zZWN0b3IoKQoKICAgIFRlc3RlZCBvbiBUUU01MjAwUy1CRCB3aXRoIFNhbXN1bmcgSzhQMjgxNVVRQgoKICAgIFNpZ25lZC1vZmYtYnk6IEplbnMgR2VocmxlaW4gPHNld19zQHRxcy5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhNzI5Mjg3MWE3OWNjNDhkOThlM2E3MDhkZDNjM2I4MTU4MGRiNmVmCkF1dGhvcjogSmVucyBHZWhybGVpbiA8c2V3X3NAdHFzLmRlPgpEYXRlOglUdWUgRGVjIDE2IDE3OjI1OjU0IDIwMDggKzAxMDAKCiAgICBDRkk6IGF2b2lkIHJlZHVuZGFudCBmdW5jdGlvbiBjYWxsIGluIHNpbmdsZSB3b3JkIHByb2dyYW1taW5nIG1vZGUKCiAgICBUaGUgZnVuY3Rpb24gZmluZF9zZWN0b3IoKSBkb2Vzbid0IG5lZWQgdG8gYmUgY2FsbGVkIHR3aWNlIGluCiAgICB0aGUgY2FzZSBvZiBBTUQgY29tbWFuZCBzZXQuCiAgICBUZXN0ZWQgb24gVFFNNTIwMFMtQkQgd2l0aCBTYW1zdW5nIEs4UDI4MTVVUUIuCgogICAgU2lnbmVkLW9mZi1ieTogSmVucyBHZWhybGVpbiA8c2V3X3NAdHFzLmRlPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGM4OTAxZjQ2YTcxZWMxNmUwODRlNjA0NTk2YTA5ZTIzYmZiMGY2YWMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKYW4gMjYgMTA6MTU6MjMgMjAwOSArMDEwMAoKICAgIHBwYzR4eDogUmVtb3ZlIGNvbXBpbGF0aW9uIHdhcm5pbmcgaW4gZ2RwcGM0NDBldGMuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5MWYzMzUzNDcyOGU2NDE2ZDMzMmFkMmI1M2FkMWQ2ZmRlNTdmN2ZjCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBKYW4gMiAxMjoxOTo0NyAyMDA5ICswMTAwCgogICAgcHBjNHh4OiBSZW1vdmUgQ09ORklHX1NZU19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5IGZyb20gY29uZmlnIGZpbGVzCgogICAgTG90J3Mgb2YgNDA1IGJvYXJkIGNvbmZpZyBmaWxlcyB1c2UgQ09ORklHX1NZU19JR05PUkVfNDA1X1VBUlRfRVJSQVRBXzU5LgogICAgRWl0aGVyIHRoZXkgZGVmaW5lIG9yIHVuZGVmIGl0LiBCZWNhdXNlIGl0J3Mgbm90IHVzZWQgaW4gYW55IHNvdXJjZQogICAgZmlsZXMgdGhpcyBwYXRjaCByZW1vdmVzIGFueSByZWZlcmVuY2VzIHRvIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg5Yjg2MTlhYWVhZmM5MjJjYTBjM2JiMjQ5ODcyNTkxMDUwYzhkY2MKQXV0aG9yOiBEaXJrIEVpYmFjaCA8ZWliYWNoQGdkc3lzLmRlPgpEYXRlOglUdWUgRGVjIDkgMTM6MTI6NDAgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogQWRkIEdEc3lzIFBvd2VyUEMgNDQwIEVUWCBib2FyZCBzdXBwb3J0LgoKICAgIEJvYXJkIHN1cHBvcnQgZm9yIHRoZSBHdW50ZXJtYW5uICYgRHJ1bmNrIFBvd2VyUEMgNDQwIEVUWCBtb2R1bGUuCiAgICBCYXNlZCBvbiB0aGUgQU1DQyBZb3NlbWl0ZSBib2FyZCBzdXBwb3J0IGJ5IFN0ZWZhbiBSb2VzZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEVpYmFjaCA8ZWliYWNoQGdkc3lzLmRlPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM5NDNkMmZmNmNjNDBkZDYwMWE5ZmVlYjM5ZWI2ZDNkNTA5MGVhNmQKQXV0aG9yOiBEaXJrIEVpYmFjaCA8ZWliYWNoQGdkc3lzLmRlPgpEYXRlOglUdWUgRGVjIDkgMTE6MDA6MDcgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogSW1wcm92ZSBERFIgYXV0b2RldGVjdAoKICAgIEFkZGVkIHN1cHBvcnQgZm9yIGEgc2Vjb25kIG1lbW9yeSBiYW5rIHRvIEREUiBhdXRvZGV0ZWN0aW9uIGZvciA0NDAKICAgIHBsYXRmb3Jtcy4KICAgIE1hZGUgaGFyZGNvZGVkIHZhbHVlcyBjb25maWd1cmFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBFaWJhY2ggPGVpYmFjaEBnZHN5cy5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3MWEwNDBmNGY1NTZjY2E0ZDMwZjA2ODA1ZDgyZTcxN2IzZWYxMDIwCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgpEYXRlOglGcmkgTm92IDIxIDEyOjA2OjI2IDIwMDggKzA5MDAKCiAgICBzaDogc2g3NzYzcmRwOiBVcGRhdGUgc2g3NzYzcmRwIGNvbmZpZwoKICAgIEFkZCBDT05GSUdfTkVUX01VTFRJIGluIGNvbmZpZyBmaWxlLCBiZWNhdXNlIHNoX2V0aCBjaGFuZ2VkIG5ldyBuZXd3b3JrIEFQSS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGJhNzA1YjViMWE5N2I0NzM4OGVkNDg4NThiZWY2YmY3YjZiZmNkNTYKQXV0aG9yOiBHYXJ5IEplbm5lam9obiA8Z2FyeWpAZGVueC5kZT4KRGF0ZToJVGh1IE5vdiAyMCAxMjoyODozOCAyMDA4ICswMTAwCgogICAgbWdjb2dlIG1ha2UgZXRoZXJfc2NjLmMgd29yayB3aXRoIENPTkZJR19ORVRfTVVMVEkKCiAgICBUaGlzIGNoYW5nZSBpcyBuZWVkZWQgZm9yIG1nY29nZSBiZWNhdXNlIGl0IHVzZXMgdHdvIGV0aGVybmV0IGRyaXZlcnMuCgogICAgQWRkIGEgY2hlY2sgZm9yIHRoZSBwcmVzZW5jZSBvZiB0aGUgUElHR1kgYm9hcmQgb24gbWdjb2dlLglXaXRob3V0IHRoaXMKICAgIGJvYXJkIG5ldHdvcmtpbmcgY2Fubm90IHdvcmsgYW5kIHRoZSBpbml0aWFsaXphdGlvbiBtdXN0IGJlIGFib3J0ZWQuCgogICAgT25seSBhbGxvY2F0ZSBydHggb25jZSB0byBwcmV2ZW50IERQUkFNIGV4aGF1c3Rpb24uCgogICAgSW5pdGlhbGl6ZSBldGhlcl9zY2MuYyBhbmQgdGhlIGtleW1pbGUtc3BlY2lmaWMgSERMQyBkcml2ZXIgKHRvIGJlIGFkZGVkCiAgICBzb29uKSBpbiBldGguYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHYXJ5IEplbm5lam9obiA8Z2FyeWpAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgYmQzOTgwY2MwOTVhZjE3MjhiOTk0Y2RkOGJmMWFjNDMwYjYyODllNgpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJRnJpIE5vdiAyMSAxMjowNDoxOCAyMDA4ICswOTAwCgogICAgc2g6IHNoX2V0aDogQ2hhbmdlIG5ldyBuZXR3b3JrIEFQSQoKICAgIHNoX2V0aCB1c2VkIG9sZCBuZXR3b3JrIEFQSS4gVGhpcyBwYXRjaCBjaGFuZ2VkIG5ldyBBUEkuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA4OTBhMDJlOGVlNmI4YzI2YTZlM2U1MDVlMWEyZDI5Y2Q3M2FhNmY2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTm92IDEyIDEzOjMxOjAyIDIwMDggKzAxMDAKCiAgICBuZXQ6IHNtYzkxMXg6IE1ha2UgcmVnaXN0ZXIgcmVhZC93cml0ZSBmdW5jdGlvbnMgd2VhawoKICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgcmVnX3JlYWQvX3dyaXRlIHRvIHNtYzkxMXhfcmVnX3JlYWQvX3dyaXRlCiAgICBhbmQgZGVmaW5lcyB0aGVuIGFzIHdlYWsgc28gdGhhdCB0aGV5IGNhbiBiZSBvdmVycmlkZGVuIGJ5IGJvYXJkCiAgICBzcGVjaWZpYyB2ZXJzaW9uLgoKICAgIFRoaXMgd2lsbCBiZSB1c2VkIGJ5IHRoZSB1cGNvbWluZyBWQ1RIIGJvYXJkIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA4YjY5YjU2MzAzOTk4OTg4NTk2OWQyNDQ2NWM1NmY4YWM0YzA3YzRjCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVRodSBOb3YgMjAgMDk6NTc6MTQgMjAwOCArMDEwMAoKICAgIHBvd2VycGM6IG5ldDogc3VwcG9ydCBmb3IgdGhlIFNNU0MgTEFOODcwMCBQSFkKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZDUyNTRmMTQ5ZGE5ZTZjZDY0OWQ4ODdiMDQyY2U1NzdlZjNiYTc4ZApBdXRob3I6IEFsZXNzYW5kcm8gUnViaW5pIDxydWJpbmlAdW5pcHYuaXQ+CkRhdGU6CVNhdCBKYW4gMjQgMTg6MTA6MzcgMjAwOSArMDEwMAoKICAgIEluaXRpYWwgc3VwcG9ydCBmb3IgTm9tYWRpayA4ODE1IGRldmVsb3BtZW50IGJvYXJkCgogICAgVGhlIE5NREs4ODE1IGJvYXJkIGlzIGRpc3RyaWJ1dGVkIGJ5IFNUIE1pY3JvZWxlY3Rvcm5pY3MuCiAgICBPdGhlciAocHJvcHJpZXRhcnkpIGNvZGUgbXVzdCBiZSBydW4gdG8gdW5sb2NrIHRoZSBDUFUgYmVmb3JlCiAgICBVLUJvb3QgcnVucy4gZG9jL1JFQURNRS5ubWRrODgxNSBvdXRsaW5lcyB0aGUgYm9vdCBzZXF1ZW5jZS4KCiAgICBUaGlzIGlzIHRoZSBpbml0aWFsIHBvcnQsIHdpdGggYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgYW5kCiAgICBhIHdvcmtpbmcgc2VyaWFsIHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogQWxlc3NhbmRybyBSdWJpbmkgPHJ1YmluaUB1bmlwdi5pdD4KICAgIEFja2VkLWJ5OiBBbmRyZWEgR2FsbG8gPGFuZHJlYS5nYWxsb0BzdG53aXJlbGVzcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDdkMjY0YzFlZjI2N2NmYzhkOTI4YmM4NTc3YTdjYzkwN2YyZjVlNDcKQXV0aG9yOiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdvb2dsZW1haWwuY29tPgpEYXRlOglTdW4gRGVjIDE0IDA5OjQ3OjE4IDIwMDggKzAxMDAKCiAgICBPTUFQMzogQWRkIEkyQyBzdXBwb3J0CgogICAgQWRkIEkyQyBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+Cgpjb21taXQgYjFjM2JmOTlmYjQ3NzY3NWQ0NjRhZWFkYjVkZDY5ZDJjYmM5ZGM3YgpBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CVN1biBEZWMgMTQgMDk6NDc6MTcgMjAwOCArMDEwMAoKICAgIE9NQVAzOiBBZGQgTU1DIHN1cHBvcnQKCiAgICBBZGQgTU1DIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KCmNvbW1pdCAxMjIwMWExMzU0N2VjMjJkZGNkYWUyNzhlNzQ0NjVlNTRhM2JlNjBjCkF1dGhvcjogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KRGF0ZToJU3VuIERlYyAxNCAwOTo0NzoxNiAyMDA4ICswMTAwCgogICAgT01BUDM6IEFkZCBOQU5EIHN1cHBvcnQKCiAgICBBZGQgTkFORCBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pc2hhbnRoIE1lbm9uIDxubUB0aS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTeWVkIE1vaGFtbWVkIEtoYXNpbSA8a2hhc2ltQHRpLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+Cgpjb21taXQgOTFlZWU1NDY3MzdhZTIxZDkzMGFmNDc5NTMwOTk3MTc0YzM0MmIxMwpBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CVN1biBEZWMgMTQgMDk6NDc6MTUgMjAwOCArMDEwMAoKICAgIE9NQVAzOiBBZGQgY29tbW9uIGJvYXJkLCBpbnRlcnJ1cHQgYW5kIHN5c3RlbSBpbmZvCgogICAgQWRkIGNvbW1vbiBib2FyZCwgaW50ZXJydXB0IGFuZCBzeXN0ZW0gaW5mbyBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+Cgpjb21taXQgNWVkM2U4NjU5ZTUzNzNmNmEyMjk4NzdhYzUwNmMwYjAwYTA1NGZiOApBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CVN1biBEZWMgMTQgMDk6NDc6MTQgMjAwOCArMDEwMAoKICAgIE9NQVAzOiBBZGQgY29tbW9uIGNsb2NrLCBtZW1vcnkgYW5kIGxvdyBsZXZlbCBjb2RlCgogICAgQWRkIGNvbW1vbiBjbG9jaywgbWVtb3J5IGFuZCBsb3cgbGV2ZWwgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+Cgpjb21taXQgMGIwMmIxODQwMDNlNmE1MDIzZTA1ZDVmMzFkZTU0ZGIyNzliMTQzMQpBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CVN1biBEZWMgMTQgMDk6NDc6MTMgMjAwOCArMDEwMAoKICAgIE9NQVAzOiBBZGQgY29tbW9uIGNwdSBhbmQgc3RhcnQgY29kZQoKICAgIEFkZCBjb21tb24gY3B1IGFuZCBzdGFydCBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+Cgpjb21taXQgYThiNjQ1MDU0NmNkNTA3ZDMzMWI4ZmRlMzg0NzkxZDg0YmRlNTY1MQpBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CVN1biBEZWMgMTQgMDk6NDc6MTIgMjAwOCArMDEwMAoKICAgIE9NQVAzOiBBZGQgT01BUDMsIG1lbW9yeSBhbmQgZnVuY3Rpb24gcHJvdG90eXBlIGhlYWRlcnMKCiAgICBBZGQgT01BUDMsIG1lbW9yeSBhbmQgZnVuY3Rpb24gcHJvdG90eXBlIGhlYWRlciBmaWxlcyBmb3IgT01BUDMuCgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KCmNvbW1pdCAyYzgwMzIxMGE0NjRhYmJhYzM1NzUyY2ExYzczNzUxNDM2MGI0YzMyCkF1dGhvcjogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KRGF0ZToJU3VuIERlYyAxNCAwOTo0NzoxMSAyMDA4ICswMTAwCgogICAgT01BUDM6IEFkZCBwaW4gbXV4LCBjbG9jayBhbmQgY3B1IGhlYWRlcnMKCiAgICBBZGQgcGluIG11eCwgY2xvY2sgYW5kIGNwdSBoZWFkZXIgZmlsZXMgZm9yIE9NQVAzLgoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+Cgpjb21taXQgNjg1NTMzNjQ2ZjRmZjE3YTg0ZWM5MjY1Y2FiYjYwYWYzMjViNmUxZgpBdXRob3I6IE1heGltIEFydGFtb25vdiA8c2NuMTg3NEB5YW5kZXgucnU+CkRhdGU6CVdlZCBEZWMgMyAwNTozODoxNyAyMDA4ICswMzAwCgogICAgYnVnZml4IGZvciBpLm14MzEgQ0NNX1VQQ1RMIHJlZwoKICAgIFNpZ25lZC1vZmYtYnk6IE1heGltIEFydGFtb25vdiA8c2NuMTg3NCBhdCB5YW5kZXgucnU+Cgpjb21taXQgMjQxMTNhNDRlZDVjZDMyNTdhMDIzN2MzOTYxZTEyMTgxMmZjYTZkYgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVHVlIERlYyAzMCAwMzoxNTozOCAyMDA4IC0wNTAwCgogICAgZWFzeWxvZ286IGFkZCBvcHRpb25hbCBnemlwIHN1cHBvcnQKCiAgICBTb21lIGltYWdlcyBjYW4gYmUgcXVpdGUgbGFyZ2UsIHNvIGFkZCBhbiBvcHRpb24gdG8gY29tcHJlc3MgdGhlCiAgICBpbWFnZSBkYXRhIHdpdGggZ3ppcCBpbiB0aGUgVS1Cb290IGltYWdlLiBUaGVuIGF0IHJ1bnRpbWUsIHRoZQogICAgYm9hcmQgY2FuIGRlY29tcHJlc3MgaXQgd2l0aCB0aGUgbm9ybWFsIHpsaWIgZnVuY3Rpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA3ZTRiOWI0ZjZmNDM4MzhmYWQzYWQ3MmMwMjlhM2Q3ZmM3YzdkNDhjCkF1dGhvcjogQnJ5YW4gV3UgPGJyeWFuLnd1QGFuYWxvZy5jb20+CkRhdGU6CUZyaSBKYW4gMiAyMDo0Nzo0NSAyMDA5IC0wNTAwCgogICAgZmF0OiBmaXggdW5hbGlnbmVkIGVycm9ycwoKICAgIEEgY291cGxlIG9mIGJ1ZmZlcnMgaW4gdGhlIGZhdCBjb2RlIGFyZSBkZWNsYXJlZCBhcyBhbiBhcnJheSBvZiBieXRlcy4KICAgIEJ1dCBpdCBpcyB0aGVuIGNhc3QgdXAgdG8gYSBzdHJ1Y3R1cmUgd2l0aCAxNmJpdCBhbmQgMzJiaXQgbWVtYmVycy4KICAgIFNpbmNlIEdDQyBhc3N1bWVzIHN0cnVjdHVyZSBhbGlnbm1lbnQgaGVyZSwgd2UgaGF2ZSB0byBmb3JjZSB0aGUKICAgIGJ1ZmZlcnMgdG8gYmUgYWxpZ25lZCBhY2NvcmRpbmcgdG8gdGhlIHN0cnVjdHVyZSB1c2FnZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCcnlhbiBXdSA8YnJ5YW4ud3VAYW5hbG9nLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA2OGY4NzE4ZGYyZWQ0YzJmNDMwMzE0MDdjY2Y2Y2ZhODExMjVkZGRjCkF1dGhvcjogQnJhZCBCb3phcnRoIDxiZmxpbnV4QHl1bWJyYWQuY29tPgpEYXRlOglUaHUgSmFuIDEgMjI6NDU6NDcgMjAwOSAtMDUwMAoKICAgIHNwaSBmbGFzaDogZml4IGNyYXNoIGR1ZSB0byBzcGkgZmxhc2ggbWlzY29tbXVuaWNhdGlvbgoKICAgIEhpZ2hlciBzcGkgZmxhc2ggbGF5ZXJzIGV4cGVjdCB0byBiZSBnaXZlbiBiYWNrIGEgcG9pbnRlciB0aGF0IHdhcwogICAgbWFsbG9jZWQgc28gdGhhdCBpdCBjYW4gZnJlZSB0aGUgcmVzdWx0LCBidXQgdGhlIGxvd2VyIGxheWVycyByZXR1cm4KICAgIGEgcG9pbnRlciB0aGF0IGlzIGluIHRoZSBtaWRkbGUgb2YgdGhlIG1hbGxvY2VkIG1lbW9yeS4gUmVvcmRlciB0aGUKICAgIG1lbWJlcnMgb2YgdGhlIGxvd2VyIHNwaSBzdHJ1Y3R1cmVzIHNvIHRoYXQgdGhpbmdzIHdvcmsgb3V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEJyYWQgQm96YXJ0aCA8YmZsaW51eEB5dW1icmFkLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIEFja2VkLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgY2U4MmZmMDUzODhiNWRkYWZkZjYwODJlZjA3NzZjY2U3MmM0MGIxYwpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJU2F0IERlYyAyMCAxNDo1NDoyMSAyMDA4ICswMzAwCgogICAgRlBVIFBPU1Q6IGZpeCB3YXJuaW5ncyB3aGVuIGJ1aWxkaW5nIHdpdGggMi4xOCBiaW51dGlscwoKICAgIFdoZW4gY29tcGlsZSB1LWJvb3Qgd2l0aCB0aGUgMi4xOCBiaW51dGlscyB0aGUgZm9sbG93aW5nCiAgICB3YXJuaW5nIG1lc3NhZ2VzIGZvciBlYWNoIG9iamVjdCBmaWxlIGluIHBvc3QvbGliX3BwYy9mcHUvIGlzCiAgICBwcm9kdWNlZCBhdCB0aGUgbGlua2luZyBzdGFnZToKCiAgICBwb3N0L2xpYnBvc3QuYShhY2MxLm8pIHVzZXMgaGFyZCBmbG9hdCwgdS1ib290IHVzZXMgc29mdC1mbG9hdAogICAgLi4uCgogICAgVGhpcyBpcyBiZWNhdXNlIG9mIHRoZSBmYWN0IHRoYXQsIGluIGdlbmVyYWwsIHRoZSBzb2Z0LWZsb2F0IGFuZAogICAgaGFyZC1mbG9hdCBBQklzIGFyZSBpbmNvbXBhdGlibGU7IHRoZSAyLjE4IGJpbnV0aWxzIGRvIGNoZWNraW5nCiAgICBvZiB0aGUgVGFnX0dOVV9Qb3dlcl9BQklfRlAgYXR0cmlidXRlIG9mIHRoZSBmaWxlcyB0byBiZSBsaW5rZWQsIGFuZAogICAgcHJvZHVjZSB0aGUgd29ybmluZyBsaWtlIGFib3ZlIGlmIHRoZXNlIGFyZSBub3QgY29tcGF0aWJsZS4KCiAgICBUaGUgaW5jb21wYXRpYmlsaXR5IG9mIEFCSXMgaXMgY29uY2VybmVkIG9ubHkgdGhlIGZsb2F0IHZhbHVlczoKICAgIGUuZy4gdGhlIHNvZnQtZmxvYXQgQUJJIGFzc3VtZXMgdGhlIGZsb2F0IGFyZ3VtZW50IHBhc3NpbmcgaW4gdGhlCiAgICBwYWlyIG9mIHJYIHJlZ2lzdGVycywgYW5kIHRoZSBoYXJkLWZsb2F0IEFCSSBhc3N1bWVzIHBhc3Npbmcgb2YKICAgIHRoZSBmbG9hdCBhcmd1bWVudCBpbiB0aGUgZlggcmVnaXN0ZXIuIFdoZW4gd2UgZG9uJ3QgcGFzcyB0aGUgZmxvYXQKICAgIGFyZ3VtZW50cyBiZXR3ZWVuIHRoZSBmdW5jdGlvbnMgY29tcGlsZWQgd2l0aCBkaWZmZXJlbnQgZmxvYXRuZXNzLAogICAgdGhlbiBzdWNoIGFuIGFwcGxpY2F0aW9uIHdpbGwgd29yayBjb3JyZWN0bHkuCiAgICBUaGlzIGlzIHRoZSBjYXNlIGZvciB0aGUgRlBVIFBPU1Q6IHUtYm9vdCAoY29tcGlsZWQgd2l0aCBzb2Z0LWZsb2F0KQogICAgZG9lc24ndCBwYXNzIHRvIChhbmQgZG9lc24ndCBnZXQgZnJvbSkgdGhlIEZQVSBQT1NUIGZ1bmN0aW9ucyBhbnkKICAgIGZsb2F0czsgdGhlcmUgYXJlIG5vIGZ1bmN0aW9ucyBleHBvcnRlZCBmcm9tIHRoZSBwb3N0L2xpYl9wcGMvZnB1LwogICAgb2JqZWN0cyB3aGljaCB3b3VsZCB3b3JrIHdpdGggZmxvYXQgcGFyYW1ldGVycy9yZXR1cm5zIHRvby4gU28sIHdlCiAgICBjYW4gcmVhc3N1cmUgdGhlIGxpbmtlciBub3QgdG8gd29ycnkgYWJvdXQgdGhlIGRpZmZlcmVuY2UgaW4gQUJJCiAgICBhdHRyaWJ1dGVzIG9mIGxpbmtpbmcgZmlsZXMganVzdCBieSBzZXR0aW5nIHRoZSAnc29mdC1mbG9hdCcKICAgIGF0dHJpYnV0ZSBmb3IgdGhlIG9iamVjdHMgaW4gcG9zdC9saWJfcHBjL2ZwdS4gQW5kIHRoaXMgcGF0Y2ggZG9lcwogICAgdGhpcy4KCiAgICBBbHNvLCB0byBhdm9pZCBwYXNzaW5nIGJvdGggc29mdC0gYW5kIGhhcmQtZmxvYXQgb3B0aW9ucyBpbiBDRkxBR1MKICAgIHdoZW4gY29tcGlsaW5nIHRoZSBmaWxlcyBmcm9tIHBvc3QvbGliX3BwYy9mcHUgKHdoaWNoIGlzIE9LLCBidXQKICAgIGxvb2tzIHJhdGhlciBkaXJ0eSkgdGhpcyBwYXRjaCByZW1vdmVzIHRoZSBzb2Z0LWZsb2F0IHN0cmluZyBmcm9tCiAgICBDRkxBR1MgaW4gcG9zdC9saWJfcHBjL2ZwdS9NYWtlZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgYTdjOTMxMDQ1N2U4NWI0NTk4YWJlNWIzMDQxMDhlZGYxMTMzMmUyZgpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CVdlZCBEZWMgMTcgMTY6MzY6MjIgMjAwOCAtMDYwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBNYXhpbSdzIERTNDUxMCBJMkMgZGV2aWNlCgogICAgSW5pdGlhbCBzdXBwb3J0IGZvciB0aGUgRFM0NTEwLCBhIENQVSBzdXBlcnZpc29yIHdpdGgKICAgIGludGVncmF0ZWQgRUVQUk9NLCBTUkFNLCBhbmQgNCBwcm9ncmFtbWFibGUgbm9uLXZvbGF0aWxlCiAgICBHUElPIHBpbnMuIFRoZSBDT05GSUdfRFM0NTEwIGRlZmluZSBlbmFibGVzIHN1cHBvcnQKICAgIGZvciB0aGUgZGV2aWNlIHdoaWxlIHRoZSBDT05GSUdfQ01EX0RTNDUxMCBkZWZpbmUKICAgIGVuYWJsZXMgdGhlIGRzNDUxMCBjb21tYW5kLiBUaGUgYWRkaXRpb25hbAogICAgQ09ORklHX0RTNDUxMF9JTkZPLCBDT05GSUdfRFM0NTEwX01FTSwgYW5kCiAgICBDT05GSUdfRFM0NTEwX1JTVCBkZWZpbmVzIGFkZCBhZGRpdGlvbmFsIHN1Yi1jb21tYW5kcwogICAgdG8gdGhlIGRzNDUxMCBjb21tYW5kIHdoZW4gZGVmaW5lZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IGI2ZmM2ZmQ0OWE4NDU0M2UxMzI0ZTE2MjBiOWYzMDFmZjdjMWYyN2YKQXV0aG9yOiBEaXJrIEVpYmFjaCA8ZWliYWNoQGdkc3lzLmRlPgpEYXRlOglUdWUgRGVjIDE2IDE0OjUxOjU2IDIwMDggKzAxMDAKCiAgICBjb21tb246IEl0ZXJhdGlvbiBsaW1pdCBmb3IgbWVtb3J5IHRlc3QuCgogICAgVGhlIGl0ZXJhdGlvbiBsaW1pdCBpcyBwYXNzZWQgdG8gbXRlc3QgYXMgYSBmb3VydGggcGFyYW1ldGVyOgogICAgW3N0YXJ0IFtlbmQgW3BhdHRlcm4gW2l0ZXJhdGlvbnNdXV1dCiAgICBJZiBubyBmb3VydGggcGFyYW1ldGVyIGlzIHN1cHBsaWVkLCB0aGVyZSBpcyBubyBpdGVyYXRpb24gbGltaXQgYW5kIHRoZQogICAgdGVzdCB3aWxsIGxvb3AgZm9yZXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEVpYmFjaCA8ZWliYWNoQGdkc3lzLmRlPgoKY29tbWl0IDk3Y2FlM2E0YzY4ZDg1NjM3NGNjYzcwZmQyYzVmODcxNGNjOTRmN2QKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBEZWMgMTUgMTU6NDA6MTIgMjAwOCArMDEwMAoKICAgIHNlcmlhbDogUmVuYW1lIGRyaXZlciB2Y3RoIHRvIHZjdCB0byBzdXBwb3J0IG90aGVyIGJvYXJkIHZhcmlhbnRzCgogICAgTW92ZWQgZHJpdmVyIHZjdGguYyB0byB2Y3QuYyB0byBiZXR0ZXIgcmVmbGVjdCB0aGUgVkNUIGJvYXJkIHNlcmllcy4KICAgIFRoaXMgZHJpdmVyIGlzIG5vdyB1c2VkIGJ5IHRoZSBWQ1QgcGxhdGZvcm1zOgoKICAgIHZjdF9wcmVtaXVtCiAgICB2Y3RfcGxhdGludW0KICAgIHZjdF9wbGF0aW51bXN2YwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzNmVkZTRkNjNlNTljOTI3N2VjMTgwYjA5YzM5YjhiZjQ2NDI1YmEyCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJRnJpIERlYyAxMiAwMDo0NToyNyAyMDA4ICswOTAwCgogICAgbmlvczogTW92ZSBSRUFETUUubmlvc19DT05GSUdfU1lTX05JT1NfQ1BVIHRvIGRvYy8gZGlyCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBjMzI4NGIwMzBiMWNkNDkyYjRmNDZjNTc2YWVhMDFiZWYyNTg1OTlkCkF1dGhvcjogUGV0ZXIgS29yc2dhYXJkIDxqYWNtZXRAc3Vuc2l0ZS5kaz4KRGF0ZToJV2VkIERlYyAxMCAxNjoyNDoxNiAyMDA4ICswMTAwCgogICAgY29tbW9uL21haW46IHN1cHBvcnQgYm9vdGRlbGF5PTAgZm9yIENPTkZJR19BVVRPQk9PVF9LRVlFRAoKICAgIFN1cHBvcnQgYm9vdGRlbGF5PTAgaW4gYWJvcnRib290IGZvciB0aGUgQ09ORklHX0FVVE9CT09UX0tFWUVEIGNhc2UKICAgIHNpbWlsYXIgdG8gdGhlIENPTkZJR19aRVJPX0JPT1RERUxBWV9DSEVDSyBzdXBwb3J0IGZvciB0aGUKICAgICFDT05GSUdfQVVUT0JPT1RfS0VZRUQgY2FzZS4KCiAgICBEbyB0aGlzIGJ5IHJldmVyc2luZyB0aGUgbG9vcCBzbyB3ZSBkbyBhdCBsZWFzdCBvbmUgaXRlcmF0aW9uIGJlZm9yZQogICAgY2hlY2tpbmcgZm9yIHRpbWVvdXQuCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgS29yc2dhYXJkIDxqYWNtZXRAc3Vuc2l0ZS5kaz4KCmNvbW1pdCA5NGY5Mjc5ZjdiYmRjMDFiYmM3Y2Y4NWFlZGY5YjU0NTk0M2I5NGMzCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJTW9uIERlYyA4IDE3OjI0OjA4IDIwMDggKzAxMDAKCiAgICBBZGRlZCBsZWdhY3kgZmxhc2ggU1QgTWljcm8gTTI5VzA0MEIKCmNvbW1pdCA2MjZkMDczNDhlNWY5ZjMwMmY0ZWExODIxNjFhODlmNzM2MmEwNDg4CkF1dGhvcjogR3JhZW1lIFJ1c3MgPGdyYWVtZS5ydXNzQGdtYWlsLmNvbT4KRGF0ZToJTW9uIERlYyA4IDIwOjA0OjUxIDIwMDggKzExMDAKCiAgICBGaXhlZCBvZmYtYnktb25lIGVycm9ycyBpbiBsaWJfbTY4ay9pbnRlcnJ1cHRzLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFlbWUgUnVzcyA8Z3JhZW1lLnJ1c3NAZ21haWwuY29tPgoKY29tbWl0IGE1OTg5YzQyYWU1ZTI5NWYyNzRhNzk1YzQyNmM0NzgxOWJiZGJmZGEKQXV0aG9yOiBHcmFlbWUgUnVzcyA8Z3JhZW1lLnJ1c3NAZ21haWwuY29tPgpEYXRlOglTdW4gRGVjIDcgMTA6Mjk6MDUgMjAwOCArMTEwMAoKICAgIFJlbW92ZWQgYWxsIHJlZmVyZW5jZXMgdG8gQ09ORklHX1NZU19SRVNFVF9HRU5FUklDCgogICAgR2VuZXJpYyBpMzg2IHJlc2V0IC0gI2RlZmluZSBtYWRlIHJlZHVuZGFudCBieSB3ZWFrIGZ1bmN0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogR3JhZW1lIFJ1c3MgPGdyYWVtZS5ydXNzQGdtYWlsLmNvbT4KCmNvbW1pdCAyYjUzNjBlYjJiYzBiNzQxYWU1Y2IzYzg0ZDM1Y2NkZDE3NjY3YzhhCkF1dGhvcjogR3JhZW1lIFJ1c3MgPGdyYWVtZS5ydXNzQGdtYWlsLmNvbT4KRGF0ZToJU3VuIERlYyA3IDEwOjI5OjA0IDIwMDggKzExMDAKCiAgICBSZW1vdmUgI2lmZGVmIENPTkZJR19TQzUyMCBpbiBzb3VyY2UgY29kZQoKICAgIENPTkZJR19TQzUyMCBpcyBub3cgdXNlZCBmb3IgY29uZGl0aW9uYWwgY29tcGlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzc0BnbWFpbC5jb20+Cgpjb21taXQgZWFkMDU2YmMyMDZmNmI3ZWU2ZGM5ODc2NjY3OGI2NDYzNWVhMjBiOApBdXRob3I6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzc0BnbWFpbC5jb20+CkRhdGU6CVN1biBEZWMgNyAxMDoyOTowMyAyMDA4ICsxMTAwCgogICAgQWRkZWQgTU1DUiByZXNldCBmdW5jdGlvbmFsaXR5CgogICAgUmVzZXQgZnVuY3Rpb24gc3BlY2lmaWMgdG8gQU1EIFNDNTIwIG1pY3JvY29udHJvbGxlciAtIElzIG1vcmUgb2YgYQogICAgJ2hhcmQgcmVzZXQnIHRoYXQgdGhlIHRyaXBsZSBmYXVsdC4KCiAgICBSZXF1aXJlcyBDT05GSUdfU1lTX1JFU0VUX1NDNTIwIHRvIGJlIGRlZmluZWQgaW4gY29uZmlnCgogICAgSSB3b3VsZCBoYXZlIGxpa2VkIHRvIGFkZCB0aGlzIHRvIGEgbmV3IGZpbGUgKGNwdS9pMzg2L3NjNTIwL3Jlc2V0LmMpCiAgICBidXQgbGQgcmVxdWlyZXMgdGhhdCBhIG9iamVjdCBmaWxlIGluIGEgbGlicmFyeSBhcmhpdmUgTVVTVCBjb250YWluCiAgICBhdCBsZWFzdCBvbmUgZnVuY3Rpb24gd2hpY2ggZG9lcyBub3Qgb3ZlcnJpZGUgYSB3ZWFrIGZ1bmN0aW9uIChhbmQgaXMKICAgIGNhbGxlZCBmcm9tIG91dHNpZGUgdGhlIG9iamVjdCBmaWxlKSBpbiBvcmRlciBmb3IgdGhhdCBvYmplY3QgZmlsZSB0bwogICAgYmUgZXh0cmFjdGVkIGZyb20gdGhlIGFyY2hpdmUuIFRoaXMgd291bGQgYmUgdGhlIG9ubHkgZnVuY3Rpb24gb24gdGhlCiAgICBuZXcgZmlsZSwgYW5kIGhlbmNlLCB3aWxsIG5ldmVyIGdldCBsaW5rZWQgaW4uCgogICAgU2lnbmVkLW9mZi1ieTogR3JhZW1lIFJ1c3MgPGdyYWVtZS5ydXNzQGdtYWlsLmNvbT4KCmNvbW1pdCAzZjVmMThkMTJkMzJlZTA2NjFiZjUxZGZjNTU3NTJjMDA1MjMwZDZlCkF1dGhvcjogR3JhZW1lIFJ1c3MgPGdyYWVtZS5ydXNzQGdtYWlsLmNvbT4KRGF0ZToJU3VuIERlYyA3IDEwOjI5OjAyIDIwMDggKzExMDAKCiAgICBNb3ZlZCBnZW5lcmljICh0cmlwbGUgZmF1bHQpIHJlc2V0IGNvZGUKCiAgICBNb3ZlZCBmcm9tIGludGVycnVwdHMuYyB0byBjcHUuYyBhbmQgbWFkZSBpbnRvIGEgd2VhayBmdW5jdGlvbiB0bwogICAgYWxsb3cgdmVuZG9yIHNwZWNpZmljIG92ZXJyaWRlCgogICAgVmVuZG9yIHNwZWNpZmljIENQVSByZXNldCAobGlrZSB0aGUgQU1EIFNDNTIwIE1NQ1IgcmVzZXQpIGNhbiBub3cgYmUKICAgIGFkZGVkIHRvIHRoZSB2ZW5kb3Igc3BlY2lmaWMgY29kZSB3aXRob3V0IHRoZSBuZWVkIHRvIHJlbWVtYmVyIHRvCiAgICAjdW5kZWYgdXNhZ2Ugb2YgdGhlIGdlbmVyaWMgbWV0aG9kIGFuZCBpZiB5b3UgZm9yZ2V0IHRvIGluY2x1ZGUgeW91cgogICAgY3VzdG9tIHJlc2V0IG1ldGhvZCwgeW91IHdpbGwgYWx3YXlzIGdldCB0aGUgZGVmYXVsdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFlbWUgUnVzcyA8Z3JhZW1lLnJ1c3NAZ21haWwuY29tPgoKY29tbWl0IDk5MzNkNjA5MDIwYzI5Nzc4OGY1M2YzMzRjODQ2NWZhN2E5OWIxMGMKQXV0aG9yOiBHcmFlbWUgUnVzcyA8Z3JhZW1lLnJ1c3NAZ21haWwuY29tPgpEYXRlOglTdW4gRGVjIDcgMTA6Mjk6MDEgMjAwOCArMTEwMAoKICAgIE1vdmVkIGRlZmluaXRpb24gb2Ygc2V0X3ZlY3RvcigpIHRvIG5ldyBoZWFkZXIgZmlsZQoKICAgIFRoaXMgYWxsb3dzIGZvciBmdXR1cmUgdGlkeSB1cHMgYW5kIGZ1bmN0aW9uYWxpdHkgdGhhdCB3aWxsIHJlcXVpcmUKICAgIHNldF92ZWN0b3IgKCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFlbWUgUnVzcyA8Z3JhZW1lLnJ1c3NAZ21haWwuY29tPgoKY29tbWl0IDQwNzk3NjE4NWUwZGRhMmM5MGU4OTAyNzEyMWExMDcxYjljNzdiZmIKQXV0aG9yOiBHcmFlbWUgUnVzcyA8Z3JhZW1lLnJ1c3NAZ21haWwuY29tPgpEYXRlOglTdW4gRGVjIDcgMTA6Mjk6MDAgMjAwOCArMTEwMAoKICAgIE1vdmVkIHNjNTIwIHNwZWNpZmljIGNvZGUgaW50byBuZXcgY3B1L2kzODYvc2M1MjAgZm9sZGVyCgogICAgU2lnbmVkLW9mZi1ieTogR3JhZW1lIFJ1c3MgPGdyYWVtZS5ydXNzQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgODVmZmJiZDUxOTE0OTI1YTU0MmQ4NTI4YmU3ZjA3MmU1YWIwMjE1NwpBdXRob3I6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzc0BnbWFpbC5jb20+CkRhdGU6CVN1biBEZWMgNyAxMDoyODo1OCAyMDA4ICsxMTAwCgogICAgUmVuYW1lZCBjcHUvaTM4Ni9yZXNldC5TIHRvIHJlc2V0dmVjLlMKCiAgICBCcmluZ3MgaTM4NiBpbiBsaW5lIHdpdGggb3RoZXIgQ1BVcyB3aXRoIGEgcmVzZXQgdmVjdG9yIGFuZCBmcmVlcyB1cCByZXNldC5jCiAgICBmb3IgQ1BVIHJlc2V0IGZ1bmN0aW9ucwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzc0BnbWFpbC5jb20+Cgpjb21taXQgYTNmNGMxMjNmNTY5NDc0ZTgwZWEwMTJiOGRiMGRlNDZhZmRiNjQ0MwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gMjQgMDE6MDE6NDkgMjAwOSArMDEwMAoKICAgIE1ha2VmaWxlOiBrZWVwIGxpc3RzIHNvcnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGM2MjBjMDFlOTY4MTQ1NTg0NzA2OThlZDVjYWIxYmYyZjUwNGQxYjUKQXV0aG9yOiBHcmFlbWUgUnVzcyA8Z3JhZW1lLnJ1c3NAZ21haWwuY29tPgpEYXRlOglTdW4gRGVjIDcgMTA6Mjg6NTcgMjAwOCArMTEwMAoKICAgIEFkZGVkIGluaXRpYWwgZU5FVCBib2FyZCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogR3JhZW1lIFJ1c3MgPGdyYWVtZS5ydXNzQGdtYWlsLmNvbT4KCmNvbW1pdCAwYzBjY2Y0MDFlZTAzYTUwMDhmYzJjMTliMDVhNjYyYmNlMWExMDg2CkF1dGhvcjogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQGRlbnguZGU+CkRhdGU6CVRodSBOb3YgMjAgMTE6Mzc6MjYgMjAwOCArMDEwMAoKICAgIFBPV0VSUEMgODJ4eDogYWRkIHRoZSBTQ0MgYXMgYW4gSERMQyBjb250cm9sbGVyCgogICAgUmlnaHQgbm93IHRoaXMgaXMgb25seSB1c2VkIGJ5IGtleW1pbGUuCgogICAgU2lnbmVkLW9mZi1ieTogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQGRlbnguZGU+Cgpjb21taXQgMWU4ZjRlNzhjYTM5M2IzZDhlODZiZDgwNTU3NThkZDQ2NWQ5MTEzZgpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglUaHUgTm92IDIwIDA5OjU5OjA5IDIwMDggKzAxMDAKCiAgICBwb3dlcnBjLCBrZXltaWxlIGJvYXJkczogZXh0cmFjdCBpZGVudGljYWwgY29uZmlnIG9wdGlvbnMKCiAgICBUaGlzIHBhdGNoIGV4dHJhY3RzIHRoZSBpZGVudGljYWwgY29uZmlnIG9wdGlvbnMgZm9yIHRoZQogICAga2V5bWlsZSBib2FyZHMgbWdjb2dlLCBtZ3N1dmQgYW5kIGttZXRlcjEgaW4gYSBuZXcKICAgIGNvbW1vbiBjb25maWcgZmlsZSBrZXltaWxlLWNvbW1vbi5oLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDIxMGM4YzAwYWFkMzMyODE0NTIwNGFkYWI0MzRiYjdkNzBiMDZiNzUKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJRnJpIE5vdiAyMSAwODoyOTo0MCAyMDA4ICswMTAwCgogICAgcG93ZXJwYzoga2V5bWlsZTogQWRkIGEgY2hlY2sgZm9yIHRoZSBQSUdHWSBkZWJ1ZyBib2FyZAoKICAgIENoZWNrIHRoZSBwcmVzZW5jZSBvZiB0aGUgUElHR1kgb24gdGhlIGtleW1pbGUgYm9hcmRzIG1nY29nZSwKICAgIG1nc3V2ZCBhbmQga21ldGVyMS4gSWYgdGhlIFBJR0dZIGlzIG5vdCBwcmVzZW50LCBkb250IHJlZ2lzdGVyCiAgICB0aGlzIEV0aGVybmV0IGRldmljZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGRlMDQ0MzYxNGFmNGQxNjY3NWFiNDM2NjY1YWViMTFkZGM5ZjcyMTQKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJVGh1IE5vdiAyMCAwOTo1Nzo0NyAyMDA4ICswMTAwCgogICAgcG93ZXJwYzogODN4eDogYWRkIHN1cHBvcnQgZm9yIHRoZSBrbWV0ZXIxIGJvYXJkCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBrbWV0ZXIxIGJvYXJkIGZyb20gS2V5bWlsZSwKICAgIGJhc2VkIG9uIGEgRnJlZXNjYWxlIE1QQzgzNjAgQ1BVLgoKICAgIC0gc2VyaWFsIGNvbnNvbGUgb24gVUFSVCAxCiAgICAtIDI1NiBNQiBERFIyIFJBTQogICAgLSA2NCBNQiBOT1IgRmxhc2gKICAgIC0gRXRoZXJuZXQgUk1JSSBNb2RlIG92ZXIgVUNDNAogICAgLSBQSFkgU01TQyBMQU44NzAwCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgM2ZlYjY0N2YzZmQwODgxMzgyYzdhMjlmNGNmMjgwYjY2NDczYWUwYQpBdXRob3I6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CkRhdGU6CVR1ZSBOb3YgNCAxMzo1MToxOCAyMDA4ICswMTAwCgogICAgQWRkIGEgZG9fZGl2KCkgd3JhcHBlciBtYWNybywgbGxkaXYoKS4KCiAgICBBZGQgYSBkb19kaXYoKSB3cmFwcGVyLCBsbGRpdigpLiBUaGUgbmV3IGlubGluZSBmdW5jdGlvbiBkb2Vzbid0IG1vZGlmeQogICAgdGhlIGRpdmlkZW5kIGFuZCByZXR1cm5zIHRoZSByZXN1bHQgb2YgZGl2aXNpb24sIHNvIGl0IGlzIHVzZWZ1bAogICAgaW4gY29tcGxleCBleHByZXNzaW9ucywgaS5lLiAicmV0dXJuKGEvYikiIC0+ICJyZXR1cm4obGxkaXYoYSxiKSkiCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KCmNvbW1pdCAxOGFmMWM1ZjBmNzQwMmRjMGQ2YTcxYjAxMmM2ODAyNWRkOTdjZjcyCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIEphbiAyMyAxNDoyMjoxNCAyMDA5IC0wNjAwCgogICAgODV4eDogQWRkIGEgMzYtYml0IHBoeXNpY2FsIGNvbmZpZ3VyYXRpb24gZm9yIE1QQzg1NzJEUwoKICAgIFdlIG1vdmUgYWxsIElPIGFkZHJlc3NlZCAoQ0NTUiwgbG9jYWxidXMsIFBDSSkgYWJvdmUgdGhlIDRHIGJvdW5kYXJ5CiAgICB0byBhbGxvdyBmb3IgbGFyZ2VyIG1lbW9yeSBzaXplcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGM1MWZjNWQ1M2M0NTYwYWJjNGQwYTYxMjZjMDZmYzY4MTMzZDE1MjgKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgSmFuIDIzIDE0OjIyOjEzIDIwMDkgLTA2MDAKCiAgICA4NXh4OiBIYW5kbGUgZUxCQyBkaWZmZXJlbmNlIHcvMzYtYml0IHBoeXNpY2FsCgogICAgVGhlIGVMQkMgb25seSBoYW5kbGVzIDMyLWJpdCBwaHlzaWNhbCBhZGRyZXNzIGluIHN5c3RlbXMgd2l0aCAzNi1iaXQKICAgIHBoeXNpY2FsLiAgVGhlIHByZXZpb3MgZ2VuZXJhdGlvbiBvZiBMQkMgaGFuZGxlZCAzNC1iaXQgcGh5c2ljYWwKICAgIGFkZHJlc3MgaW4gMzYtYml0IHN5c3RlbXMuCUFkZGVkIGEgbmV3IENPTkZJRyBvcHRpb24gdG8gY29udmV5CiAgICB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBMQkMgYW5kIGVMQkMuCgogICAgQWxzbyBhZGRlZCBkZWZpbmVzIGZvciBYQU0gYml0cyB1c2VkIGluIExCQyBmb3IgdGhlIGV4dGVuZGVkIDM0LWJpdAogICAgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDcyYTk0MTRhOGUyMWU5NTM2ODIyYzczNTNiYzA4ZDIxY2U1YWQ1M2QKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgSmFuIDIzIDE0OjIyOjEyIDIwMDkgLTA2MDAKCiAgICA4NXh4OiBVc2UgQlJfQUREUiBtYWNybyBmb3IgTkFORCBjaGlwc2VsZWN0cwoKICAgIFVzZSB0aGUgbmV3IEJSX0FERFIgbWFjcm8gdG8gcHJvcGVybHkgc2V0dXAgdGhlIGFkZHJlc3MgZmllbGQgb2YgdGhlCiAgICBsb2NhbGJ1cyBjaGlwc2VsZWN0cyB1c2VkIGJ5IE5BTkQuCgogICAgVGhpcyBhbGxvd3MgdXMgdG8gZGVhbCB3aXRoIDM2LWJpdCBwaHlzIG9uIHRoZXNlIGJvYXJkcyBpbiB0aGUgZnV0dXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMmZjN2ViMGNmYzYwOGM5MzY5MDAxZDU3YTA0MTFhZjVlNmE1OGY3YwpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKYW4gMTUgMTE6NTg6MzUgMjAwOSAtMDUwMAoKICAgIEFkZCBzZWNvbmRhcnkgQ1BVcyBwcm9jZXNzb3IgZnJlcXVlbmN5IGZvciBlNTAwIGNvcmUKCiAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgZTUwMCBmcmVxUHJvY2Vzc29yIHRvIGFycmF5IGJhc2VkIG9uIENPTkZJR19OVU1fQ1BVUywKICAgIGFuZCBwcmludHMgZWFjaCBDUFUncyBmcmVxdWVuY3kgc2VwYXJhdGVseS4gSXQgYWxzbyBmaXhlcyB1cCBlYWNoIENQVSdzCiAgICBmcmVxdWVuY3kgaW4gImNsb2NrLWZyZXF1ZW5jeSIgb2YgZmR0IGJsb2IuCgogICAgU2lnbmVkLW9mZi1ieTogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZjViMWYwYzBkMjhjZTA2MmUxZDM2ODY4MDYzMmRmYjA5OWRlNjkyCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE5vdiAyMSAxNjozMTo1MyAyMDA4ICswODAwCgogICAgODV4eDogZW5hYmxlIHRoZSBhdXRvIHNlbGYgcmVmcmVzaCBmb3Igd2FrZSB1cCBBUlAKCiAgICBUaGUgd2FrZSB1cCBBUlAgZmVhdHVyZSBuZWVkIHVzZSB0aGUgbWVtb3J5IHRvIHByb2Nlc3MKICAgIHdha2UgdXAgcGFja2V0LCB3ZSBlbmFibGUgYXV0byBzZWxmIHJlZnJlc2ggdG8gc3VwcG9ydCBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNDk4M2UxNmQxNTBhYjdkMDM5NzA0YzMxMGFhY2JkMmY0ZGMxZTBmCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE5vdiAyMSAxNjozMTo0MyAyMDA4ICswODAwCgogICAgZnNsLWRkcjogdXNlIHRoZSAxVCB0aW1pbmcgYXMgZGVmYXVsdCBjb25maWd1cmF0aW9uCgogICAgRm9yIGxpZ2h0IGxvYWRlZCBzeXN0ZW0sIHdlIHVzZSB0aGUgMVQgdGltaW5nIHRvIGdhaW4gYmV0dGVyCiAgICBtZW1vcnkgcGVyZm9ybWFuY2UsIGJ1dCBmb3Igc29tZSBoZWF2aWx5IGxvYWRlZCBzeXN0ZW0sCiAgICB5b3UgaGF2ZSB0byBhZGQgdGhlIDJUIHRpbWluZyBvcHRpb25zIHRvIGJvYXJkIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDIyY2NhN2UxY2Q1NDU5MGU5NjdjNzM1NThiMDdmZmJkY2NkMzk1MDQKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTm92IDIxIDE2OjMxOjM1IDIwMDggKzA4MDAKCiAgICBmc2wtZGRyOiBtYWtlIHRoZSBzZWxmIHJlZnJlc2ggaWRsZSB0aHJlc2hvbGQgY29uZmlndXJhYmxlCgogICAgU29tZSA4NXh4IHByb2Nlc3NvcnMgaGF2ZSB0aGUgYWR2YW5jZWQgcG93ZXIgbWFuYWdlbWVudCBmZWF0dXJlLAogICAgc3VjaCBhcyB3YWtlIHVwIEFSUCwgdGhhdCBuZWVkcyBlbmFibGUgdGhlIGF1dG9tYXRpYyBzZWxmIHJlZnJlc2guCgogICAgSWYgdGhlIEREUiBjb250cm9sbGVyIHBhc3MgdGhlIFNSX0lUIChzZWxmIHJlZnJlc2ggaWRsZSB0aHJlc2hvbGQpCiAgICBpZGxlIGN5Y2xlcywgaXQgd2lsbCBhdXRvbWF0aWNhbGx5IGVudGVyIHNlbGYgcmVmcmVzaC4gSG93ZXZlciwKICAgIGFueXRpbWUgb25lIHRyYW5zYWN0aW9uIGlzIGlzc3VlZCB0byB0aGUgRERSIGNvbnRyb2xsZXIsIGl0IHdpbGwKICAgIHJlc2V0IHRoZSBjb3VudGVyIGFuZCBleGl0IHNlbGYgcmVmcmVzaCBzdGF0ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyMmZmM2QwMTM0OGUwYTJkYzM2OWI3ZWZjYmFjMzBlNGNlODZkMTc4CkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE5vdiAyMSAxNjozMToyOSAyMDA4ICswODAwCgogICAgZnNsLWRkcjogY2xlYW4gdXAgdGhlIGRkciBjb2RlIGZvciBERFIzIGNvbnRyb2xsZXIKCiAgICAtIFRoZSBERFIzIGNvbnRyb2xsZXIgaXMgZXhwYW5kaW5nIHRoZSBiaXRzIGZvciB0aW1pbmcgY29uZmlnCiAgICAtIEFkZCB0aGUgRERSMyAzMi1iaXQgYnVzIG1vZGUgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgwZWUzY2U2ZDdmZTk0NDFiNDM1MmQ3Y2ZhZjZhZmMyNTA3YjExMDYKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTm92IDIxIDE2OjMxOjIyIDIwMDggKzA4MDAKCiAgICBmc2wtZGRyOiB1cGRhdGUgdGhlIGJpdCBtYXNrIGZvciBERFIzIGNvbnRyb2xsZXIKCiAgICBBY2NvcmRpbmcgdG8gdGhlIGxhdGVzdCA4NTcyIFVNLCB0aGUgRERSMyBjb250cm9sbGVyCiAgICBpcyBleHBhbmRpbmcgdGhlIGJpdCBtYXNrLCBhbmQgd2UgdXNlIHRoZSBleHRlbmQgQUNUVE9QUkUKICAgIG1vZGUgd2hlbiB0UkFTIG1vcmUgdGhhbiAxOSBNQ0xLLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWNhNWYwMThhODM4NmI4NTQ2OTQ4MmVkOTg2N2UzZTI5YTI0MzdkMApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBEZWMgMiAxNjowODo0MCAyMDA4IC0wNjAwCgogICAgODV4eDogSW50cm9kdWNlIENPTkZJR19TWVNfUENJKl9JT19WSVJUIGZvciBGU0wgYm9hcmRzCgogICAgSW50cm9kdWNlIGEgbmV3IGRlZmluZSB0byBzZXBlcmF0ZSBvdXQgdGhlIHZpcnR1YWwgYWRkcmVzcyB0aGF0IFBDSQogICAgSU8gc3BhY2UgaXMgYXQgZnJvbSB0aGUgcGh5c2ljYWwgYWRkcmVzcy4gIEluIG1vc3Qgc2l0dWF0aW9ucyB0aGVzZSBhcmUKICAgIG1hcHBlZCAxOjEuICBIb3dldmVyIGFueSBjb2RlIGFjY2Vzc2luZyB0aGUgYnVzIHNob3VsZCB1c2UgVklSVC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1YWYwZmRkODFjMzM3MGMzYTUxNDIxMjA4ZmRhNTY4YmRjYmJlYzIzCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIERlYyAyIDE2OjA4OjM5IDIwMDggLTA2MDAKCiAgICA4NXh4OiBJbnRyb2R1Y2UgQ09ORklHX1NZU19QQ0kqX01FTV9WSVJUIGZvciBGU0wgYm9hcmRzCgogICAgSW50cm9kdWNlIGEgbmV3IGRlZmluZSB0byBzZXBlcmF0ZSBvdXQgdGhlIHZpcnR1YWwgYWRkcmVzcyB0aGF0IFBDSQogICAgbWVtb3J5IGlzIGF0IGZyb20gdGhlIHBoeXNpY2FsIGFkZHJlc3MuICBJbiBtb3N0IHNpdHVhdGlvbnMgdGhlc2UgYXJlCiAgICBtYXBwZWQgMToxLiAgSG93ZXZlciBhbnkgY29kZSBhY2Nlc3NpbmcgdGhlIGJ1cyBzaG91bGQgdXNlIFZJUlQuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTZlMDRjMzQ0YWQxZWVmZDQ3YTc1NDg0NDQxYjM4NWRhODE1YjhkZgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBEZWMgMiAxNjowODozOCAyMDA4IC0wNjAwCgogICAgODV4eDogVXNlIENPTkZJR19TWVNfe1BDSSosUklPKn1fTUVNX1BIWVMgZm9yIHBoeXNpY2FsIGFkZHJlc3Mgb24gRlNMIGJvYXJkcwoKICAgIFVzZSB0aGUgX01FTV9QSFlTIGRlZmluZXMgaW5zdGVhZCBvZiBfTUVNX0JVUyBmb3IgTEFXIGFuZCByZWFsIGFkZHJlc3MgZmllbGRzCiAgICBvZiBUTEJzLiAgVGhpcyBpcyB3aGF0IHdlIHNob3VsZCBoYXZlIGFsd2F5cyBiZWVuIHVzaW5nIGZyb20gdGhlIHN0YXJ0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVmOTFlZjZhY2RiYWRlYzMzZTAxOTIwNDllMmIyNGExZDk2OTJmMWQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgRGVjIDIgMTY6MDg6MzcgMjAwOCAtMDYwMAoKICAgIDg1eHg6IENvbnZlcnQgQ09ORklHX1NZU19QQ0kqX0lPX0JBU0UgdG8gX0lPX0JVUyBmb3IgRlNMIGJvYXJkcwoKICAgIFVzZSBDT05GSUdfU1lTX1BDSSpfSU9fQlVTIGZvciB0aGUgYnVzIHJlbGF0aXZlIGFkZHJlc3MgaW5zdGVhZAogICAgb2YgX0lPX0JBU0Ugc28gd2UgYXJlIG1vcmUgZXhwbGljaXQuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAxMDc5NWY0MmNiOTRlNzFiY2IyNjJiNjE1MDg0ZjY5ZGQ4ODYzOTlhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIERlYyAyIDE2OjA4OjM2IDIwMDggLTA2MDAKCiAgICA4NXh4OiBDb252ZXJ0IENPTkZJR19TWVNfe1BDSSosUklPKn1fTUVNX0JBU0UgdG8gX01FTV9CVVMgZm9yIEZTTCBib2FyZHMKCiAgICBVc2UgQ09ORklHX1NZU197UENJLFJJT31fTUVNX0JVUyBmb3IgdGhlIGJ1cyByZWxhdGl2ZSBhZGRyZXNzIGluc3RlYWQKICAgIG9mIF9NRU1fQkFTRSBzbyB3ZSBhcmUgbW9yZSBleHBsaWNpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjOTUzZGRmZDU2YjNhZTNmMjg5MTBmZTNhZWQ2ZGU2OTY4ZDFjOWFhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIERlYyAyIDE0OjE5OjM0IDIwMDggLTA2MDAKCiAgICA4NXh4OiBzZXBhcmF0ZSBGTEFTSCBCQVNFIHZpcnR1YWwgZnJvbSBwaHlzaWNhbCBhZGRyZXNzCgogICAgQWRkZWQgYSBDT05GSUdfU1lTX0ZMQVNIX0JBU0VfUEhZUyBmb3IgdXNlIGFzIHRoZSBwaHlzaWNhbCBhZGRyZXNzIGFuZAogICAgbWFpbnRhaW4gQ09ORklHX1NZU19GTEFTSF9CQVNFIGFzIHRoZSB2aXJ0dWFsIGFkZHJlc3Mgb2YgdGhlIGZsYXNoLgoKICAgIFRoaXMgYWxsb3dzIHVzIHRvIGRlYWwgd2l0aCAzNi1iaXQgcGh5cyBvbiB0aGVzZSBib2FyZHMgaW4gdGhlIGZ1dHVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1MmI1NjVmNWFkMjNiNjgyNDg5MDU1YjE4Nzc2N2Q4YmYxYzJlNDQ0CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIERlYyAyIDE0OjE5OjMzIDIwMDggLTA2MDAKCiAgICA4NXh4OiBzZXBhcmF0ZSBQSVhJUyB2aXJ0dWFsIGZyb20gcGh5c2ljYWwgYWRkcmVzcwoKICAgIEFkZGVkIGEgUElYSVNfQkFTRV9QSFlTIGZvciB1c2UgYXMgdGhlIHBoeXNpY2FsIGFkZHJlc3MgYW5kIG1haW50YWluCiAgICBQSVhJU19CQVNFIGFzIHRoZSB2aXJ0dWFsIGFkZHJlc3Mgb2YgdGhlIFBJWElTIGZwZ2EgcmVnaXN0ZXJzLgoKICAgIFRoaXMgYWxsb3dzIHVzIHRvIGRlYWwgd2l0aCAzNi1iaXQgcGh5cyBvbiB0aGVzZSBib2FyZHMgaW4gdGhlIGZ1dHVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzMDgzN2U1YjIxZDVhNzQyOTgzNTgxYWI5ZWUzZmFjMDg1MzExZDE5CkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE5vdiAxMSAwODo1MjowOSAyMDA4IC0wNTAwCgogICAgQWRkIFJFQURNRSBmaWxlIGZvciBNUEM4NTcyRFMgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2ZGFkYzkxOTVhZDY0MmNjNjYyNjMyZjRkOTJmOTJkM2Q3MWU4YmYyCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gT2N0IDIwIDE2OjE1OjA0IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogdXNlIGNvbW1vbiBzdHJtaHooKSBpbiBzeXN0ZW0gb3V0cHV0CgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDViYjkwN2E0OTI1Mzk3Nzg5YzkwZDA3NGY0ZjdlOTJjZTZiMzk0MDIKQXV0aG9yOiBSb24gTWFkcmlkIDxyb25fbWFkcmlkQHNiY2dsb2JhbC5uZXQ+CkRhdGU6CVRodSBKYW4gMjIgMTU6MDU6MjQgMjAwOSAtMDgwMAoKICAgIG1wYzgzeHg6IE5ldyBib2FyZCBzdXBwb3J0IGZvciBTSU1QQzgzMTMKCiAgICBUaGlzIHBhdGNoIHdpbGwgY3JlYXRlIGEgbmV3IGJvYXJkLCBTSU1QQzgzMTMsIGZyb20gU2hlbGRvbiBJbnN0cnVtZW50cy4gIFRoaXMKICAgIGJvYXJkIGJvb3RzIGZyb20gTkFORCBkZXZpY2VzIGFuZCBpcyBjb25maWd1cmVhYmxlIGZvciBlaXRoZXIgbGFyZ2Ugb3Igc21hbGwKICAgIHBhZ2UgZGV2aWNlcy4gIFRoZSBib2FyZCBzdXBwb3J0cyBub24tc29sZGVyZWQgRERSMiwgb25lIGV0aGVybmV0IHBvcnQsIGEKICAgIE1hcnZlbGwgODhFMTExOCBQSFksIGFuZCBQQ0kgaG9zdCBzdXBwb3J0LglUaGUgYm9hcmQgYWxzbyBoYXMgYSBGUEdBIGNvbm5lY3RlZAogICAgdG8gdGhlIGVMQkMgcHJvdmlkaW5nIGdsdWUgbG9naWMgdG8gYSBUTVMzMjBDNjd4eCBEU1AuCgogICAgU2lnbmVkLW9mZi1ieTogUm9uIE1hZHJpZCA8cm9uX21hZHJpZEBzYmNnbG9iYWwubmV0PgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkNGJhZGU4ZDc3YWEyMGUyODQ2ZmE0YWNjZmYwZTdmYTc5NjFhMTM0CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTdW4gSmFuIDE4IDE5OjQ2OjA2IDIwMDkgLTA1MDAKCiAgICBuYW5kOiBmaXh1cCBwcmludGYgbW9kaWZpZXJzIHRvIG1hdGNoIHR5cGVzIHVzZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzODllNjYyMGUyMjcxMDk2ZGYzMzE2OTE3NTI4MDAzNjI3ZGI0MDIxCkF1dGhvcjogU2NobGFlZ2wgTWFuZnJlZCBqdW4gPG1hbmZyZWQuc2NobGFlZ2xAZ214LmF0PgpEYXRlOglUdWUgSmFuIDIwIDE2OjU3OjU1IDIwMDkgKzAxMDAKCiAgICBuYW5kIHJlYWQuamZmczIgKG5hbmRfbGVnYWN5KSBpbiBjb21tb24vY21kX25hbmQuYwoKICAgIEVycm9yIHdpdGggQ09ORklHX05BTkRfTEVHQUNZIGluIGNvbW1vbi9jbWRfbmFuZC5jOgogICAgV2l0aCBjdXJyZW50IGNvZGUgIm5hbmQgcmVhZC5qZmZzMnMiIChyZWFkIGFuZCBza2lwIGJhZCBibG9ja3MpIGlzIGFsd2F5cyBpbnRlcnByZXRlZCBhcwogICAgIm5hbmQgcmVhZC5qZmZzMiIgKHJlYWQgYW5kIGZpbGwgYmFkIGJsb2NrcyB3aXRoIDB4ZmYpLiBUaGlzIGlzIGJlY2F1c2UgIi5qZmZzMiIgaXMKICAgIHRlc3RlZCBiZWZvcmUgIi5qZmZzMnMiIGFuZCBvbmx5IHRoZSBmaXJzdCB0d28gY2hhcmFjdGVycyBhcmUgY29tcGFyZWQuCgogICAgQ29ycmVjdGlvbjoKICAgIFRlc3QgZm9yICIuamZmczJzIiBmaXJzdCBhbmQgY29tcGFyZSB0aGUgZmlyc3QgNyBjaGFyYWN0ZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZjODY5NjM3ZmVmMzFlNjYzODBmMGVhMWQ0OTY5MGEyZTI2ZWMwZDcKQXV0aG9yOiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KRGF0ZToJRnJpIEphbiAxNiAxODo1NTo1NCAyMDA5ICswMTAwCgogICAgTkFORDogcmVuYW1lIE5BTkRfTUFYX0NISVBTIHRvIENPTkZJR19TWVNfTkFORF9NQVhfQ0hJUFMKCiAgICBUaGlzIHBhdGNoIHJlbmFtZXMgTkFORF9NQVhfQ0hJUFMgdG8gQ09ORklHX1NZU19OQU5EX01BWF9DSElQUyBhbmQKICAgIGNoYW5nZXMgdGhlIGRlZmF1bHQgZnJvbSA4IHRvIDEgZm9yIHRoZSBsZWdhY3kgYW5kIHRoZSBuZXcgTVRECiAgICBOQU5EIGxheWVyLiBUaGlzIGFsbG93cyB0byByZW1vdmUgYWxsIE5BTkRfTUFYX0NISVBTIGRlZmluaXRpb25zCiAgICBpbiB0aGUgYm9hcmQgY29uZmlnIGZpbGVzIGJlY2F1c2Ugbm9uZSBvZiB0aGUgYm9hcmRzIHVzZSBtdWx0aQogICAgY2hpcCBzdXBwb3J0IChOQU5EX01BWF9DSElQUyA+IDEpIHNvIGZhci4gVGhlIGJhbWJvbyBhbmQgdGhlIERVNDQwCiAgICBkZWZpbmUKCiAgICAgI2RlZmluZSBOQU5EX01BWF9DSElQUwkgICAgIENPTkZJR19TWVNfTUFYX05BTkRfREVWSUNFCgogICAgYnV0IHRoYXQncyBib2d1cyBhbmQgZGlkIG5vdCB3b3JrIGFueWhvdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM3MDU2NGU2YjFiZDA4ZjMyMzAxODIzOTIyMzg5MDdmMzUzMWE4N2UKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgRGVjIDIgMTE6NDg6NTEgMjAwOCArMDgwMAoKICAgIE5BTkQ6IEZpeCBjYWNoZSBhbmQgbWVtb3J5IGluY29uc2lzdGVuY3kgaXNzdWUKCiAgICBXZSBsb2FkIHRoZSBzZWNvbmRhcnkgc3RhZ2UgdS1ib290IGltYWdlIGZyb20gTkFORCB0bwogICAgc3lzdGVtIG1lbW9yeSBieSBuYW5kX2xvYWQsIGJ1dCB3ZSBkaWQgbm90IGZsdXNoIGQtY2FjaGUKICAgIHRvIG1lbW9yeSwgbm9yIGludmFsaWRhdGUgaS1jYWNoZSBiZWZvcmUgd2UganVtcCB0byBSQU0uCiAgICBXaGVuIHRoZSBzeXN0ZW0gaGFzIGNhY2hlIGVuYWJsZWQgYW5kIHRoZSBUTEIvcGFnZSBhdHRyaWJ1dGUKICAgIG9mIHN5c3RlbSBtZW1vcnkgaXMgY2FjaGVhYmxlLCBpdCB3aWxsIGNhdXNlIGlzc3Vlcy4KCiAgICAtIDgzeHggZmFtaWx5IGlzIHVzaW5nIHRoZSBkLWNhY2hlIGxvY2ssIHNvIGFsbCBvZiBkLWNhY2hlCiAgICAgIGFjY2VzcyBpcyBjYWNoZS1pbmhpYml0ZWQuIHNvIHlvdSBjYW4ndCBzZWUgdGhlIGlzc3VlLgogICAgLSA4NXh4IGZhbWlseSBpcyB1c2luZyBkLWNhY2hlLCBpLWNhY2hlIGVuYWJsZSwgcGFydGlhbAogICAgICBjYWNoZSBsb2NrLiB5b3Ugd2lsbCBzZWUgdGhlIGlzc3VlLgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIGNhY2hlIGlzc3VlLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1MDY1N2MyNzMyNzhmNzQzNzhlMWFjMzliNDFkNjEyYjkyZmRmZmEwCkF1dGhvcjogTmlzaGFudGggTWVub24gPG1lbm9uLm5pc2hhbnRoQGdtYWlsLmNvbT4KRGF0ZToJU2F0IERlYyAxMyAwOTo0MzowNiAyMDA4IC0wNjAwCgogICAgTkFORDogRW5hYmxlIG5hbmQgbG9jaywgdW5sb2NrIGZlYXR1cmUKCiAgICBFbmFibGUgbmFuZCBsb2NrLCB1bmxvY2sgYW5kIHN0YXR1cyBvZiBsb2NrIGZlYXR1cmUuCiAgICBOb3QgZXZlcnkgZGV2aWNlIGFuZCBwbGF0Zm9ybSByZXF1aXJlcyB0aGlzLCBoZW5jZSwKICAgIGl0IGlzIHVuZGVyIGRlZmluZSBmb3IgQ09ORklHX0NNRF9OQU5EX0xPQ0tfVU5MT0NLCgogICAgTmFuZCB1bmxvY2sgYW5kIHN0YXR1cyBvcGVyYXRlIG9uIGJsb2NrIGJvdW5kYXJ5IGluc3RlYWQKICAgIG9mIHBhZ2UgYm91bmRhcnkuIERldGFpbHMgaW46CiAgICBodHRwOi8vd3d3Lm1pY3Jvbi5jb20vcHJvZHVjdHMvcGFydGRldGFpbD9wYXJ0PU1UMjlDMkcyNE1BS0xBSkctNiUyMElUCgogICAgSW50aWFsIHNvbHV0aW9uIHByb3ZpZGVkIGJ5IFZpa3JhbSBQYW5kaXRhIDx2aWtyYW0ucGFuZGl0YUB0aS5jb20+CiAgICBJbmNsdWRlcyBwcmVsaW1pbmFyeSBzdWdnZXN0aW9ucyBmcm9tIFNjb3R0IFdvb2QKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaXNoYW50aCBNZW5vbiA8bm1AdGkuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjlmYjhiZTRmYzA3MTYyZmRmNmVkZjA0YmRjNzIzM2IwZTlhOTIwZQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IERlYyA2IDAyOjQwOjU1IDIwMDggLTA1MDAKCiAgICBOQU5EOiBtb3ZlIGJvYXJkX25hbmRfaW5pdCB0byBuYW5kLmgKCiAgICBSYXRoZXIgdGhhbiBwdXR0aW5nIHRoZSBmdW5jdGlvbiBwcm90b3R5cGUgZm9yIGJvYXJkX25hbmRfaW5pdCgpIGluIHRoZSBvbmUKICAgIHBsYWNlIHdoZXJlIGl0IGdldHMgY2FsbGVkLCBwdXQgaXQgaW50byBuYW5kLmggc28gdGhhdCBldmVyeSBwbGFjZSB0aGF0IGFsc28KICAgIGRlZmluZXMgaXQgZ2V0cyB0aGUgcHJvdG90eXBlLiAgT3RoZXJ3aXNlLCBlcnJvcnMgY2FuIGdvIHNpbGVudGx5IHVubm90aWNlZAogICAgc3VjaCBhcyB1c2luZyB0aGUgd3JvbmcgcmV0dXJuIHZhbHVlICh2b2lkIHJhdGhlciB0aGFuIGludCkgd2hlbiBkZWZpbmluZwogICAgdGhlIGZ1bmN0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFhZTM5ODYyMDQ0ZWJiMWU2ODIyMzRiNTFmOTQ0MjFlM2Y4NzFkNmEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBEZWMgMiAxMTowNjo0NyAyMDA4ICswMTAwCgogICAgT25lTkFORDogQWRkaXRpb25hbCBzeW5jIHdpdGggMi42LjI3CgogICAgLSBBZGQgc3VicGFnZSB3cml0ZSBzdXBwb3J0CiAgICAtIEFkZCBvbmVuYW5kX29vYl82NC8zMiBlY2NsYXlvdXQKCiAgICBUaGlzIGhhcyBiZWVuIG1pc3NpbmcgYW5kIHdpdGhvdXQgaXQgVUJJIGhhcyBzb21lIGluY29tcGF0aWJpbGllcyBpc3N1ZXMKICAgIHdpdGggdGhlIGN1cnJlbnQgKD49IDIuNi4yNykgTGludXgga2VybmVsIHZlcnNpb24uIHZpZF9oZHJfb2Zmc2V0IGlzCiAgICBwbGFjZWQgZGlmZmVyZW50bHkgKDIwNDggaW5zdGVhZCBvZiA1MTIpIHdpdGhvdXQgdGhpcyBmaXguCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTcxNGY1MWEyMDA5YmFhZWNmM2Q0ZjZlM2JkOGM0ZTkzYThkM2YyMwpBdXRob3I6IEt5dW5nbWluIFBhcmsgPGttcGFya0BpbmZyYWRlYWQub3JnPgpEYXRlOglUaHUgTm92IDEzIDE1OjE0OjMzIDIwMDggKzA5MDAKCiAgICBBZGQgbWFya2JhZCBmdW5jdGlvbgoKICAgIEFkZCBtaXNzaW5nIG1hcmtiYWQgZnVuY3Rpb24KICAgIElmIG5vdCwgaXQncyBoYW5nIHdoZW4gaXQgZW50ZXJlZCB0aGUgbXRkLT5tYXJrX2JhZCgpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgYzQzOGVhMTc1ZDhkMDAyYzEwNjNiN2E5NGIwYzBlMjY2NjhkMWFjOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE5vdiAxMiAxMzo0NzoyNCAyMDA4ICswMTAwCgogICAgT25lTkFORDogQmFkIGJsb2NrIGF3YXJlIHJlYWQvd3JpdGUgY29tbWFuZCBzdXBwb3J0CgogICAgVXBkYXRlIE9uZU5BTkQgY29tbWFuZCB0byBzdXBwb3J0IGJhZCBibG9jayBhd2FyZW5lc3MuCiAgICBBbHNvIGNoYW5nZSB0aGUgT25lTkFORCBjb21tYW5kIHN0eWxlIHRvIGJldHRlciBtYXRjaCB0aGUKICAgIE5BTkQgdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBBY2tlZC1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCA4Y2YxMWYzYWE3ODY3MzczMGU5ZWNiYmU0Yjc1MjEzYjUzZjIxMmM4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTm92IDExIDEwOjI5OjA5IDIwMDggKzAxMDAKCiAgICBPbmVOQU5EOiBTYXZlIHZlcnNpb25faWQgaW4gb25lbmFuZF9jaGlwIHN0cnVjdAoKICAgIFRoZSB2ZXJzaW9uICh2ZXJfaWQpIHdhcyBub3Qgc3RvcmVkIGluIHRoZSBvbmVuYW5kX2NoaXAgc3RydWN0dXJlIGFuZAogICAgYmVjYXVzZSBvZiB0aGlzIHRoZSBjb250aW51b3VzIGxvY2tpbmcgc2NoZW1lIGNvdWxkIGJlIGVuYWJsZWQgb24gc29tZQogICAgY2hpcHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDRmY2EzMzEwZDYxMWNjMGY1MWQ3Mjk1ZWYzNTU3YWZiZGJkOTFkYzMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMTEgMTA6Mjg6NTMgMjAwOCArMDEwMAoKICAgIE9uZU5BTkQ6IEZpeCBjb21waWxlciB3YXJuaW5ncwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxYWM1NzQ0ZTMzZWUwYWE2ZDZkZGFiM2I5OWY5ZTcwOTUzMTU2ZTY5CkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE5vdiA0IDE0OjU1OjA2IDIwMDggKzA4MDAKCiAgICBtcGM4M3h4OiBlbmFibGUgZUxCQyBOQU5EIHN1cHBvcnQgZm9yIE1QQzgzMTVFUkRCIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlZjA5MjFkNmIwNWFlYjkwMzQxNThmOWJlZjUzMjNkNmRhOWM5MjVlCkF1dGhvcjogS3l1bmdtaW4gUGFyayA8a21wYXJrQGluZnJhZGVhZC5vcmc+CkRhdGU6CVR1ZSBOb3YgNCAwOToyNDowNyAyMDA4ICswOTAwCgogICAgU3luYyB3aXRoIDIuNi4yNwoKICAgIFN5bmMgd2l0aCBPbmVOQU5EIGtlcm5lbCBjb2RlcwoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgZTdmMzI1YmU5ZWRlYjg0YmI0NTczMDE3NzZiYmFjMWY3MjU3ZGFmYwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIEphbiA1IDEzOjM1OjMxIDIwMDkgKzAxMDAKCiAgICBtaWNyb2JsYXplOiBVc2UgY2FjaGUgZnVuY3Rpb25zIChlc3BlY2lhbGx5IGNhY2hlIHN0YXR1cykKICAgIGluIHN5c3RlbXMgd2hpY2ggYXJlIGNvbmZpZ3VyZWQgd2l0aG91dCBmbGFzaAoKY29tbWl0IGU5YjczN2RlYjJjMzAxMjUzNjJkMjBlMjQxNzA2MTc0NzYwMjZlOTQKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBKYW4gNSAxMzoyOTozMiAyMDA5ICswMTAwCgogICAgbWljcm9ibGF6ZTogQWRkIGNhY2hlIGZsdXNoCgpjb21taXQgYjRmOGRkYTM1YmZhZDQ0N2I0MTA2ODI4MjMyNzA1YjJlODc4ZDE2OApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIEphbiA1IDEzOjI4OjQwIDIwMDkgKzAxMDAKCiAgICBtaWNyb2JsYXplOiBBZGQgYm9vdHVwIG1lc3NhZ2VzIHRvIGJvYXJkLmMKCmNvbW1pdCAzMzBlNTU0NTliYzk5ODMzNDFkYTZjMWQ1YzdmZTAwYTY2NDQzNmZlCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgRGVjIDE5IDEzOjI1OjU1IDIwMDggKzAxMDAKCiAgICBtaWNyb2JsYXplOiBDaGFuZ2UgbWljcm9ibGF6ZS1nZW5lcmljIGNvbmZpZyBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgoKY29tbWl0IDUyYTgyMmVkOWMzN2EyZWEwZWQxMTJhMjZkOGZmNWE2Y2IxYzZmMTAKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBEZWMgMTkgMTM6MTQ6MDUgMjAwOCArMDEwMAoKICAgIG1pY3JvYmxhemU6IFJlbmFtZSBtbDQwMSB0byBtaWNyb2JsYXplLWdlbmVyaWMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+Cgpjb21taXQgNjY3Nzg3NjE4MWNjODc3MmJjYThhMzcyNDc5YTUwMGQxNjBmMzk5MwpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDIwIDExOjU2OjExIDIwMDkgLTA2MDAKCiAgICA4M3h4OiBVc2UgdGhlIHByb3BlciBzZXF1ZW5jZSBmb3IgdXBkYXRpbmcgSU1NUi4KCiAgICBUaGlzIGVuc3VyZXMgdGhhdCBzdWJzZXF1ZW50IGFjY2Vzc2VzIHByb3Blcmx5IGhpdCB0aGUgbmV3IHdpbmRvdy4KCiAgICBUaGUgZGNiaSBkdXJpbmcgdGhlIE5BTkQgbG9vcCB3YXMgYWNjaWRlbnRhbGx5IHdvcmtpbmcgYXJvdW5kIHRoaXM7CiAgICBpdCdzIG5vIGxvbmdlciBuZWNlc3NhcnksIGFzIHRoZSBjYWNoZSBpcyBub3QgZW5hYmxlZC4KCiAgICBSZXBvcnRlZC1ieTogU3VjaGl0IExlcGNoYSA8U3VjaGl0LkxlcGNoYUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhiMzQ1NTdjNTQ2ZTVlOWYzNGViZjgzYzkzNDEzZGFkOTczZDkzZGYKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJVGh1IEphbiA4IDA0OjI2OjE5IDIwMDkgKzAzMDAKCiAgICBtcGM4M3h4OiBBZGQgUENJLUUgc3VwcG9ydCBmb3IgTVBDODM3WEVNRFMgYm9hcmRzCgogICAgTVBDODM3WEVNRFMgYm9hcmRzIGNhbiBzdXBwb3J0IFBDSS1FIHZpYSAiUENJLUUgcmlzZXIgY2FyZCIuIFRoZSBjYXJkCiAgICBwcm92aWRlcyB0d28gUENJLUUgKHgyKSBwb3J0cy4gVGhvdWdoLCBvbmx5IG9uZSBwb3J0IGNhbiBiZSB1c2VkIGluIHgyCiAgICBtb2RlLiBUd28gcG9ydHMgY2FuIGZ1bmN0aW9uIHNpbXVsdGFuZW91c2x5IGluIHgxIG1vZGUuCgogICAgUENJLUUgeDEveDIgbW9kZXMgY2FuIGJlIHN3aXRjaGVkIHZpYSAicGV4X3gyIiBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGYxMWUzNGIzMWE3YmUxMjRhMzIzOTY1M2YzM2FmOTUxMDUwMjA0NQpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglUaHUgSmFuIDggMDQ6MjY6MTcgMjAwOSArMDMwMAoKICAgIG1wYzgzeHg6IEFkZCBQQ0ktRSBzdXBwb3J0IGZvciBNUEM4MzE1RVJEQiBib2FyZHMKCiAgICBNUEM4MzE1RVJEQiBib2FyZHMgZmVhdHVyZXMgUENJLUUgeDEgYW5kIE1pbmkgUENJLUUgeDEgcG9ydHMuIExldCdzCiAgICBzdXBwb3J0IHRoZW0uCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGZkNjY0NmMwYjllYmU3ZTVhZmM0YWU0Yzc4MDk3ZDljZDMxN2E1ZTgKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJVGh1IEphbiA4IDA0OjI2OjEyIDIwMDkgKzAzMDAKCiAgICBtcGM4M3h4OiBBZGQgc3VwcG9ydCBmb3IgTVBDODN4eCBQQ0ktRSBjb250cm9sbGVycwoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBNUEM4M3h4IFBDSS1FIGNvbnRyb2xsZXJzIGluIFJvb3QgQ29tcGxleAogICAgbW9kZS4KCiAgICBUaGUgcGF0Y2ggaXMgYmFzZWQgb24gVG9ueSBMaSBhbmQgRGF2ZSBMaXUgd29ya1sxXS4KCiAgICBUaG91Z2ggdW5saWtlIHRoZSBvcmlnaW5hbCBwYXRjaCwgYnkgZGVmYXVsdCB3ZSBkb24ndCByZWdpc3RlciBQQ0ktRQogICAgYnVzZXMgZm9yIHVzZSBpbiBVLUJvb3QsIHdlIG9ubHkgY29uZmlndXJlIHRoZSBjb250cm9sbGVycyBmb3IgZnV0dXJlCiAgICB1c2UgaW4gb3RoZXIgT1NlcyAoTGludXgpLiBUaGlzIGlzIGRvbmUgYmVjYXVzZSB3ZSBkb24ndCBoYXZlIGVub3VnaAogICAgb2Ygc3BhcmUgQkFUcyB0byBtYXAgYWxsIHRoZSBQQ0ktRSByZWdpb25zLgoKICAgIFRvIGFjdHVhbGx5IHVzZSBQQ0ktRSBpbiBVLUJvb3QsIHVzZXJzIHNob3VsZCBleHBsaWNpdGx5IGRlZmluZQogICAgQ09ORklHXzgzWFhfR0VORVJJQ19QQ0lFX1JFR0lTVEVSX0hPU0VTIHN5bWJvbCBpbiB0aGUgYm9hcmQgZmlsZS4gQW5kCiAgICBvbmx5IHRoZW4gVS1Cb290IHdpbGwgYWJsZSB0byBhY2Nlc3MgUENJLUUsIGJ1dCBhdCB0aGUgY29zdCBvZiBkaXNhYmxlZAogICAgYWRkcmVzcyB0cmFuc2xhdGlvbi4KCiAgICBbMV0gaHR0cDovL2xpc3RzLmRlbnguZGUvcGlwZXJtYWlsL3UtYm9vdC8yMDA4LUphbnVhcnkvMDI3NjMwLmh0bWwKCiAgICBTaWduZWQtb2ZmLWJ5OiBUb255IExpIDx0b255LmxpQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KICAgIEFja2VkLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4OGVjZjU1Y2FiZDdhZWEyOGZlODA5MzcyMGUyMDhmNTNjY2ZkY2Y1CkF1dGhvcjogSXJhIFNueWRlciA8aXdzQG92cm8uY2FsdGVjaC5lZHU+CkRhdGU6CU1vbiBKYW4gMTIgMTM6MzM6MTcgMjAwOSAtMDgwMAoKICAgIE1QQzgzNDlFTURTOiBkbyBub3Qgc2V0dXAgdW51c2VkIFBDSSBjbG9jayBvdXRwdXRzIGluIFBDSSBhZ2VudCBtb2RlCgogICAgV2hlbiBydW5uaW5nIGluIFBDSSBhZ2VudCBtb2RlLCB0aGUgUENJX0NMS19PVVQgc2lnbmFscyBhcmUgbm90IHVzZWQsIHNvIGRvCiAgICBub3QgZW5hYmxlIHRoZW0uIFNlZSB0aGUgTVBDODM0OUVBIFJlZmVyZW5jZSBNYW51YWwsIFNlY3Rpb24gNC40LjIKICAgICJDbG9ja2luZyBpbiBQQ0kgQWdlbnQgTW9kZSIuCgogICAgU2lnbmVkLW9mZi1ieTogSXJhIFcuIFNueWRlciA8aXdzQG92cm8uY2FsdGVjaC5lZHU+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc1ZjM1MjA5ZjcwMmJiMjY4MjY4NTVlZDhjOGU0ZDEwOGFiNWY0MTIKQXV0aG9yOiBJcmEgU255ZGVyIDxpd3NAb3Zyby5jYWx0ZWNoLmVkdT4KRGF0ZToJTW9uIEphbiAxMiAxMzozMjoyNiAyMDA5IC0wODAwCgogICAgODN4eDogUENJIGFnZW50IG1vZGUgZml4ZXMgZm9yIG11bHRpLWJvYXJkIHN5c3RlbXMKCiAgICBXaGVuIHJ1bm5pbmcgYSBzeXN0ZW0gd2l0aCAyIG9yIG1vcmUgTVBDODM0OUVNRFMgYm9hcmRzIGluIFBDSSBhZ2VudCBtb2RlLAogICAgdGhlIGJvYXJkcyB3aWxsIGxvY2sgdXAgdGhlIFBDSSBidXMgYnkgc2Nhbm5pbmcgYWdhaW5zdCBlYWNoIG90aGVyLgoKICAgIFRoZSBib2FyZHMgbG9jayBhZ2FpbnN0IGVhY2ggb3RoZXIgYnkgdHJ5aW5nIHRvIGFjY2VzcyB0aGUgUENJIGJ1cyBiZWZvcmUKICAgIGNsZWFyaW5nIHRoZWlyIGNvbmZpZ3VyYXRpb24gbG9jayBiaXQuIEJvdGggYm9hcmRzIGVuZCB1cCBpbiBhIGxvb3AsCiAgICBzZW5kaW5nIGFuZCByZWNlaXZpbmcgIlRhcmdldCBOb3QgUmVhZHkiIG1lc3NhZ2VzIGZvcmV2ZXIuCgogICAgV2hlbiBydW5uaW5nIGluIFBDSSBhZ2VudCBtb2RlLCB0aGUgc2Nhbm5pbmcgbm93IHRha2VzIHBsYWNlIGFmdGVyIHRoZQogICAgYm9hcmRzIGhhdmUgY2xlYXJlZCB0aGVpciBjb25maWd1cmF0aW9uIGxvY2sgYml0LgoKICAgIEFsc28sIGFkZCBhIG1pc3NpbmcgZGVjbGFyYXRpb24gdG8gdGhlIG1wYzgzeHguaCBoZWFkZXIgZmlsZSwgZml4aW5nIGEKICAgIGJ1aWxkIHdhcm5pbmcuCgogICAgU2lnbmVkLW9mZi1ieTogSXJhIFcuIFNueWRlciA8aXdzQG92cm8uY2FsdGVjaC5lZHU+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ1NWE0NjkxNWI4Mjg5NmNjMjA3MGViMzI2ZDA3NTU1NWMyYmM1ODAKQXV0aG9yOiBSb24gTWFkcmlkIDxyb25fbWFkcmlkQHNiY2dsb2JhbC5uZXQ+CkRhdGU6CUZyaSBEZWMgMTIgMTM6MTI6NDUgMjAwOCAtMDgwMAoKICAgIG1wYzgzeHg6IFNpemUgb3B0aW1pemF0aW9uIG9mIHN0YXJ0LlMKCiAgICBDdXJyZW50bHkgdGhlcmUgYXJlIGluIGV4Y2VzcyBvZiAxMDAgYnl0ZXMgbG9jYXRlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBpbWFnZQogICAgYnVpbHQgYnkgc3RhcnQuUyB0aGF0IGFyZSBub3QgYmVpbmcgdXRpbGl6ZWQuICBUaGlzIHBhdGNoIG1vdmVzIGEgZmV3IGZ1bmN0aW9ucwogICAgaW50byB0aGlzIHBhcnQgb2YgdGhlIGltYWdlLiAgVGhpcyB3aWxsIGNyZWF0ZSBhIGdyZWF0ZXIgbnVtYmVyIG9mICphdmFpbGFibGUqCiAgICBieXRlcyB0aGF0IGNhbiBiZSB1c2VkIGJ5IGJvYXJkIHNwZWNpZmljIGNvZGUgaW4gTkFORCBidWlsZHMgYW5kIHdpbGwgZGVjcmVhc2UKICAgIHRoZSBzaXplIG9mIHRoZSBhc3NlbWJsZWQgY29kZSBpbiBvdGhlciBidWlsZHMuCgogICAgU2lnbmVkLW9mZi1ieTogUm9uIE1hZHJpZCA8cm9uX21hZHJpZEBzYmNnbG9iYWwubmV0PgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MmQxNWU3MDViYzM5ODM4ODQxMDVjYjc3NTVjN2JhODBlNzRhMGE1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAyMSAyMzowODoxMiAyMDA5ICswMTAwCgogICAgUHJlcGFyZSB2MjAwOS4wMQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNjM1ZTVmOGZjODIzNjVlNmU5NzM0YjMxMzJiYzk1MTM1YTZkZTY3OQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBKYW4gMTggMjE6Mzc6NDggMjAwOSArMDEwMAoKICAgIFByZXBhcmUgMjAwOS4wMS1yYzMKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0Y2RhNDM3ODk4Zjc4NzM3NTJmMDIwMTc1N2NkMzNmMTIxOTZjZTg3CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgSmFuIDE3IDEzOjMyOjQyIDIwMDkgLTA1MDAKCiAgICBidWlsZCBzeXN0ZW06IHRyZWF0IGFsbCBEYXJ3aW4ncyBhbGlrZQoKICAgIFRoZSB4ODYgYmFzZWQgdmVyc2lvbiBvZiBEYXJ3aW4gYmVoYXZlcyB0aGUgc2FtZSBxdWlya3kgd2F5IGFzIHRoZSBwb3dlcnBjCiAgICBEYXJ3aW4sIHNvIG9ubHkgY2hlY2sgSE9TVE9TIHdoZW4gc2V0dGluZyB1cCBEYXJ3aW4gd29ya2Fyb3VuZHMuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGMwODhhMTA4Yzc1ZGI1NjVlMDcyOTJmZDY2OGRmYTU0OTFlODViYzIKQXV0aG9yOiBQZXRlciBLb3JzZ2FhcmQgPGphY21ldEBzdW5zaXRlLmRrPgpEYXRlOglXZWQgSmFuIDE0IDEzOjUyOjI0IDIwMDkgKzAxMDAKCiAgICBmZHRfcmVzaXplKCk6IGZpeCBhY3R1YWxzaXplIGNhbGN1bGF0aW9ucyB3aXRoIHVuYWxpZ25lZCBibG9icwoKICAgIFRoZSBjb2RlIGluIGZkdF9yZXNpemUoKSB0byBleHRlbmQgdGhlIGZkdCBzaXplIHRvIGVuZCBvbiBhIHBhZ2UgYm91bmRhcnkKICAgIGlzIHdyb25nIGZvciBmZHQncyBub3QgbG9jYXRlZCBhdCBhbiBhZGRyZXNzIGFsaWduZWQgb24gYSBwYWdlIGJvdW5kYXJ5LgogICAgV2hhdCdzIGV2ZW4gd29yc2UsIHRoZSBjb2RlIHdvdWxkIG1ha2UgYWN0dWFsc2l6ZSBzaHJpbmsgcmF0aGVyIHRoYW4gZ3JvdwogICAgaWYgKGJsb2IgJiAweGZmZikgd2FzIGJpZ2dlciB0aGFuIHRoZSBhbW91bnQgb2YgcGFkZGluZyBhZGRlZCBieSBBTElHTigpLAogICAgY2F1c2luZyBmZHRfYWRkX21lbV9yc3YgdG8gZmFpbC4KCiAgICBGaXggaXQgYnkgYWxpZ25pbmcgZW5kIGFkZHJlc3MgKGJsb2IgKyBzaXplKSB0byBhIHBhZ2UgYm91bmRhcnkgaW5zdGVhZC4KICAgIEZvciBhbGlnbmVkIGZkdCdzIHRoaXMgaXMgZXF1aXZhbGVudCB0byB3aGF0IHdlIGhhZCBiZWZvcmUuCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgS29yc2dhYXJkIDxqYWNtZXRAc3Vuc2l0ZS5kaz4KCmNvbW1pdCBmYWRhZDE1NzNmYjE2YzkwMDI1ZjA4YTI4NjFkNjA0N2QwOTNjYmE3CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglGcmkgSmFuIDkgMDQ6Mzg6MTcgMjAwOSAtMDUwMAoKICAgIG5jYjogdXNlIHNvY2tsZW5fdAoKICAgIFRoZSByZWN2ZnJvbSgpIGZ1bmN0aW9uIHRha2VzIGEgc29ja2xlbl90LCBub3QgYW4gaW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBmYzgzYzkyNzNjZWM2ZTZlNTQyZjRhMGVhM2I2NTNiN2QwNTEzZmZhCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIEphbiAxMSAxNjozNToxNiAyMDA5ICswMTAwCgogICAgc2g6IHNlcmlhbDogdXNlIHJlYWR4L3dyaXRleCBhY2Nlc3NvcnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDllMWZhNjI4YmRiNjQ3NDU4MTFjZGQyNmM0Zjk1Mzg0NmMwNzYxODAKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gSmFuIDExIDE2OjM1OjE1IDIwMDkgKzAxMDAKCiAgICBzaDogc2VyaWFsOiBjb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgYzk5MzVjOTkyNTc1OTIyYjdlZjEzZWVjMDY1NmVkODY2NWQzMjRlMwpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJU3VuIEphbiAxMSAxNzo0ODo1NiAyMDA5ICswOTAwCgogICAgc2g6IEZpeCBjb21waWxlIGVycm9yIG9uIGxvd2xldmVsX2luaXQgZmlsZQoKICAgIGxvd2xldmVsX2luaXQgb2YgU0ggd2FzIGNvcnJlY3RlZCB0byB1c2UgdGhlIHdyaXRlL3JlYWRYWCBtYWNyby4KICAgIEhvd2V2ZXIsIHRoZXJlIHdhcyBhIHByb2JsZW0gdGhhdCB3YXMgbm90IGFibGUgdG8gYmUgY29tcGlsZWQgcGFydGlhbGx5LgogICAgVGhpcyBwYXRjaCBjb3JyZWN0ZWQgdGhpcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgYTViMDRkMDBiZmViOTQwYzYyMjMyOTcyY2U2NDRkNTBiNDU3OTdmOQpBdXRob3I6IEtpZXJhbiBCaW5naGFtIDxraWVyYW5iaW5naGFtQGdtYWlsLmNvbT4KRGF0ZToJVHVlIERlYyAzMCAwMToxNjowMyAyMDA4ICswMDAwCgogICAgc2g6IEZpeCB1cCByc2s3MjAzIHRhcmdldCBmb3Igb3V0IG9mIHRyZWUgYnVpbGQKCiAgICBGaXggdXAgcnNrNzIwMyB0YXJnZXQgdG8gYnVpbGQgc3VjY2Vzc2Z1bGx5IHVzaW5nIG91dC1vZi10cmVlIGJ1aWxkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpZXJhbiBCaW5naGFtIDxrYmluZ2hhbUBtcGMtZGF0YS5jby51az4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBmN2U3OGYzYjc0YWFlOWNhY2EyOTk3YmFkODY1YTcyMzM4MzI2YzBhCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IERlYyAyMCAxOToyOTo0OSAyMDA4ICswMTAwCgogICAgc2g6IHVzZSB3cml0ZXs4LDE2LDMyfSBpbiBhbGwgbG93bGV2ZWxfaW5pdAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgZTQ0MzA3Nzk2MjNhZjUwMGRlMWNlZTc4OTJjMzc5ZjA3ZWY1OTgxMwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBEZWMgMjAgMTk6Mjk6NDggMjAwOCArMDEwMAoKICAgIHNoOiBsb3dsZXZlbF9pbml0IGNvZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA4NWNiMDUyZWU0MTY3NWNhMzYxZTZhNGM2OTQ1NWRjNzE1YzhmMmQ5CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IERlYyAyMCAxNToyNzo0NSAyMDA4ICswMTAwCgogICAgc2g6IHVwZGF0ZSBzaDIvc2gyYSB0aW1lciBjb2Rpbmcgc3R5bGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDFlMTVmZjk5OTMyMmU4MWFmNGMwYzBjNTQ4OTA4ZjM4OTQ0YmEzOWMKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgRGVjIDIwIDE1OjI1OjIyIDIwMDggKzAxMDAKCiAgICBzaDogdXBkYXRlIHNoIHRpbWVyIGNvZGluZyBzdHlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMGUzZWNlMzM4MDFlMzc3YmU2N2ZmYTI5ZjA4MzQyMWFkODIwZjI4YgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMTQgMjM6MjY6MDUgMjAwOSArMDEwMAoKICAgIFByZXBhcmUgMjAwOS4wMS1yYzIKCiAgICBVcGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZTkyYzlhODYwZTQ0YzE0NTEzYzg5MDljZTQyOTllMjUzYTc3NWVlYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMTQgMjI6MzU6MzAgMjAwOSArMDEwMAoKICAgIGNwdS9tcGM4MjR4L01ha2VmaWxlOiBmaXggd2FybmluZyB3aXRoIHBhcmFsbGVsIGJ1aWxkcwoKICAgIFBhcmFsbGVsIGJ1aWxkcyB3b3VsZCBvY2Nhc2lvbmFsbHkgaXNzdWUgdGhpcyBidWlsZCB3YXJuaW5nOgoKCWxuOiBjcmVhdGluZyBzeW1ib2xpYyBsaW5rIGBjcHUvbXBjODI0eC9iZWRidWdfNjAzZS5jJzogRmlsZSBleGlzdHMKCiAgICBVc2UgImxuIC1zZiIgYXMgcXVpY2sgd29yayBhcm91bmQgZm9yIHRoZSBpc3N1ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDNiYTYwNWQ0YmVlYzY0OTQzODUzOWU3ZGY5N2I1ZmVkYjI2NTkyZmIKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIEphbiAyIDEyOjE4OjQ5IDIwMDkgKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBsb2FkcGNpIGNvbW1hbmQgdG8gZXNkJ3MgQ1BDSTQwNTIgYW5kIENQQ0k0MDVBQiBib2FyZHMKCiAgICBUaGlzIHBhdGNoIGFkZHMgZXNkJ3MgbG9hZHBjaSBCU1AgY29tbWFuZCB0byBDUENJNDA1MiBhbmQKICAgIENQQ0k0MDVBQiBib2FyZC4gVGhpcyByZXF1aXJlcyBDT05GSUdfQ01EX0JTUCBhbmQgQ09ORklHX1BSQU0uCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNjAwZmU0NmZiM2RhYjdmMDc2MDRmOTAwOTkwNGYzMTU4NDQxNTExNApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgSmFuIDIgMTI6MTg6MTIgMjAwOSArMDEwMAoKICAgIHBwYzR4eDogRGlzYWJsZSBwY2kgbm9kZSBpbiBkZXZpY2UgdHJlZSBvbiBDUENJNDA1IHBjaSBhZGFwdGVycwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGY2YTFmNDkwZDIyNGM2MDBhMDkxMzdlNThkMTAyNmQxNTBiOGU2NzkKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIEphbiAyIDEyOjE3OjM2IDIwMDkgKzAxMDAKCiAgICBwcGM0eHg6IENsZWFudXAgQ1BDSTQwNSBib2FyZCBjb2RlCgogICAgVGhpcyBwYXRjaCBjbGVhbnMgdXAgQ1BDSTQwNSBib2FyZCBzdXBwb3J0OgogICAgLSB3cmFwIGxvbmcgbGluZXMKICAgIC0gdW5pZmljYXRpb24gb2Ygc3BhY2VzIGluIGZ1bmN0aW9uIGNhbGxzCiAgICAtIHJlbW92ZSBkZWFkIGNvZGUKCiAgICBVc2UgY29ycmVjdCBpbyBhY2Nlc3NvcnMgb24gcGVyaXBoZXJhbHMuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZmNlZWJiNDVhMGI5N2U5MmY5ODg5ODYxZjhjM2I5Y2I4ODVlNzA2ZgpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgSmFuIDIgMTI6MTY6MzUgMjAwOSArMDEwMAoKICAgIHBwYzR4eDogRW5hYmxlIGF1dG8gUlM0ODUgbW9kZSBvbiBQTFU0MDUgYm9hcmRzCgogICAgVGhpcyBwYXRjaCB0dXJucyBvbiB0aGUgYXV0byBSUzQ4NSBtb2RlIGluIHRoZSAybmQgZXh0ZXJuYWwKICAgIHVhcnQgb24gUExVNDA1IGJvYXJkcy4gVGhpcyBpcyBhIHNwZWNpYWwgbW9kZSBvZiB0aGUgdXNlZAogICAgRXhhciBYUjE2QzI4NTAgdWFydC4gQmVjYXVzZSB0aGVzZSBib2FyZHMgb25seSBoYXZlIGEgNDg1IHBoeXNpY2FsCiAgICBsYXllciBjb25uZWN0ZWQgaXQncyBhIGdvb2QgaWRlYSB0byB0dXJuIGl0IG9uIGJ5IGRlZmF1bHQuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1mQGVzZC5ldT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBiNWY2NWRmYTlhYThlMDY4ZTYyYWJhNDczM2RjNGZkOTdiMWQ5YmY2CkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAxMyAxNjoyOToyOCAyMDA5IC0wNTAwCgogICAgU29tZSBjaGFuZ2VzIG9mIFRMQiBlbnRyeSBzZXR0aW5nIGZvciBNUEM4NTcyRFMKCiAgICAtIE1vdmUgdGhlIFRMQiBlbnRyeSBvZiBQSVhJU19CQVNFIGZyb20gVExCMCB0byBUTEIxWzhdLCBiZWNhdXNlIGluIENBTVAgbW9kZSwKICAgIGFsbCB0aGUgVExCMCBlbnRyaWVzIHdpbGwgYmUgaW52YWxpZGF0ZWQgYWZ0ZXIgY3B1MSBicmluZ3MgdXAga2VybmVsLCB0aHVzIGNwdTAKICAgIGNhbiBub3QgYWNjZXNzIFBJWElTX0JBU0UgYW55bW9yZSAoYW55IGFjY2VzcyB3aWxsIGNhdXNlIERhdGFUTEJFcnJvciBleGNlcHRpb24pCgogICAgLSBTZXQgQ09ORklHX1NZU19ERFJfVExCX1NUQVJUIHRvIDkgZm9yIE1QQzg1NzJEUyBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk1MDI2NDMxN2ViOTU5NGIyYjVlZTJmYjY1MjA2MjAwYTFjNjAwN2EKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDEzIDE2OjI5OjIyIDIwMDkgLTA1MDAKCiAgICBDaGFuZ2UgRERSIHRsYiBzdGFydCBlbnRyeSB0byBDT05GSUcgcGFyYW0gZm9yIDg1eHgKCiAgICBTbyB0aGF0IHdlIGNhbiBsb2NhdGUgdGhlIEREUiB0bGIgc3RhcnQgZW50cnkgdG8gdGhlIHZhbHVlIG90aGVyIHRoYW4gOC4gQnkKICAgIGRlZmF1bHQsIGl0IGlzIHN0aWxsIDguCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2ZDNhMTBmNzNlY2U3ZmZiNzM2ODkwYzEwZTAyMzIyMjYxMmE0YWEwCkF1dGhvcjogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSmFuIDkgMTY6MDI6MzUgMjAwOSArMDgwMAoKICAgIENoYW5nZSBQQ0lFMSYyIGRlY2lpZGUgbG9naWMgb24gTVBDODU0NERTIGJvYXJkIG1vcmUgcmVhZGFibGUKCiAgICBUaGUgSU8gcG9ydCBzZWxlY3Rpb24gZm9yIE1QQzg1NDREUyBib2FyZDoKICAgICBQb3J0CQkJY2ZnX2lvX3BvcnRzCiAgICAgUENJRTEJCTB4MiwgMHgzLCAweDQsIDB4NSwgMHg2LCAweDcKICAgICBQQ0lFMgkJMHg0LCAweDUsIDB4NiwgMHg3CiAgICAgUENJRTMJCTB4NiwgMHg3CiAgICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBQQ0lFMTIgYW5kIFBDSUUyIGxvZ2ljIG1vcmUgcmVhZGFibGUuCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDI4ZTExNjgxMWQyOGEwMzE2NjBmMWFkOWUyMGFjMTI5M2IzYzVjNwpBdXRob3I6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEphbiA5IDE2OjAxOjUyIDIwMDkgKzA4MDAKCiAgICBQQ0lFMiBhbmQgUENJRTMgYXJlIGRlY2lkZWQgYnkgY29ycmVzcG9uaW5nIGJpdCBpbiBkZXZkaXNyIGluc3RlYWQgb2YgUENJRTEgYml0CgogICAgUENJRTIgYW5kIFBDSUUzIHNob3VsZCBiZSBkZWNpZGVkIGJ5IGNvcnJlc3BvbmluZyBiaXQgaW4gZGV2ZGlzciBpbnN0ZWFkIG9mCiAgICBQQ0lFMSBiaXQuCiAgICBPbiBNUEM4NTcyRFMgYm9hcmQsIFBDSUUgcmVmZXJzIHRvIFBDSUUxLgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDlhZmMyZWYwMzA3YWVjZjUyNDgyZGY2N2MzMWI3NWQ1ZjllNjZiNDcKQXV0aG9yOiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKYW4gOSAxNjowMDo1NSAyMDA5ICswODAwCgogICAgRml4IElPIHBvcnQgc2VsZWN0aW9uIGlzc3VlIG9uIE1QQzg1NDREUyBhbmQgTVBDODU3MkRTIGJvYXJkcwoKICAgIFRoZSBJTyBwb3J0IHNlbGVjdGlvbiBpcyBub3QgY29ycmVjdCBvbiBNUEM4NTcyRFMgYW5kIE1QQzg1NDREUyBib2FyZC4KICAgICBUaGlzIHBhdGNoIGZpeGVzIHRoaXMgaXNzdWUuCiAgICAgRm9yIE1QQzg1NzIKICAgICBQb3J0CQkJY2ZnX2lvX3BvcnRzCiAgICAgUENJRTEJCTB4MiwgMHgzLCAweDcsIDB4YiwgMHhjLCAweGYKICAgICBQQ0lFMgkJMHgzLCAweDcKICAgICBQQ0lFMwkJMHg3CgogICAgRm9yIE1QQzg1NDQKICAgIFBvcnQJCQljZmdfaW9fcG9ydHMKICAgIFBDSUUxCQkweDIsIDB4MywgMHg0LCAweDUsIDB4NiwgMHg3CiAgICBQQ0lFMgkJMHg0LCAweDUsIDB4NiwgMHg3CiAgICBQQ0lFMwkJMHg2LCAweDcKICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzZTNmZmZlM2JhZjNiZWZkZTI4N2ZlYzFmY2JmZTU1MDUyZmI4OTQ2CkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5YkBrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgRGVjIDMgMjI6MzY6NDQgMjAwOCAtMDYwMAoKICAgIG1wYzg2MTBocGNkOiBGaXggUENJIG1hcHBpbmcgY29uY2VwdHMKCiAgICBSZW5hbWUgX0JBU0UgdG8gX0JVUywgYXMgaXQncyBhY3R1YWxseSBhIFBDSSBidXMgYWRkcmVzcywKICAgIHNlcGFyYXRlIHZpcnR1YWwgYW5kIHBoeXNpY2FsIGFkZHJlc3NlcyBpbnRvIF9WSVJUIGFuZCBfUEhZUywKICAgIGFuZCB1c2UgZWFjaCBhcHBvcHJpYXRlbHkuCVRoaXMgbWFrZXMgdGhlIGNvZGUgZWFzaWVyIHRvIHJlYWQKICAgIGFuZCB1bmRlcnN0YW5kLCBhbmQgZmFjaWxpdGF0ZXMgbWFwcGluZyBjaGFuZ2VzIGdvaW5nIGZvcndhcmQuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5YkBrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDc5ZTQzNmNhZDNiNGE3ZGI4ODQwOGMzZjA1MTc1MDI4ZjMwZDcwMGQKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3liQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBEZWMgMyAyMjozNjoyNiAyMDA4IC0wNjAwCgogICAgc2JjODY0MWQ6IEZpeCBQQ0kgbWFwcGluZyBjb25jZXB0cwoKICAgIFJlbmFtZSBfQkFTRSB0byBfQlVTLCBhcyBpdCdzIGFjdHVhbGx5IGEgUENJIGJ1cyBhZGRyZXNzLAogICAgc2VwYXJhdGUgdmlydHVhbCBhbmQgcGh5c2ljYWwgYWRkcmVzc2VzIGludG8gX1ZJUlQgYW5kIF9QSFlTLAogICAgYW5kIHVzZSBlYWNoIGFwcG9wcmlhdGVseS4JVGhpcyBtYWtlcyB0aGUgY29kZSBlYXNpZXIgdG8gcmVhZAogICAgYW5kIHVuZGVyc3RhbmQsIGFuZCBmYWNpbGl0YXRlcyBtYXBwaW5nIGNoYW5nZXMgZ29pbmcgZm9yd2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3liQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYTlmM2FjYmNkMDdkYTcyYjU0NDZjZTU1NzUzMWEzZWQ4YjhiZWZmMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBKYW4gMTIgMTQ6NTA6MzUgMjAwOSArMDEwMAoKICAgIE1QQzg2eHg6IGZpeCBidWlsZCB3YXJuaW5ncwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMDMyYTFjOTM0ZWY0ZGMwMDMyODFmNTczMDJiNmU2OTMwNjJjMTg2OApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEphbiA1IDE2OjA5OjQ0IDIwMDkgLTA1MDAKCiAgICBiZjUzNy1zdGFtcC9uYW5kOiBmaXggYm9hcmRfbmFuZF9pbml0IHByb3RvdHlwZQoKICAgIFRoZSBib2FyZF9uYW5kX2luaXQoKSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIGFuIGludCwgbm90IHZvaWQuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDY4N2Y5NTJlNDExOTU5NGFiOTEzYmUxMWM5MGY3ZjAxOGMyYTdhNzkKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVRodSBEZWMgMTEgMDc6MDQ6NDggMjAwOCAtMDUwMAoKICAgIEJsYWNrZmluOiBkcm9wIENPTkZJR19TUEkgaGFuZGxpbmcgaW4gYm9hcmQgaW5pdAoKICAgIFRoZSBlZXByb20gU1BJIGluaXQgZnVuY3Rpb25zIGFyZSBkdXBsaWNhdGVkIGFzIHRoZSBjb21tb24gY29kZSBhbHJlYWR5CiAgICBleGVjdXRlcyB0aGVzZSBmb3IgdXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGU3ZTY4NGIxMGQ3M2EzMDM5MDIyMDg1OTRjN2MzZTdlMGQ3NTMyODIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CUZyaSBPY3QgMjQgMTc6NTE6NTcgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBmaXggb3V0LW9mLXRyZWUgYnVpbGRpbmcgd2l0aCBsZHNjcmlwdHMKCiAgICBNYW55IG9mIHRoZSBCbGFja2ZpbiBib2FyZCBsaW5rZXIgc2NyaXB0cyBhcmUgcHJlcHJvY2Vzc2VkLCBzbyBtYWtlIHN1cmUgd2UKICAgIG91dHB1dCB0aGUgbGlua2VyIHNjcmlwdCBpbnRvIHRoZSBidWlsZCB0cmVlIHJhdGhlciB0aGFuIHRoZSBzb3VyY2UgdHJlZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYjllZWNjMzQyZjc2N2I1MGUxNDc2ZmJjMWFhZDdkODhkZDRjZTVlYgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJRnJpIE9jdCAyNCAxNzo0ODo1NCAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGZpeCBsaW5rZXIgc2NyaXB0cyB0byB3b3JrIHdpdGggLS1nYy1zZWN0aW9ucwoKICAgIE1ha2Ugc3VyZSBhbGwgLnRleHQgc2VjdGlvbnMgZ2V0IHB1bGxlZCBpbiBhbmQgdGhlIGVudHJ5IHBvaW50IGlzIHByb3Blcmx5CiAgICByZWZlcmVuY2VkIHNvIHRoZXkgZG9uJ3QgZ2V0IGRpc2NhcmRlZCB3aGVuIGxpbmtpbmcgd2l0aCAtLWdjLXNlY3Rpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA1MDlmYzU1M2JjNjA4N2E2ZjcwNWIzYmY1MmYzOTUwZDdkMWVhYTU4CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgT2N0IDExIDIwOjQ1OjQ0IDIwMDggLTA0MDAKCiAgICBCbGFja2Zpbjogc2V0IHByb3BlciBMRFJGTEFHUyBmb3IgcGFyYWxsZWwgYm9vdGluZyBMRFJzCgogICAgSW4gb3JkZXIgdG8gYm9vdCBhbiBMRFIgb3V0IG9mIHBhcmFsbGVsIGZsYXNoLCB0aGUgbGRyIHV0aWxpdHkgbmVlZHMgYSBmZXcKICAgIGZsYWdzIHRvIHRlbGwgaXQgdG8gZ2VuZXJhdGUgdGhlIHJpZ2h0IGhlYWRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgM2RkOTM5NWEwZDdjZTY5YTMzNWQwZTc0M2MwNGI5Y2FlZGQ2ODFkMwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVR1ZSBKYW4gNiAyMTo0MTo1OSAyMDA5ICswMTAwCgogICAgYXQ5MXJtOTIwMDogbW92ZSBkZWZpbmUgZnJvbSBsb3dsZXZlbF9pbml0IHRvIGhlYWRlcgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOGE0ODY4NmZhYzIwMzAyODc3NjVmMTk3MGVhMDQ2YmQ1NzM0YjczMwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBKYW4gMyAxNzoyMjoyNiAyMDA5ICswMTAwCgogICAgbTUwMXNrOiBtb3ZlIHRvIHRoZSBjb21tb24gbWVtb3J5IHNldHVwCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBkNDgxYzgwZDc4Zjk1NDEzM2MwMzVkYWU2YzdkMjJkZTM2MjU3OTVkCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IEphbiAzIDE3OjIyOjI1IDIwMDkgKzAxMDAKCiAgICBhdDkxcm05MjAwOiByZW5hbWUgbG93bGV2ZWwgaW5pdCB2YWx1ZSB0byBDT05GSUdfU1lTXwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNGUxNzBiMTY2MjUyOTFhYTEwZDBkOWFiYzNmMzRlOGE1OTQ1ZDE1NwpBdXRob3I6IE5pY29sYXMgRmVycmUgPG5pY29sYXMuZmVycmVAYXRtZWwuY29tPgpEYXRlOglUdWUgSmFuIDYgMjE6MTM6MTQgMjAwOSArMDEwMAoKICAgIGF0OTE6IGFkZCBhdDkxc2FtOXhlZWsgYm9hcmQgc3VwcG9ydAoKICAgIEF0OTFzYW05eGUgaXMgYmFzaWNhbGx5IGFuIGF0OTFzYW05MjYwIHdpdGggZW1iZWRkZWQgZmxhc2guIFdlIGNhbiBtYW5hZ2UKICAgIGl0IGFzIGFub3RoZXIgZW50cnkgZm9yIGF0OTFzYW05MjYwIGluIHRoZSBNYWtlZmlsZS4KCiAgICBDaGVjayBkb2N1bWVudGF0aW9uIGF0IDoKICAgIGh0dHA6Ly93d3cuYXRtZWwuY29tL2R5bi9wcm9kdWN0cy9wcm9kdWN0X2NhcmQuYXNwP3BhcnRfaWQ9NDI2MwoKICAgIFNpZ25lZC1vZmYtYnk6IE5pY29sYXMgRmVycmUgPG5pY29sYXMuZmVycmVAYXRtZWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA5ZmZkNTNkYjg3MGE3ZGExMzRmOWExYWU3Njg5NGE2YjMxMjM3YmU1CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIEphbiA2IDIxOjE1OjU3IDIwMDkgKzAxMDAKCiAgICBmaXggYm1wX2xvZ28uaCBtYWtlIGRlcGVuZGVuY2llcyB0byBhbGxvdyBwYXJhbGxlbCBidWlsZAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZTEyZDlhOGZiNDhkMjQxNzZlZmZmY2NjMDcyYjQ0NWU2MGEzYWZlNApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBKYW4gMyAxNzoyMjoyNCAyMDA5ICswMTAwCgogICAgYXQ5MTogRml4IEF0bWVsJ3MgYXQ5MXNhbTkgYm9hcmRzIG91dCBvZiB0cmVlIGJ1aWxkCgogICAgaW50cm9kdWNlZCBpbiBjb21taXQgODlhN2E4N2YwODRjCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAwNjY4MjM2YmFmYWExYzExYzUyMTY1MmEyZmFjZWJjNzRiZWVjYmYwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIERlYyAzMCAyMjo1NjoxMSAyMDA4ICswMTAwCgogICAgUkVBRE1FOiB1cGRhdGUgbWFpbGluZyBsaXN0IG5hbWUgYW5kIGhpdHMgdG8gcGF0Y2ggc3VibWlzc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGQ5MDExZjliNzU1NjFhMGJkOTI1NDkzNGMyYmIyYmM3OTlkNGY2NDUKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglUdWUgRGVjIDIzIDE2OjMyOjAxIDIwMDggLTA2MDAKCiAgICA4NXh4OiBFbmFibGUgaW5ib3VuZCBQQ0kgY29uZmlnIGN5Y2xlcyBmb3IgWC1FUyBib2FyZHMgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgMWYwM2NiZmFlMjIxYjI0YmExMzQxYTBhM2Y2MmZmMDFjNWM4NzRkZgpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CVR1ZSBEZWMgMjMgMTY6MzI6MDAgMjAwOCAtMDYwMAoKICAgIFhQZWRpdGU1MjAwIGJvYXJkIHN1cHBvcnQgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgZmVhOTFlZGVlOGFlMDI5NWUzYzMwYjFmZjU0NGRmNTFmNGQ2NjhlMQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVR1ZSBEZWMgMiAyMTo1ODowNCAyMDA4ICswMTAwCgogICAgdXNiX2tiZDogZml4IHVzYl9rYmRfZGVyZWdpc3RlciB3aGVuIERFVklDRV9ERVJFR0lTVEVSIG5vdCBlbmFibGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCw7ZobWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IGFkYTU5MWQyYTBlY2ZmNWY5YmM1ZWQxZWJmMzEwZjQzOWMzZDBhMjgKQXV0aG9yOiBUcmVudCBQaWVwaG8gPHRwaWVwaG9AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIERlYyAzIDE1OjE2OjM3IDIwMDggLTA4MDAKCiAgICBtcGM4WzU2XXh4OiBQdXQgbG9jYWxidXMgY2xvY2sgaW4gc3lzaW5mbyBhbmQgZ2QKCiAgICBDdXJyZW50bHkgTVBDODV4eCBhbmQgTVBDODZ4eCBib2FyZHMganVzdCBjYWxjdWxhdGUgdGhlIGxvY2FsYnVzIGZyZXF1ZW5jeQogICAgYW5kIHByaW50IGl0IG91dCwgYnV0IGRvbid0IHNhdmUgaXQuCgogICAgVGhpcyBjaGFuZ2VzIHdoZXJlIGl0cyBjYWxjdWxhdGVkIGFuZCBzdG9yZWQgdG8gYmUgbW9yZSBjb25zaXN0ZW50IHdpdGggdGhlCiAgICBDUFUsIENDQiwgVEIsIGFuZCBERFIgZnJlcXVlbmNpZXMgYW5kIHRoZSBNUEM4M3h4IGxvY2FsYnVzIGNsb2NrLgoKICAgIFRoZSBsb2NhbGJ1cyBmcmVxdWVuY3kgaXMgYWRkZWQgdG8gc3lzaW5mbyBhbmQgY2FsY3VsYXRlZCB3aGVuIHN5c2luZm8gaXMKICAgIHNldCB1cCwgaW4gY3B1L21wYzhbNTZdeHgvc3BlZWQuYywgdGhlIHNhbWUgYXMgdGhlIG90aGVyIGZyZXF1ZW5jaWVzIGFyZS4KCiAgICBnZXRfY2xvY2tzKCkgY29waWVzIHRoZSBmcmVxdWVuY3kgaW50byB0aGUgZ2xvYmFsIGRhdGEsIGFzIHRoZSBvdGhlcgogICAgZnJlcXVlbmNpZXMgYXJlLCBpbnRvIGEgbmV3IGZpZWxkIHRoYXQgaXMgb25seSBlbmFibGVkIGZvciBNUEM4NXh4IGFuZAogICAgTVBDODZ4eC4KCiAgICBjaGVja2NwdSgpIGluIGNwdS9tcGM4WzU2XXh4L2NwdS5jIHdpbGwgcHJpbnQgb3V0IHRoZSBsb2NhbCBidXMgZnJlcXVlbmN5CiAgICBmcm9tIHN5c2luZm8sIGxpa2UgdGhlIG90aGVyIGZyZXF1ZW5jaWVzLCBpbnN0ZWFkIG9mIGNhbGN1bGF0aW5nIGl0IG9uIHRoZQogICAgc3BvdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUcmVudCBQaWVwaG8gPHRwaWVwaG9AZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTg2M2Q2YWNhMTE0MDVlMWUwZDhhYmEyMDQ1ZDc4YWVlYzRkNGVlNwpBdXRob3I6IFRyZW50IFBpZXBobyA8dHBpZXBob0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRGVjIDMgMTU6MTY6MzYgMjAwOCAtMDgwMAoKICAgIG1wYzg2eHg6IERvdWJsZSBsb2NhbCBidXMgY2xvY2sgZGl2aWRlcgoKICAgIFRoZSBsb2NhbCBidXMgY2xvY2sgZGl2aWRlciBzaG91bGQgYmUgZG91YmxlZCBmb3IgYm90aCA4NjEwIGFuZCA4NjQxLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRyZW50IFBpZXBobyA8dHBpZXBob0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0NDZjMzgxZTNlMTZmMTk4NTdiNzJlYTBkMDYyNDEyNjdiOGI5ZDU4CkF1dGhvcjogVHJlbnQgUGllcGhvIDx0cGllcGhvQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBEZWMgMyAxNToxNjozNSAyMDA4IC0wODAwCgogICAgbXBjODU2ODogRG91YmxlIGxvY2FsIGJ1cyBjbG9jayBkaXZpZGVyCgogICAgVGhlIGNsb2NrIGRpdmlkZXIgZm9yIHRoZSBNUEM4NTY4IGxvY2FsIGJ1cyBzaG91bGQgYmUgZG91YmxlZCwgbGlrZSB0aGUKICAgIG90aGVyIG5ld2VyIE1QQzg1eHggY2hpcHMuCgogICAgU2luY2UgdGhlcmUgYXJlIG5vdyBtb3JlIGNoaXBzIHdpdGggYSAyeCBkaXZpZGVyIHRoYW4gYSAxeCwgYW5kIGFueSBuZXcKICAgIDg1eHggY2hpcHMgd2lsbCBwcm9iYWJseSBiZSAyeCwgaW52ZXJ0IHRoZSBzZW5zZSBvZiB0aGUgI2lmIHNvIHRoYXQgaXQKICAgIGxpc3RzIHRoZSAxeCBjaGlwcyBpbnN0ZWFkIG9mIHRoZSAyeCBvbmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRyZW50IFBpZXBobyA8dHBpZXBob0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNTFmMDdlYjU4ZmFkMTJkZTkyOTRiYTRlZTZjMDlhMGRkZWFlZTAzCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIERlYyAxNiAxMjowOToyNyAyMDA4ICswODAwCgogICAgODV4eDogRml4IHRoZSBib290IHdpbmRvdyBpc3N1ZQoKICAgIElmIG9uZSBjdXN0b20gYm9hcmQgaXMgdXNpbmcgdGhlIDhNQiBmbGFzaCwgaXQgaXMgc2V0CiAgICBhcyBGTEFTSF9CQVNFID0gMHhlZjAwMDAwMCwgVEVYVF9CQVNFID0gMHhlZjc4MDAwMC4KICAgIFRoZSBjdXJyZW50IHN0YXJ0LlMgY29kZSB3aWxsIGJlIGJyb2tlbiBhdCBzd2l0Y2hfYXMuCgogICAgSXQgaXMgYmVjYXVzZSB0aGUgVExCMVsxNV0gaXMgc2V0IGFzIDE2TUIgcGFnZSBzaXplLAogICAgRVBOID0gVEVYVF9CQVNFICYgMHhmZjAwMDAwMCwgUlBOID0gMHhmZjAwMDAwMC4KCiAgICBGb3IgdGhlIDhNQiBmbGFzaCBjYXNlLCB0aGUgRVBOID0gMHhlZnh4eHh4eCwKICAgIFJQTiA9IDB4ZmZ4eHh4eHguIEFzc3VtZSB0aGUgdmlydCBhZGRyZXNzIG9mIHN3aXRjaF9hcwogICAgaXMgMHhlZjdmZjE4YywgdGhlIHJlYWwgYWRkcmVzcyBvZiB0aGUgaW5zdHJ1Y3Rpb24gYXQKICAgIHN3aXRjaF9hcyBzaG91bGQgYmUgMHhmZjdmZjE4Yy4gdGhlIDB4ZmY3ZmYxOGMgaXMgb3V0CiAgICBvZiB0aGUgcmFuZ2Ugb2YgdGhlIGRlZmF1bHQgOE1CIGJvb3QgTEFXIHdpbmRvdwogICAgMHhmZjgwMDAwMCAtIDB4ZmZmZmZmZmYuCgogICAgU28gd2hlbiB3ZSBzd2l0Y2ggdG8gQVMxIGFkZHJlc3Mgc3BhY2UgYXQgc3dpdGNoX2FzLAogICAgdGhlIGNvcmUgY2FuJ3QgZmV0Y2ggdGhlIGluc3RydWN0aW9uIGF0IHN3aXRjaF9hcyBhbnkKICAgIG1vcmUuIEl0IHdpbGwgY2F1c2UgYnJva2VuIGlzc3VlLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNThkYTg4OTBkNWZiZDA3NDc0NjAzNzcyMmE0MjNkZTlhYzQwODYxNgpBdXRob3I6IFBhdWwgR29ydG1ha2VyIDxwYXVsLmdvcnRtYWtlckB3aW5kcml2ZXIuY29tPgpEYXRlOglUaHUgRGVjIDExIDE1OjQ3OjUwIDIwMDggLTA1MDAKCiAgICBzYmM4NTQ4OiB1c2UgcHJvcGVyIFBIWSBhZGRyZXNzCgogICAgVGhlIHZhbHVlcyBnaXZlbiBmb3IgdGhlIFBIWSBhZGRyZXNzIHdlcmUgd3JvbmcsIHNvIHRoZSBjb2RlCiAgICByZWFkIG5vIHZhbGlkIFBIWSBJRCwgYW5kIGZlbGwgdGhyb3VnaCB0byB0aGUgZ2VuZXJpYyBQSFkKICAgIHN1cHBvcnQsIHdoaWNoIHdvdWxkIHdvcmsgb24gMTAwME0gYnV0IHdvdWxkIG5vdCBhdXRvIG5lZ290aWF0ZQogICAgZG93biB0byAxMDBNIG9yIDEwTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQYXVsIEdvcnRtYWtlciA8cGF1bC5nb3J0bWFrZXJAd2luZHJpdmVyLmNvbT4KCmNvbW1pdCBhZDIyZjkyNzNjNmYyNGZiZmE5MTdlODY3NjgwZTk2ODhlMGM1OWM1CkF1dGhvcjogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+CkRhdGU6CVRodSBEZWMgMTEgMTU6NDc6NTEgMjAwOCAtMDUwMAoKICAgIHNiYzg1NDg6IGVuYWJsZSBjb21tYW5kIGxpbmUgZWRpdGluZyBieSBkZWZhdWx0LgoKICAgIExldHMgbWFrZSB0aGluZ3MgYSBiaXQgbW9yZSB1c2VyIGZyaWVuZGx5LglJdCBpc24ndCAxOTg1IGFueW1vcmUuCgogICAgU2lnbmVkLW9mZi1ieTogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+Cgpjb21taXQgYmQ5MzEwNWZhMTcxMTg0YTcxY2E4YjIyYmUwM2RjMjcwNWNmYmQzZgpBdXRob3I6IFBhdWwgR29ydG1ha2VyIDxwYXVsLmdvcnRtYWtlckB3aW5kcml2ZXIuY29tPgpEYXRlOglUaHUgRGVjIDExIDE1OjQ3OjQ5IDIwMDggLTA1MDAKCiAgICBzYmM4NTQ4OiBkb24ndCBlbmFibGUgdGhlIDNyZCBhbmQgNHRoIGVUU0VDCgogICAgVGhlc2UgaW50ZXJmYWNlcyBkb24ndCBoYXZlIHVzYWJsZSBjb25uZWN0b3JzIG9uIHRoZSBib2FyZCwgc28gZG9uJ3QKICAgIGJvdGhlciBlbnVtZXJhdGluZyBvciBjb25maWd1cmluZyB0aGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBhdWwgR29ydG1ha2VyIDxwYXVsLmdvcnRtYWtlckB3aW5kcml2ZXIuY29tPgoKY29tbWl0IDE4MWEzNjUwMTEzODgzNzI4OTI3OTI4YjNhYzgxYWQ2ZGFkZTRiMmMKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRGVjIDMgMTA6MDg6MTkgMjAwOCAtMDUwMAoKICAgIFNldCBJVlBSIHRvIGtlbnJlbCBlbnRyeSBwb2ludCBpbiBzZWNvbmQgY29yZSBib290IHBhZ2UKCiAgICBBc3N1bWluZyB0aGUgT1NlcyBleGNlcHRpb24gdmVjdG9ycyBzdGFydCBmcm9tIHRoZSBiYXNlIG9mIGtlcm5lbCBhZGRyZXNzLCBhbmQKICAgIHRoZSBrZXJuZWwgcGh5c2ljYWwgc3RhcnRpbmcgYWRkcmVzcyBjYW4gYmUgcmVsb2NhdGVkIHRvIGFuIG5vbi16ZXJvIGFkZHJlc3MuCiAgICBUaGlzIHBhdGNoIGVuYWJsZXMgdGhlIHNlY29uZCBjb3JlIHRvIGhhdmUgYSB2YWxpZCBJVlBSIGZvciBkZWJ1Z2dlciBiZWZvcmUKICAgIGtlcm5lbCBzZXR0aW5nIElWUFIgaW4gQ0FNUCBtb2RlLiBPdGhlcndpc2UsIElWUFIgaXMgMHgwIGFuZCBpdCBpcyBub3QgYSB2YWxpZAogICAgdmFsdWUgZm9yIHNlY29uZCBjb3JlIHdoaWNoIHJ1bnMga2VybmVsIGF0IGRpZmZlcmVudCBwaHlzaWNhbCBhZGRyZXNzIG90aGVyCiAgICB0aGFuIDB4MC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE1ZDIxMmEyNjNjNThjYzc0NjQ4MWJmMWZjODc4NTEwNTMzY2U3ZDYKQXV0aG9yOiBUcmVudCBQaWVwaG8gPHRwaWVwaG9AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIERlYyAzIDE1OjE2OjM0IDIwMDggLTA4MDAKCiAgICBtcGM4eHh4OiBMQ1JSW0NMS0RJVl0gaXMgc29tZXRpbWVzIGZpdmUgYml0cwoKICAgIE9uIG5ld2VyIENQVXMsIDg1MzYsIDg1NzIsIGFuZCA4NjEwLCB0aGUgQ0xLRElWIGZpZWxkIG9mIExDUlIgaXMgZml2ZSBiaXRzCiAgICBpbnN0ZWFkIG9mIGZvdXIuCgogICAgSW4gb3JkZXIgdG8gYXZvaWQgYW4gaWZkZWYsIExDUlJfQ0xLRElWIGlzIHNldCB0byAweDFmIG9uIGFsbCBzeXN0ZW1zLiAgSXQKICAgIHNob3VsZCBiZSBzYWZlIGFzIHRoZSBmaWZ0aCBiaXQgd2FzIGRlZmluZWQgYXMgcmVzZXJ2ZWQgYW5kIHNldCB0byAwLgoKICAgIENvZGUgdGhhdCB3YXMgdXNpbmcgYSBoYXJkIGNvZGVkIDB4MGYgaXMgY2hhbmdlZCB0byB1c2UgTENSUl9DTEtESVYuCgogICAgU2lnbmVkLW9mZi1ieTogVHJlbnQgUGllcGhvIDx0cGllcGhvQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU4ZWM0ODY2ZWQ5MTZjN2U0MjJmNTEwN2JiMjdiMDgyMjA4NDcyOGUKQXV0aG9yOiBUcmVudCBQaWVwaG8gPHRwaWVwaG9AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIERlYyAzIDE1OjE2OjM4IDIwMDggLTA4MDAKCiAgICBtcGM4WzU2XXh4OiBQdXQgbG9jYWxidXMgY2xvY2sgaW4gZGV2aWNlIHRyZWUKCiAgICBFeHBvcnQgdGhlIGxvY2FsYnVzIGZyZXF1ZW5jeSBpbiB0aGUgZGV2aWNlIHRyZWUsIHRoZSBzYW1lIHdheSB0aGUgQ1BVLCBUQiwKICAgIENDQiwgYW5kIHZhcmlvdXMgb3RoZXIgZnJlcXVlbmNpZXMgYXJlIGV4cG9ydGVkIGluIHRoZWlyIHJlc3BlY3RpdmUgZGV2aWNlCiAgICB0cmVlIG5vZGVzLgoKICAgIFNvbWUgbG9jYWxidXMgZGV2aWNlcyBuZWVkIHRoaXMgaW5mb3JtYXRpb24gdG8gYmUgcHJvZ3JhbWVkIGNvcnJlY3RseSwgc28KICAgIGl0IG1ha2VzIHNlbnNlIHRvIGV4cG9ydCBpdCBhbG9uZyB3aXRoIHRoZSBvdGhlciBmcmVxdWVuY2llcy4KCiAgICBVbmZvcnR1bmF0ZWx5LCB3aGVuIHNvbWVvbmUgd3JvdGUgdGhlIGxvY2FsYnVzIGR0cyBiaW5kaW5ncywgdGhleSBkaWRuJ3QKICAgIGJvdGhlciB0byBkZWZpbmUgd2hhdCB0aGUgImNvbXBhdGlibGUiIHByb3BlcnR5IHNob3VsZCBiZS4JU28gaXQgc2VlbXMgbm8KICAgIG9uZSB3YXMgcXVpdGUgc3VyZSB3aGF0IHRvIHB1dCBpbiB0aGVpciBkdHMgZmlsZXMuCgogICAgQmFzZWQgb24gY3VycmVudCBleGlzdGluZyBkdHMgZmlsZXMgaW4gdGhlIGtlcm5lbCBzb3VyY2UsIEkndmUgdXNlZAogICAgImZzbCxwcTMtbG9jYWxidXMiIGFuZCAiZnNsLGVsYmMiIGZvciBNUEM4NXh4LCB3aGljaCBhcmUgdXNlZCBieSBhbG1vc3QgYWxsCiAgICBvZiB0aGUgODV4eCBkZXZpY2VzLCBhbmQgYXJlIGxvb2tlZCBmb3IgYnkgdGhlIExpbnV4IGNvZGUuCVRoZSBlTEJDIGlzCiAgICBhcHBhcmVudGx5IG5vdCBlbnRpcmVseSBiYWNrd2FyZCBjb21wYXRpYmxlIHdpdGggdGhlIHBxMyBMQkMgYW5kIHNvIGVMQkMKICAgIGVxdWlwcGVkIHBsYXRmb3JtcyBsaWtlIDg1NzIgd29uJ3QgdXNlIHBxMy1sb2NhbGJ1cy4KCiAgICBGb3IgTVBDODZ4eCwgSSd2ZSB1c2VkICJmc2wsZWxiYyIgd2hpY2ggaXMgdXNlZCBieSBzb21lIG9mIHRoZSA4Nnh4IHN5c3RlbXMKICAgIGFuZCBpcyBhbHNvIGxvb2tlZCBmb3IgYnkgdGhlIExpbnV4IGNvZGUuICBPbiBNUEM4NjQxLCBJJ3ZlIGFsc28gdXNlZAogICAgImZzbCxtcGM4NjQxLWxvY2FsYnVzIiBhcyBpdCBpcyBhbHNvIGNvbW1vbmx5IHVzZWQgaW4gZHRzIGZpbGVzLCBzb21lIG9mCiAgICB3aGljaCBkb24ndCB1c2UgImZzbCxlbGJjIiBvciBhbnkgb3RoZXIgYWNjZXB0YWJsZSBuYW1lIHRvIG1hdGNoIG9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRyZW50IFBpZXBobyA8dHBpZXBob0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5ZDk0YWZmNjk5ZWVkMzhiMjg2ODE0ZmNiYjMzNWYzZWI4NTE2YTBlCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIERlYyAxNiAxNDo1OToyMiAyMDA4IC0wNjAwCgogICAgTkFORCBGU0wgZWxiYzogVXNlIHZpcnRfdG9fcGh5cyB0byBkZXRlcm1pbmUgd2hpY2ggYmFuayBpcyBpbiB1c2UKCiAgICBUaGUgY3VycmVudCBjb2RlIHRoYXQgZGV0ZXJtaW5lcyB3aGljaCBiYW5rL2NoaXBzZWxlY3QgaXMgdXNlZCBmb3IgYQogICAgZ2l2ZW4gTkFORCBpbnN0YW5jZSBvbmx5IHdvcmtlZCBmb3IgMzItYml0IGFkZHJlc3NlcyBhbmQgYXNzdW1lZAogICAgYSAxOjEgbWFwcGluZy4gIFRoaXMgYnJlYWtzIGluIDM2LWJpdCBwaHlzaWNhbCBjb25maWdzLgoKICAgIFRoZSBwcm9wZXIgd2F5IHRvIGhhbmRsZSB0aGlzIGlzIHRvIHVzZSB0aGUgdmlydF90b19waHlzKCkgYW5kCiAgICBCUl9QSFlTX0FERFIoKSByb3V0aW51ZXMgdG8gbWF0Y2ggdGhlIDM0LWJpdCBsYmMgYnVzIGFkZHJlc3MKICAgIHdpdGggdGhlIHRoZSB2aXJ0dWFsIGFkZHJlc3MgdGhlIE5BTkQgY29kZSB1c2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBBY2tlZC1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzdjODExNWIxZjE4NzE4MTE2MzNlYWU3N2E1YTcwMGZhYzFmMGU1MApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBEZWMgMTYgMTQ6NTk6MjEgMjAwOCAtMDYwMAoKICAgIHBwYzogVXNlIGFkZHJtYXAgaW4gdmlydF90b19waHlzIGFuZCBtYXBfcGh5c21lbS4KCiAgICBJZiB3ZSBoYXZlIGFkZHIgbWFwIHN1cHBvcnQgZW5hYmxlZCB1c2UgdGhlIG1hcHBpbmcgZnVuY3Rpb25zIHRvCiAgICBpbXBsZW1lbnQgdmlydF90b19waHlzKCkgYW5kIG1hcF9waHlzbWVtKCkuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBlY2Y1Yjk4YzdhNmEyZTIyNTZkZmRkZDQ4ZmFiMjY2NzhkY2Q2YjkwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIERlYyAxNiAxNDo1OToyMCAyMDA4IC0wNjAwCgogICAgODV4eDogQWRkIHN1cHBvcnQgdG8gcG9wdWxhdGUgYWRkciBtYXAgYmFzZWQgb24gVExCIHNldHRpbmdzCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA3OGJiYzVjZTE1MWM1YTQ4NGJiNTFiZjE4NjZiNGE5OTNmZmMxNmVjCkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJTW9uIERlYyAxIDEzOjQ3OjEzIDIwMDggLTA2MDAKCiAgICBYUGVkaXRlNTIwMCBib2FyZCBzdXBwb3J0CgogICAgSW5pdGlhbCBzdXBwb3J0IGZvciBFeHRyZW1lIEVuZ2luZWVyaW5nIFNvbHV0aW9ucyBYUGVkaXRlNTIwMCAtCiAgICBhIE1QQzg1NDgtYmFzZWQgUE1DIHNpbmdsZSBib2FyZCBjb21wdXRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IDQ4N2RjYjRmYjg5YmUwOTkyYmMwNmVjMTM0MTA5MDAxN2JkOWNmMmYKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglXZWQgT2N0IDI5IDEyOjM5OjI3IDIwMDggLTA1MDAKCiAgICA4NXh4OiBFbmFibGUgaW5ib3VuZCBQQ0kgY29uZmlnIGN5Y2xlcyBmb3IgWC1FUyBib2FyZHMKCiAgICBVcGRhdGUgWC1FUyBGcmVlc2NhbGUgYm9hcmRzIHRvIGFsbG93IGluYm91bmQgUENJIGNvbmZpZ3VyYXRpb24KICAgIGN5Y2xlcyB3aGVuIGNvbmZpZ3VyZWQgYXMgYWdlbnQvZW5kcG9pbnQuCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCBjY2YwZmRkMDJiOTczMjNmOGNhYWUxOGQwNmNjOWRhZWFjMmYxOTJmCkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJV2VkIERlYyAxNyAxNjozNjoyMyAyMDA4IC0wNjAwCgogICAgWFBlZGl0ZTUzNzAgYm9hcmQgc3VwcG9ydAoKICAgIEluaXRpYWwgc3VwcG9ydCBmb3IgRXh0cmVtZSBFbmdpbmVlcmluZyBTb2x1dGlvbnMgWFBlZGl0ZTUzNzAgLQogICAgYSBNUEM4NTcyLWJhc2VkIDNVIFZQWCBzaW5nbGUgYm9hcmQgY29tcHV0ZXIgd2l0aCBhIFBNQy9YTUMKICAgIHNpdGUuCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCBlOTI3MzlkMzRlMmQ2YjZhY2E5M2IyNTk4MjQ4MjEwNzEwODk3Y2U4CkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJV2VkIERlYyAxNyAxNjozNjoyMSAyMDA4IC0wNjAwCgogICAgQWRkIHN1cHBvcnQgZm9yIFBDQTk1M3ggSTJDIGdwaW8gZGV2aWNlcwoKICAgIEluaXRpYWwgc3VwcG9ydCBmb3IgTlhQJ3MgNCBhbmQgOCBiaXQgSTJDIGdwaW8gZXhwYW5kZXJzCiAgICAoZWcgcGNhOTUzNywgcGNhOTU1NywgZXRjKS4gVGhlIENPTkZJR19QQ0E5NTNYIGRlZmluZQogICAgZW5hYmxlcyBzdXBwb3J0IGZvciB0aGUgZGV2aWNlcyB3aGlsZSB0aGUgQ09ORklHX0NNRF9QQ0E5NTNYCiAgICBkZWZpbmUgZW5hYmxlcyB0aGUgcGNhOTUzeCBjb21tYW5kLiBUaGUgQ09ORklHX0NNRF9QQ0E5NTNYX0lORk8KICAgIGRlZmluZSBlbmFibGVzIGFuICdpbmZvJyBzdWItY29tbWFuZCB3aGljaCBwcm92aWRlcyBzdW1tYXJ5CiAgICBpbmZvcm1hdGlvbiBmb3IgdGhlIGdpdmVuIHBjYTk1M3ggZGV2aWNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgN2E4OTc5NTkxMTcxNjc2NDE3YWIzNjg1MmQ4ODExYThjNDZhY2NkOApBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CVdlZCBPY3QgMjkgMTI6Mzk6MjYgMjAwOCAtMDUwMAoKICAgIHBjaS9mc2xfcGNpX2luaXQ6IEVuYWJsZSBpbmJvdW5kIFBDSSBjb25maWcgY3ljbGVzCgogICAgQWRkIGZzbF9wY2lfY29uZmlnX3VubG9jaygpIGZ1bmN0aW9uIHRvIGVuYWJsZSBhCiAgICBQQ0kvUENJZSBpbnRlcmZhY2UgY29uZmlndXJlZCBpbiBhZ2VudC9lbmRwb2ludCBtb2RlIHRvCiAgICByZXNwb25kIHRvIGluYm91bmQgUENJIGNvbmZpZ3VyYXRpb24gY3ljbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgOTJjNzhhM2JiY2IyY2U1MDhiNGJmMWM0YTFlMDk0MDQwNmEwMjRiYgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIERlYyAxNyAxNjo0MzoxOCAyMDA4ICswMTAwCgogICAgYXZyMzI6IFJlbW92ZSBzZWNvbmQgZGVmaW5pdGlvbiBvZiB2aXJ0X3RvX3BoeXMoKQoKICAgIFRoZSBzZWNvbmQgZGVmaW5pdGlvbiBpbnRyb2R1Y2VkIGJ5IDY1ZTQzYTEwNjMgY29uZmxpY3RzIHdpdGggdGhlCiAgICBleGlzdGluZyBvbmUuCgogICAgQWxzbywgY29udmVydCB0aGUgZXhpc3RpbmcgZGVmaW5pdGlvbiB0byB1c2UgcGh5c19hZGRyX3QuIFRoZSB2b2xhdGlsZQogICAgcXVhbGlmaWVyIGlzIHN0aWxsIG5lZWRlZCBkdWUgdG8gYnJhaW4gZGFtYWdlIGVsc2V3aGVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgYjYxNmYyYjU0NWY3Mzc1NzY2OWIzNzM4NmYwYjM3YmI2MWZjNjc5NwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBTZXAgOCAyMjoyNzoxOCAyMDA4ICswMjAwCgogICAgTUlQUzogcWVtdV9taXBzOiB1cGRhdGUgZG9jIHRvIGdlbmVyYXRlIGFuZCB0byB1c2UgcWVtdSBmbGFzaCwgaWRlIGZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAxNmNkZjgxNjc3OWY1YjYwMmE5YjNiNGQyZWE0ZGVhMDUwOTVjMzViCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIERlYyAxNiAyMjoxMDozMSAyMDA4ICswMTAwCgogICAgTUlQUzogcWVtdV9taXBzOiB1cGRhdGUgZG9jIHRvIHVzZSBhbGwgZGlzayBhbmQgYm9vdCBsaW51eCBrZXJuZWwKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAxMzA5NWIyZjA3ZGFjYjFmODYzNzcyMjY2YzE3ODlkNDdhNTIzYThhCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIERlYyAxNiAyMjoxMDozMCAyMDA4ICswMTAwCgogICAgTUlQUzogcWVtdV9taXBzOiBtb3ZlIGVudiBzdG9yYWdlIGp1c3QgYWZ0ZXIgdS1ib290CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgYWNlZDc4ZDg1MmQwYjAwOWU4YWFhMTQ0NWFmOGNiNDA4NjFlZTU0OQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBEZWMgMTYgMjM6NDg6MjcgMjAwOCArMDEwMAoKICAgIFByZXBhcmUgMjAwOS4wMS1yYzEKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDllMmE3OWI0YzU4NWFkMzExMzhmYjkwYjY4ZmQwMjM0ZDY0YThkYTgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgRGVjIDE2IDIzOjEzOjQ2IDIwMDggKzAxMDAKCiAgICBpbmNsdWRlL2NvbmZpZ3MvYXQ5MWNhcDlhZGsuaDogZml4IHR5cG8uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0NWNhMDRmMjM3NzM2MTU5MzE1MWQyZDRkYTUxZjhiYTQ4MzJkMjMzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIERlYyAxNiAyMjozMjoyNSAyMDA4ICswMTAwCgogICAgYm9hcmQvdHJhYi9tZW1vcnkuYzogRml4IGNvbXBpbGUgcHJvYmxlbXMuCgogICAgQXBwbHkgY2hhbmdlcyBmcm9tIGNvbW1pdCA0NGI0ZGJlZCB0byBib2FyZC90cmFiL21lbW9yeS5jLCB0b28uCgogICAgQWN0dWFsbHkgd2UnZCBuZWVkIGEgbWFqb3IgY2xlYW51cCBoZXJlIC0gYXMgaXQgdHVybnMgb3V0LAogICAgYm9hcmQvdHJhYi9tZW1vcnkuYyBpcyBtb3JlIG9yIGxlc3MgYSB2ZXJiYXRpbSBjb3B5IG9mCiAgICBwb3N0L2RyaXZlcnMvbWVtb3J5LmMgLi4uIGJ1dCB0aGVuLCB0cmFiIGlzIEVPTCBhbnl3YXkscgogICAgc28gdGhpcyBpcyBub3Qgd29ydGggdGhlIGVmZm9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGZmNDllYTg5NzdiNTY5MTZlZGQ1YjE3NjZkOTkzOTAxMGUzMGIxODEKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIERlYyAxNiAxNDoyNDoxNiAyMDA4IC0wNjAwCgogICAgTkFORDogTWFyayB0aGUgQkJUIGFzIHNjYW5uZWQgcHJpb3IgdG8gY2FsbGluZyBzY2FuX2JidC4KCiAgICBPdGhlcndpc2UsIHJlY3Vyc2lvbiBjYW4gb2NjdXIgaWYgc2Nhbl9iYnQgZG9lcyBub3QgZmluZCBhIGJhZCBibG9jawogICAgdGFibGUsIGFuZCB0cmllcyB0byB3cml0ZSBvbmUsIGFuZCB0aGUgYXR0ZW1wdCB0byBlcmFzZSB0aGUgQkJUIGFyZWEKICAgIGNhdXNlcyBhIGJhZCBibG9jayBjaGVjay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1ODRlZWRhYjY2ZDA4MjhmMmQ1NzFhMjRiMTA1MjZjNGU2NWY1NDdiCkF1dGhvcjogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+CkRhdGU6CVRodSBEZWMgMTEgMDU6NTE6NTcgMjAwOCArMDMwMAoKICAgIGpmZnMyOiBpbmNsdWRlIDxsaW51eC9tdGQvY29tcGF0Lmg+IGluc3RlYWQgb2YgZGVmaW5pbmcgb3duIG1pbl90CgogICAgSW5jbHVkZSA8bGludXgvbXRkL2NvbXBhdC5oPiBoZWFkZXIgZm9yIG1pbl90IGRlZmluaXRpb24gaW5zdGVhZCBvZgogICAgcHJvdmlkaW5nIG91ciBvd24gb25lLiBSZW1vdmVzIHdhcm5pbmdzIGluIGNhc2Ugb2YgT25lTkFORCBzdXBwb3J0CiAgICBlbmFibGVkLgoKICAgIEFsdGhvdWdoIEkgdGhpbmtzIGl0J3MgYSBiaXQgc2lsbHkgdG8gaW5jbHVkZSA8bGludXgvbXRkL2NvbXBhdC5oPgogICAganVzdCBmb3IgbWluX3QuLi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYjFmZmVjZWMzN2I1N2E1OWMxMzkwNDIyNjdmYWFjNDU4ZTUzMjRlOQpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreWJAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIERlYyAzIDIzOjA0OjM3IDIwMDggLTA2MDAKCiAgICBwb3dlcnBjOiBmaXggaW8uaCBidWlsZCB3YXJuaW5nIHdpdGggQ09ORklHX1BIWVNfNjRCSVQKCiAgICBDYXN0aW5nIGEgcG9pbnRlciB0byBhIHBoeXNfYWRkcl90IHdoZW4gaXQncyBhbiB1bnNpZ25lZCBsb25nIGxvbmcKICAgIG9uIGEgMzItYml0IHN5c3RlbSB3aXRob3V0IGZpcnN0IGNhc3RpbmcgdG8gYSBub24tcG9pbnRlciB0eXBlCiAgICBnZW5lcmF0ZXMgYSBjb21waWxlciB3YXJuaW5nLiBGaXggdGhpcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3liQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNmNkYWRjYjNmMWI2ZWFjNGExYzQyNTZhY2FhMTQzODQxM2Y5NTM1MQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBEZWMgMTYgMTY6MjI6NTAgMjAwOCArMDEwMAoKICAgIHRyYWI6IG1ha2UgdHJhYl9ma3Qgc3RhbmRhbG9uZSBjb2RlIGluZGVwZW5kZW50IG9mIGxpYmdjYwoKICAgIFVzZSBvdXIgb3duIGxvY2FsIGZ1bmN0aW9ucyBpbiBsaWJfYXJtLyBpbnN0ZWFkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYWExYmNjYTNkMmUyMmFmNGRlYTlmMDIxMzJmOWI1NmEzMDM3OGRlZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBEZWMgMTYgMTQ6NDQ6MDYgMjAwOCArMDEwMAoKICAgIHBvc3QvTWFrZWZpbGU6IGZpeCBkZXBlbmRlbmN5IHByb2JsZW0gd2l0aCBwYXJhbGxlbCBidWlsZHMKCiAgICBQYXJhbGxlbCBidWlsZHMgKHVzaW5nICJtYWtlIC1qTiIpIHdvdWxkIG9jY2FzaW9uYWxseSBmYWlsIHdpdGggZXJyb3IKICAgIG1lc3NhZ2VzIGxpa2UKCXBwY180eHhGUC1vYmpkdW1wOiBzdHJpbmcubzogRmlsZSBmb3JtYXQgbm90IHJlY29nbml6ZWQKICAgIG9yCglwb3N0L2xpYnBvc3QuYShjcHUubyk6IEluIGZ1bmN0aW9uIGBjcHVfcG9zdF90ZXN0JzoKCS9ob21lL3dkL2dpdC91LWJvb3Qvd29yay9wb3N0L2xpYl9wcGMvY3B1LmM6MTMwOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBjcHVfcG9zdF90ZXN0X3N0cmluZycKICAgIG9yIHNpbWlsYXIuIFdlIG5vdyBtYWtlIHN1cmUgdG8gcnVuIHRoZSAncG9zdGRlcHMiIHN0ZXAgYmVmb3JlCiAgICBhdHRlbXB0aW5nIHRvIGJ1aWxkIHRoZSBzcGVjaWZpYyBQT1NUIGxpYnJhcmllcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDRhMGY3NTM4YzVjMDgwNWZkOWE3OTE5NjdiYmFiYWNjNDFkZWFkZDkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgRGVjIDE2IDE0OjQxOjAyIDIwMDggKzAxMDAKCiAgICBNYWtlZmlsZTogZml4IGRlcGVuZGVuY3kgcHJvYmxlbSB3aXRoIHBhcmFsbGVsIGJ1aWxkcwoKICAgIFBhcmFsbGVsIGJ1aWxkcyAodXNpbmcgIm1ha2UgLWpOIikgd291bGQgb2NjYXNpb25hbGx5IGZhaWwgd2l0aCBlcnJvcgogICAgbWVzc2FnZXMgbGlrZQoJaW5jbHVkZS9hdXRvY29uZi5tazoyMTI6ICoqKiBtaXNzaW5nIHNlcGFyYXRvci4gIFN0b3AuCiAgICBMaW5lIG51bWJlcnMgYW5kIGFmZmVjdGVkIGJvYXJkcyB3ZXJlIGNoYW5naW5nLiBPYnZpb3VzbHkgc29tZQogICAgTWFrZWZpbGVzIGluY2x1ZGVkIGF1dG9jb25mLm1rIHdoaWxlIGl0IHdhcyBzdGlsbCBiZWluZyB3cml0dGVuIHRvLgogICAgQXMgYSBmaXgsIHdlIG5vdyB3cml0ZSB0byBhIHRlbXBvcmFyeSBmaWxlIGZpcnN0IGFuZCB0aGVuIHJlbmFtZSBpdCwKICAgIHNvIHRoYXQgaXQgaXMgcmVhbGx5IHJlYWR5IHRvIHVzZSBhcyBzb29uIGFzIGl0IGFwcGVhcnMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0NTVhZTdlODdmNjdjNDRlNmFlYTY4ODY1YzgzYWNhZGQzZmNkMzZjCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIERlYyAxNiAwMTowMjoxNyAyMDA4ICswMTAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAsIHVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4NGJjNzJkOTBjNTA1ZmVjM2VmNGI2OTM5OTU0MDdhMGJkNDA2NGU1CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUaHUgRGVjIDExIDE4OjM5OjA4IDIwMDggLTA1MDAKCiAgICBzcGkvc3RtaWNybzogZml4IGRlYnVnKCkgZGlzcGxheSBvZiBjbWQKCiAgICBUaGUgc3RtaWNyb193YWl0X3JlYWR5KCkgZnVuYyB0cmllcyB0byBzaG93IHRoZSBhY3R1YWwgb3Bjb2RlIHRoYXQgd2FzIHNlbnQKICAgIHRvIHRoZSBkZXZpY2UsIGJ1dCBpbnN0ZWFkIGl0IGRpc3BsYXlzIHRoZSBhcnJheSBwb2ludGVyLiAgRml4IGl0IHRvIHB1bGwKICAgIG91dCB0aGUgb3Bjb2RlIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBhcnJheS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNWIzMzc1YWM4YzM2YzI5Yzg3YWJiMTMyZmVkZTA1MDllYjIxZTVjOQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IERlYyAxMSAwNjoyMzozNyAyMDA4IC0wNTAwCgogICAgZW52X3NmOiBzdXBwb3J0IGVtYmVkZGVkIGVudmlyb25tZW50cwoKICAgIElmIGJvdGggQ09ORklHX0VOVl9TRUNUX1NJWkUgYW5kIENPTkZJR19FTlZfU0laRSBhcmUgZGVmaW5lZCwgYW5kIHRoZSBzZWN0CiAgICBzaXplIGlzIGxhcmdlciB0aGFuIHRoZSBlbnYgc2l6ZSwgdGhlbiBpdCBtZWFucyB0aGUgZW52IGlzIGVtYmVkZGVkIGluIGEKICAgIGJsb2NrLiAgU28gd2UgaGF2ZSB0byBzYXZlL3Jlc3RvcmUgdGhlIHBhcnQgb2YgdGhlIHNlY3RvciB3aGljaCBpcyBub3QgdGhlCiAgICBlbnZpcm9ubWVudC4gIFByZXZpb3VzbHksIHNhdmluZyB0aGUgZW52aXJvbm1lbnQgaW4gU1BJIGZsYXNoIGluIHRoaXMKICAgIHNldHVwIHdvdWxkIHByb2JhYmx5IGJyaWNrIHRoZSBib2FyZCBhcyB0aGUgcmVzdCBvZiB0aGUgc2VjdG9yIHRlbmRzIHRvCiAgICBjb250YWluIGFjdHVhbCBVLUJvb3QgZGF0YS9jb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KICAgIEFja2VkLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZWNmNWYwNzdjOGU3NzQ1NGY1MzJlYWFjM2UzYWZiN2NmYzQ4YzYyZApBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBEZWMgMyAxMToyODozMCAyMDA4IC0wNjAwCgogICAgaTJjOiBtZXJnZSBhbGwgaTJjX3JlZ19yZWFkKCkgYW5kIGkyY19yZWdfd3JpdGUoKSBpbnRvIGlubGluZSBmdW5jdGlvbnMKCiAgICBBbGwgaW1wbGVtZW50YXRpb25zIG9mIHRoZSBmdW5jdGlvbnMgaTJjX3JlZ19yZWFkKCkgYW5kCiAgICBpMmNfcmVnX3dyaXRlKCkgYXJlIGlkZW50aWNhbC4gV2UgY2FuIHNhdmUgc3BhY2UgYW5kIHNpbXBsaWZ5IHRoZQogICAgY29kZSBieSBjb252ZXJ0aW5nIHRoZXNlIGZ1bmN0aW9ucyBpbnRvIGlubGluZXMgYW5kIHB1dHRpbmcgdGhlbSBpbgogICAgaTJjLmguCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLUJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGUzOWNkODFjNDQ3NDBkNzM1NWQyNzdlZDNkMzg1MzZjYmUxZTAwM2QKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgRGVjIDUgMTU6MzY6MTQgMjAwOCArMDgwMAoKICAgIGxpYl9wcGM6IHJld29yayB0aGUgZmx1c2hfY2FjaGUKCiAgICAtIEl0IGlzIHBvc3NpYmxlIHRvIG1pc3MgZmx1c2gvaW52YWxpZGF0ZSB0aGUgbGFzdAogICAgICBjYWNoZSBsaW5lLCB3ZSBmaXggaXQgYXQgaGVyZS4KICAgIC0gYWRkIHRoZSB2b2xhdGlsZSBhbmQgbWVtb3J5IGNsb2JiZXIuCgogICAgVGhleSBhcmUgcG9pbnRlZCBieSBTY290dCBXb29kLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjMyNDBiYTg4Y2Q2YTIyMDA1N2EwZjI4ZTViZjk3ZjViMTdhYzg0YgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVNhdCBEZWMgMTMgMTc6MjA6MjggMjAwOCAtMDYwMAoKICAgIEludHJvZHVjZSBhZGRyX21hcCBsaWJyYXJ5CgogICAgQWRkIGEgbGlicmFyeSB0aGF0IGhlbHBzIGluIHRyYW5zbGF0aW5nIGJldHdlZW4gdmlydHVhbCBhbmQgcGh5c2ljYWwKICAgIGFkZHJlc3Nlcy4JVGhpcyBsaWJyYXJ5IGNhbiBiZSB1c2VmdWwgYXMgYSBzaW1wbGUgbWVhbnMgdG8gaW1wbGVtZW50CiAgICBtYXBfcGh5c21lbSgpIGFuZCB2aXJ0X3RvX3BoeXMoKSBmb3IgcGxhdGZvcm1zIHRoYXQgbmVlZCBmdW5jdGlvbmFsaXR5CiAgICBiZXlvbmQgdGhlIHNpbXBsZSAxOjEgbWFwcGluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDY1ZTQzYTEwNjMxNTM3ZGNiOTJjMzAyZDM2MzAxYTEyMzA4MjE2YzMKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglTYXQgRGVjIDEzIDE3OjIwOjI3IDIwMDggLTA2MDAKCiAgICBJbnRyb2R1Y2UgdmlydF90b19waHlzKCkKCiAgICB2aXJ0X3RvX3BoeXMoKSByZXR1cm5zIHRoZSBwaHlzaWNhbCBhZGRyZXNzIGdpdmVuIGEgdmlydHVhbC4gSW4gbW9zdAogICAgY2FzZXMgdGhpcyB3aWxsIGJlIGp1c3QgdGhlIGlucHV0IHZhbHVlIGFzIHRoZSB2YXN0IG1ham9yaXR5IG9mCiAgICBzeXN0ZW1zIHJ1biBpbiBhIDE6MSBtb2RlLgoKICAgIEhvd2V2ZXIgaW4gc3lzdGVtcyB0aGF0IGFyZSBub3QgcnVubmluZyB0aGlzIHdheSBpdCBzaG91bGQgcmVwb3J0IHRoZQogICAgcGh5c2ljYWwgYWRkcmVzcyBvciB+MCBpZiBubyBtYXBwaW5nIGV4aXN0cyBmb3IgdGhlIGdpdmVuIHZpcnR1YWwKICAgIGFkZHJlc3MuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA0NTg0NTMwMWFmM2RlODY3NWMxZjdiYmM4MTVjNmRlMzU0NTI2MDVhCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgpEYXRlOglTdW4gRGVjIDcgMjI6MTI6NTAgMjAwOCArMDEwMAoKICAgIFBPU1QgTWFrZTogZml4IHRoZSBzdWItZGlyIGRlcGVuZGVuY2llcyBtaXNzaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCAyMjUyNTc3OWNiNTFmMWJiZTRlOTZmZWE3Yjc3OGRlMTkzNWE1YTY5CkF1dGhvcjogTWFydGluIE1pY2hsbWF5ciA8dGJtQGN5cml1cy5jb20+CkRhdGU6CVdlZCBBdWcgNiAxNDo0NDowNSAyMDA4ICswMzAwCgogICAgRml4IGEgdHlwbyBpbiBmd19lbnYuY29uZmlnCgogICAgUmVwb3J0ZWQtYnk6IE1hcnRpbiBNaWNobG1heXIgPHRibUBjeXJpdXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBiYTQ5MGI3NzYxYzYyYjU0OWMyMjJhOTcyM2U1MzJkYzgwMWEzODk5CkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJTW9uIERlYyAxIDE2OjIyOjQ1IDIwMDggLTA2MDAKCiAgICBSZW1vdmUgdW51c2VkIENPTkZJR19BRERSX1NUUkVBTUlORyBkZWZpbmVzCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCBkMTZkYTkzNDMwNTIwZDNlNDZjMWFiNTJlZWRhY2YzNmFiN2EyMzExCkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJTW9uIE5vdiAyNCAxMTo1NDo0NyAyMDA4IC0wNjAwCgogICAgY21kX21lbTogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgM2FlZDNhYTJjMTI4Y2U5ZmIzOWNhM2Y0ZTkzODVhNzQ5OWU5M2RiZgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBEZWMgMTQgMTA6Mjk6MzkgMjAwOCArMDEwMAoKICAgIEZpeCBuZXcgZm91bmQgQ0ZHXwoKICAgIEFsc28gZml4IHNvbWUgbWlub3IgdHlwb3MuCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMGUwYzg2MmVmZTcyNzllOTYwOWRiNzRkNzU4Y2QxYjg0YzZjNzIwOQpBdXRob3I6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CkRhdGU6CUZyaSBTZXAgMTkgMTI6MDc6MzQgMjAwOCArMDIwMAoKICAgIFJlbW92ZSBjb21waWxlciB3YXJuaW5nOiB0YXJnZXQgQ1BVIGRvZXMgbm90IHN1cHBvcnQgaW50ZXJ3b3JraW5nCgogICAgVGhpcyB3YXJuaW5nIGlzIGlzc3VlZCBieSBtb2Rlcm4gQVJNLUVBQkkgR0NDIG9uIG5vbi10aHVtYiB0YXJnZXRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFZsYWRpbWlyIFBhbmZpbG92IDxwdnJAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgoKY29tbWl0IGNkNjczNDUxMGE5ZmYwZjQxYzRhNzM1NjdkNDA4MGVhMDAzM2QyYzEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglNb24gTm92IDI0IDEzOjMzOjUxIDIwMDggKzAxMDAKCiAgICBGaXggRklUIGFuZCBGRFQgc3VwcG9ydCB0byBoYXZlIENPTkZJR19PRl9MSUJGRFQgYW5kIENPTkZJR19GSVQgaW5kZXBlbmRlbnQKCiAgICBGRFQgc3VwcG9ydCBpcyB1c2VkIGZvciBib3RoIEZJVCBzdHlsZSBpbWFnZXMgYW5kIGZvciBhcmNoaXRlY3R1cmVzCiAgICB0aGF0IGNhbiBwYXNzIGEgZmR0IGJsb2IgdG8gYW4gT1MgKHBwYywgbTY4aywgc3BhcmMpLgoKICAgIEZvciBvdGhlciBhcmNoaXRlY3R1cmVzIGFuZCBib2FyZHMgd2hpY2ggZG8gbm90IHBhc3MgYSBmZHQgYmxvYiB0byBhbgogICAgT1MgYnV0IHdhbnQgdG8gdXNlIHRoZSBuZXcgdUltYWdlIGZvcm1hdCwgd2UganVzdCBuZWVkIEZJVCBzdXBwb3J0LgoKICAgIE5vdyB3ZSBjYW4gaGF2ZSB0aGUgNCBmb2xsb3dpbmcgY29uZmlndXJhdGlvbnMgOgoKICAgIDEpIEZJVCBvbmx5CQkgICAgQ09ORklHX0ZJVAogICAgMikgZmR0IGJsb2Igb25seQkgICAgQ09ORklHX09GX0xJQkZEVAogICAgMykgYm90aAkJICAgIENPTkZJR19PRl9MSUJGRFQgJiBDT05GSUdfRklUCiAgICA0KSBub25lCQkgICAgbm9uZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMTllZjRmN2E2ZWYzYjcyNWFhOWZlNGI0ZjVmYjY3NmE4NDE2MDE3MgpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglXZWQgRGVjIDEwIDE1OjEzOjMyIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IERpc2FibGUgRUVQUk9NIHdyaXRlIGFjY2VzcyBvbiBQTUM0NDAgYm9hcmRzCgogICAgVGhpcyBwYXRjaCBkaXNhYmxlcyBFRVBST00gd3J0aWUgYWNjZXNzIGJ5IGRlZmF1bHQgb24gUE1DNDQwIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDViNjdhMTQzOWE3M2JhNmMzNDAwN2Q5ZmY2MGEyYzZhYTkwMjY1ZGYKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJV2VkIERlYyAxMCAxNToxMjo1NiAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBGaXggRXRoZXJuZXQgUEhZIExFRCBjb25maWd1cmF0aW9uIG9uIFBNQzQ0MCBib2FyZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA3MWZhMDcxNGZlNTEzNGJjODcxOGMzOGQ1MjYxZDI2N2U4ODU4MmJhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTm92IDE4IDE2OjM2OjEyIDIwMDggKzAxMDAKCiAgICBNSVBTOiBGbHVzaCBkYXRhIGNhY2hlIHVwb24gcmVsb2NhdGlvbgoKICAgIFRoaXMgcGF0Y2ggbm93IGFkZHMgYSBmbHVzaCB0byB0aGUgZGF0YSBjYWNoZSB1cG9uIHJlbG9jYXRpb24uIFRoZQogICAgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBpcyBtaXNzaW5nIHRoaXMuIE9ubHkgYSBjb21tZW50IHN0YXRlcyB0aGF0IGl0CiAgICBzaG91bGQgYmUgZG9uZS4gU28gbGV0J3MgcmVhbGx5IGRvIGl0IG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDQ0MTc0MzQzNjg4ZGJhMzI1NzFhMzQ1NTBkYmEwODk3MWM2NWZlZjEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMTggMTY6MzY6MjIgMjAwOCArMDEwMAoKICAgIE1JUFM6IEFkZCBDT05GSUdfU0tJUF9MT1dMRVZFTF9JTklUCgogICAgVGhpcyBwYXRjaCBhZGRzIHRoZSBDT05GSUdfU0tJUF9MT1dMRVZFTF9JTklUIG9wdGlvbiB0byBzdGFydC5TLiBUaGlzCiAgICBlbmFibGVzIHN1cHBvcnQgZm9yIGJvYXJkcyB3aGVyZSB0aGUgbG93bGV2ZWwgaW5pdGlhbGl6YXRpb24gaXMKICAgIGFscmVhZHkgZG9uZSB3aGVuIFUtQm9vdCBydW5zIChlLmcuIHZpYSBPbkNoaXAgUk9NKS4KCiAgICBUaGlzIHdpbGwgYmUgdXNlZCBpbiB0aGUgdXBjb21pbmcgVkNUSCBib2FyZCBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgZGIwOGVjYWE2ZWI4MTc2OTA0YjNiYWUxMDNhODVlZThmNzM1ZGM0MApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE5vdiAxMiAxMzoxODowMiAyMDA4ICswMTAwCgogICAgTUlQUzogQWRkIGJvYXJkX2Vhcmx5X2luaXRfZigpIHRvIGluaXRfc2VxdWVuY2UKCiAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIGJvYXJkX2Vhcmx5X2luaXRfZigpIGNhbGwgdG8gdGhlIE1JUFMgaW5pdAogICAgc2VxdWVuY2UuIEEgd2VhayBkdW1teSBpbXBsZW1lbnRhdGlvbiBpcyBhbHNvIGFkZGVkIHdoaWNoIGNhbiBiZQogICAgb3ZlcnJpZGRlbiBieSBhIGJvYXJkIHNwZWNpZmljIHZlcnNpb24uCgogICAgVGhpcyB3aWxsIGJlIHVzZWQgYnkgdGhlIHVwY29taW5nIFZDVEggYm9hcmQgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDlkMjNmYzU4NGM0YjdiOGJiOWVjYmVlNDg5MjBiMWIwNGIwOGZhMWIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBOb3YgMTIgMTM6MTg6MTkgMjAwOCArMDEwMAoKICAgIE1JUFM6IEFkZCBvbmVuYW5kX2luaXQoKSB0byBib2FyZC5jIGFuZCBtb3ZlIG5hbmRfaW5pdCgpCgogICAgVGhpcyBwYXRjaCBhZGRzIGEgY2FsbCB0byBvbmVuYW5kX2luaXQoKSBmb3IgT25lTkFORCBzdXBwb3J0IGFuZCBtb3ZlcwogICAgdGhlIG5hbmRfaW5pdCgpIGNhbGwgdG8gYW4gZWFybGllciBwbGFjZSwgc28gdGhhdCB0aGUgZW52aXJvbm1lbnQgY2FuCiAgICBiZSB1c2VkIGZyb20gTkFORCBhbmQgT25lTkFORC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IGQ4YmJjNTFjN2JhOWI3MzdhMjA5ODQzMzNkMTlmZTI4YTM1MjY0MzEKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVR1ZSBEZWMgOSAxMTozMjo0NiAyMDA4ICswOTAwCgogICAgc2g6IFVwZGF0ZSBzaDIvc2gyYSB0aW1lcgoKICAgIFJlbmVzYXMgU0gyL1NIMkEgdGltZXIgYnJva2VuLgogICAgVGhpcyBwYXRjaCBmaXggdGltZXIgZnVuY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGEzMTlmMTQ5NjIxMDExN2I3MzE5OGUzZDg4OWZmZmZhZjY4MjVkMDAKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgRGVjIDUgMDc6Mjc6MzcgMjAwOCArMDEwMAoKICAgIHNoOiByMmRwbHVzIGZpeCByZWdpc3RlciBhY2Nlc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDRkNGE5NjA1NWY2OTE3MzM1YTg5ZGJkZjJlNTU1NmZhNWFjMzI5ZjYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUdWUgRGVjIDIgMDc6NDA6MDMgMjAwOCArMDEwMAoKICAgIHNoOiByMmRwbHVzL2xvd2xldmVsX2luaXQ6IGNvZGluZyBzdHlsZSBmaXgKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGM1NGI5YTQyZDhmNWFiNWIyYTAzOWIzYTJlNmZkZThiNDI3NzQ1ZTUKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVR1ZSBOb3YgMjUgMTE6MDU6MTkgMjAwOCArMDkwMAoKICAgIHNoOiBDaGFuZ2VkIHZhbHVlIG9mIENBQ0hFX09DX05VTV9FTlRSSUVTIGFuZCBDQUNIRV9PQ19XQVlfU0hJRlQKCiAgICBTSDQgaXMgZGlmZmVyZW50IGEgdmFsdWUgb2YgQ0FDSEVfT0NfTlVNX0VOVFJJRVMgYW5kCiAgICBDQUNIRV9PQ19XQVlfU0hJRlQgZXZlcnkgQ1BVLgogICAgVGhpcyBwYXRjaCBjb3JyZWN0cyB0aGVzZSB2YWx1ZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGU5ZDVmMzU0OTc4ODViM2M2NWQ0OTRkMDlhNTI1ZDQ0M2RjY2NkM2IKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVRodSBOb3YgMjAgMTY6NDQ6NDIgMjAwOCArMDkwMAoKICAgIHNoOiBVcGRhdGUgc2ggdGltZXIgZnVuY3Rpb24KCiAgICBDaGFuZ2UgdG8gd3JpdGUvcmVhZFggZnVuY3Rpb24gYW5kIGZpeCB0aW1lciBwcm9ibGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBiODE3ODZjZmY0NzZjNDFlMzMyZWFlYjY3OTE1OGY2NTI3Y2Q2N2Q0CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgpEYXRlOglUdWUgTm92IDQgMTE6NTg6NTggMjAwOCArMDkwMAoKICAgIHNoOiBNaWdvLVI6IFVwZGF0ZSBCU0MgdmFsdWUKCiAgICBBIHZhbHVlIG9mIEJTQyBDUzQgd2FzIHdyb25nLCBGaXhlZCBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNTc4Mzc1OGZkMjYwYTAyZjQ0NTY2YWQ4ZjI5Zjg5OTU2NWNkMDQwMwpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJTW9uIE5vdiAxNyAxNjo1MjowOSAyMDA4ICswOTAwCgogICAgc2g6IFVwZGF0ZSBtczc3MjJzZSBib2FyZCBjb25maWcKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMTVlMjY5N2M5ZjdmYjJiYTY3MmExYTcwZjA3Y2Q2ZDlkNGU5MmI1MQpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJTW9uIE5vdiAxNyAxNjo1MzowOSAyMDA4ICswOTAwCgogICAgc2g6IFVwZGF0ZSBTdXBlckggc2VyaWFsIGRyaXZlcgoKICAgIFRoZSBhZGRyZXNzIG9mIFNDRlNSIHJlZ2lzdGVyIGlzIHdyb25nIGF0IFNINzcyMC9TSDc3MjEuCiAgICBUaGlzIHBhdGNoIGZpeCB0aGlzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA5YTFkMzU1N2RjZDQ3MzY1YzEyZWVhYjU4NGI4MjJlNTdkOTk0MzUyCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIE5vdiAxMSAyMjoyMDoxNSAyMDA4ICswMTAwCgogICAgc2g6IGZpeCByc2s3MjAzIGFuZCBNaWdvUiBvdXQgb2YgdHJlZSBidWlsZAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMTk1MWY4NDdmMGE4NTE4NTM4NzFiNjEzYWQ3Y2YyMWE1MjQyMjI2YwpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglXZWQgRGVjIDEwIDE0OjQxOjI1IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBURVhUX0JBU0UgZm9yIENQQ0k0MDUgYm9hcmRzCgogICAgVGhpcyBwYXRjaCBmaXhlcyBidWlsZGluZyBVLUJvb3QgZm9yIENQQ0k0MDUgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDhjOTJhZjdiMmZiZDYwYWU4NzM3OTQ3N2Y5M2M3ZWM5NDQxYjc0NTIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBEZWMgOSAyMDowODowMSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBSZW1vdmUgc29tZSBmZWF0dXJlcyBmcm9tIEFMUFIgdG8gZml0IGludG8gMjU2ayBhZ2FpbgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzYjA4OWU0Zjg4OWEyOTAyNDQ5ZDU1ZTA4MWM4ODZhZTYwN2NhZTg5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgRGVjIDEwIDEwOjMyOjU5IDIwMDggKzAxMDAKCiAgICBVQkk6IFNldCB1YmlfZGV2LnR5cGUgYmFjayB0byBERVZfVFlQRV9OT05FIHVwb24gZmFpbGluZyBpbml0aWFsaXphdGlvbgoKICAgIFdpdGggdGhpcyBwYXRjaCB3ZSBzZXQgdGhlIHR5cGUgYmFjayB0byBOT05FIHVwb24gZmFpbGluZyBVQkkgcGFydGl0aW9uCiAgICBpbml0aWFsaXphdGlvbi4gT3RoZXJ3aXNlIGZ1cnRoZXIgY2FsbHMgdG8gdGhlIFVCSSBzdWJzeXN0ZW0gd291bGQgdHJ5CiAgICB0byByZWFsbHkgYWNjZXNzIHRoZSBub24tZXhpc3RpbmcgVUJJIHBhcnRpdGlvbi4KCiAgICBUaGFua3MgdG8gTWljaGFlbCBMYXduaWNrIGZvciBwb2ludGluZyB0aGlzIG91dC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODE3MzI5MzUxNjM5YTg4OTVjZDliODdiMzNhZWZmMDQzZjNkNWE0NApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIERlYyAxMCAxMDoyODozMyAyMDA4ICswMTAwCgogICAgVUJJOiBSZXR1cm4gLUVOT01FTSB1cG9uIGZhaWxpbmcgbWFsbG9jCgogICAgUmV0dXJuIHdpdGggY29ycmVjdCBlcnJvciBjb2RlICgtRU5PTUVNKSBmcm9tIHViaV9hdHRhY2hfbXRkX2RldigpIHVwb24KICAgIGZhaWxpbmcgbWFsbG9jKCkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDIxNDUxODhiZWEyZGY4ZjJiNDdhODdlYzMwNzFiNTUwMjdlOGQwYWUKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglUdWUgRGVjIDkgMjM6MzQ6MTUgMjAwOCAtMDgwMAoKICAgIEZpeCBjb21waWxlIGVycm9yIGluIGJ1aWxkaW5nIE1CWDg2MFQuCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA4ZmFiNDllYTkxMWZlOTI1MzkyZmE1YWZjYzliYzczNzNhM2QwY2VlCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglUdWUgTm92IDI1IDExOjQyOjIwIDIwMDggKzAxMDAKCiAgICBtaWNyb2JsYXplOiBSZW1vdmUgWFVQVjJQIGJvYXJkCgogICAgLS0tCgogICAgTWljcm9ibGF6ZSBwbGF0Zm9ybXMgdXNlIGdlbmVyaWMgc2V0dGluZ3MgYW5kIHRvIGhhdmUKICAgIG1hbnkgcGxhdGZvcm1zIGlzIGNvbmZ1c2luZyB0aGF0J3Mgd2h5IEkgZGVjaWRlZCB0byByZW1vdmUgdGhpcwogICAgcGxhdGZvcm0gZnJvbSBVLUJPT1QuIG1sNDAxIHRyZWUgaXMgc3VmZmljaWVudCBmb3IgY292ZXJpbmcKICAgIGFsbCBNaWNyb2JsYXplIHBsYXRmb3Jtcy4KCiAgICBUaGlzIGNoYW5nZSB3aWxsIGdvIHRocm91Z2ggbWljcm9ibGF6ZSBjdXN0b2RpYW4gdHJlZS4KCmNvbW1pdCA5OWJhNmYzNTM1ODI3MjBkZWZmZjZlNmU2NzYxZGM0NTVhMjA3ZDMxCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gTm92IDI0IDE4OjI1OjQxIDIwMDggKzAxMDAKCiAgICBtaWNyb2JsYXplOiBSZW1vdmUgQ09ORklHX0xJQkZEVCBkdWUgdG8gZXJyb3IgaW4gY29tbW9uIGZpbGVzCgpjb21taXQgZTdkNTkxZTgyM2E5OTE1MTM4MzNhZjcwMzA0Njg0MDllMjVhM2IxMwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIE5vdiAyNCAxMTo0MzowMCAyMDA4ICswMTAwCgogICAgbWljcm9ibGF6ZTogRml4IG1sNDAxIHVhcnQxNjU1MCBzZXR0aW5nCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgoKY29tbWl0IGM4NWZmMDU1M2E4Y2ZiY2NhNTFjMTViOTQ3ZTFlZDU1ZDM4MTBhMzkKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBOb3YgMjQgMTE6Mzg6MjIgMjAwOCArMDEwMAoKICAgIG1pY3JvYmxhemU6IFNldCB1cCByZWxvY2F0aW9uIGlzIGRvbmUKCmNvbW1pdCBiY2I2ZGQ5MTg3ZDRiMjNjNzQ4NzA0NzY3YmQxMmQyMGM4MjllOTk2CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUdWUgRGVjIDkgMjM6MjA6MzEgMjAwOCAtMDUwMAoKICAgIHRvb2xzL25ldGNvbnNvbGU6IG5ldyBzY3JpcHQgZm9yIHdvcmtpbmcgd2l0aCBuZXRjb25zb2xlIG92ZXIgVURQCgogICAgV2hpbGUgdGhlIGRvYy9SRUFETUUuTmV0Q29uc29sZSBkb2VzIGhhdmUgYSBzbmlwcGV0IGZvciBwZW9wbGUgdG8KICAgIGNyZWF0ZSB0aGVpciBvd24gbmV0Y2F0IHNjcmlwdCwgaXQncyBhIGxvdCBlYXNpZXIgdG8gbWFrZSBhIHNpbXBsZQogICAgZGVkaWNhdGVkIHNjcmlwdCBhbmQgdGVsbCBwZW9wbGUgdG8gdXNlIGl0LgoKICAgIEFsc28gc3BydWNlIGl0IHVwIGEgYml0IHRvIG1ha2UgaXQgdXNlciBmcmllbmRseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgOGM1MTcwYTdkMDg4NjAxZDVmMzBkODUwOTMzODhkYWIxZjFlOGVjMApBdXRob3I6IFNvbmljIFpoYW5nIDxTb25pYy5aaGFuZ0BhbmFsb2cuY29tPgpEYXRlOglUdWUgRGVjIDkgMjM6MjA6MTggMjAwOCAtMDUwMAoKICAgIGZzL2ZhdDogaGFuZGxlIEZBVCBvbiBTQVRBCgogICAgVGhlIEZBVCBmaWxlIHN5c3RlbSBkcml2ZXIgc2hvdWxkIGFsc28gaGFuZGxlIEZBVCBvbiBTQVRBIGRldmljZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU29uaWMgWmhhbmcgPFNvbmljLlpoYW5nQGFuYWxvZy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNGNkOGVkNDA2MTVhN2Q3NDFlZjJmMDllZTUzNzc5ZWM2OTA3YjhhNgpBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CVR1ZSBEZWMgOSAyMzoyNjozMSAyMDA4IC0wODAwCgogICAgRml4IGNvbXBpbGUgZXJyb3IgaW4gYnVpbGRpbmcgTUJYODYwVC4KICAgIEJ1ZyB3YXMgaW50cm9kdWNlZCBpbiA5ZWI3OWJkODg1NmJjYWI4OTZlZDVlMWYxYmNhMTU5ODA3YTEyNGRkCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA5N2EyNGE3OGVlNmYzNGI4OWI4MjFjYjcwZWRhMWNmMzRhYTExZDk3CkF1dGhvcjogSmVycnkgVmFuIEJhcmVuIDxndmIudWJvb3RAZ21haWwuY29tPgpEYXRlOglNb24gTm92IDI0IDA4OjE1OjAyIDIwMDggLTA1MDAKCiAgICBsaWJmZHQ6IEZpeCByZWRlZmluZWQgdWludHB0cl90IHdhcm5pbmcgZm9yIFVTRV9IT1NUQ0MKCiAgICBDb21waWxpbmcgVS1Cb290IGluIGFuIG9sZCBPUyBlbnZpcm9ubWVudCAoUmVkSGF0LTcuMyAgOi0pCWdpdmVzIHRoZQogICAgZm9sbG93aW5nIHdhcm5pbmdzIGZyb20gRkRUOgoKICAgIGluY2x1ZGUvbGliZmR0X2Vudi5oOjUwOiB3YXJuaW5nOiByZWRlZmluaXRpb24gb2YgJ3VpbnRwdHJfdCcKICAgIC91c3IvaW5jbHVkZS9zdGRpbnQuaDoxMjk6IHdhcm5pbmc6ICd1aW50cHRyX3QnIHByZXZpb3VzbHkgZGVjbGFyZWQgaGVyZQoKICAgIEZpeDogUHJvdGVjdCB0aGUgZGVmaW5pdGlvbiBvZiB1aW50cHRyX3Qgd2hlbiBjb21waWxpbmcgb24gdGhlIGhvc3QKICAgIHN5c3RlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDFmYzJiMTY1YzUxZDZmNDBjOGQ1MDVmMWIzZWFlZmRiNjU5OWIxN2IKQXV0aG9yOiBHcmFlbWUgUnVzcyA8Z3JhZW1lLnJ1c3NAZ21haWwuY29tPgpEYXRlOglTYXQgTm92IDIyIDA4OjQzOjI5IDIwMDggKzExMDAKCiAgICBNb3ZlZCBzYzUyMCBQQ0kgZGVmaW5pdGlvbnMgdG8gc3RhbmQtYWxvbmUgZmlsZQoKICAgIFNpZ25lZCBPZmYgQnk6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzc0BnbWFpbC5jb20+Cgpjb21taXQgMWY1MDcwYzBjMThmYTU2ODRiZmNlMDljOGFiZGYxMGMwNGVkNDhmYQpBdXRob3I6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzc0BnbWFpbC5jb20+CkRhdGU6CVNhdCBOb3YgMjIgMDg6NDM6MjEgMjAwOCArMTEwMAoKICAgIEZpeGVkIHBhdGggdG8gc2M1MjAgU1NJIGluY2x1ZGUgZmlsZQoKICAgIFNpZ25lZCBPZmYgQnk6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzc0BnbWFpbC5jb20+Cgpjb21taXQgZDRmNzBkYTU0NGMzM2RiM2U0ZmNlNjQ3M2RlYTRlY2NhNDMyMjU0NQpBdXRob3I6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzc0BnbWFpbC5jb20+CkRhdGU6CUZyaSBOb3YgMjEgMDY6Mjg6MDUgMjAwOCArMTEwMAoKICAgIEZpeGVkIGJ1aWxkIGVycm9yIGR1ZSB0byAjZGVmaW5lIG9mIF9MSU5VWF9TVFJJTkdfSF8gaW4gODI1NTlfZWVwcm9tLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFlbWUgUnVzcyA8Z3JhZW1lLnJ1c3NAZ21haWwuY29tPgoKY29tbWl0IGMwMzQwNzVhNzEzYjYwZTY1NGM2NGU4OGU4N2RhMjk0NDBmMzFiYjQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBOb3YgMTIgMTM6MzA6MTAgMjAwOCArMDEwMAoKICAgIHNlcmlhbDogQWRkIHZjdGggVUFSVCBkcml2ZXIKCiAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIFVBUlQgZHJpdmVyIGZvciB0aGUgdXBjb21pbmcgVkNUSCBib2FyZCBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxNDJhODBmZmMzYjUzN2E5YzQ1YWNkMjQ0NGE0MmE3N2YxNDdjNjAyCkF1dGhvcjogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+CkRhdGU6CVRodSBOb3YgMTMgMTk6NDk6MzYgMjAwOCArMDMwMAoKICAgIGpmZnMyOiBjYWNoZSBkYXRhX2NyYyByZXN1bHRzCgogICAgQXMgd2UgbW92ZWQgZGF0YV9jcmMoKSBpbnZvY2F0aW9uIGZyb20gamZmczJfMXBhc3NfYnVpbGRfbGlzdHMoKSB0bwogICAgamZmczJfMXBhc3NfcmVhZF9pbm9kZSgpIGRhdGFfY3JjIGlzIGdvaW5nIHRvIGJlIGNhbGN1bGF0ZWQgb24gZWFjaAogICAgaW5vZGUgYWNjZXNzLiBUaGlzIHBhdGNoIGFkZHMgY2FjaGluZyBvZiBkYXRhX2NyYygpIHJlc3VsdHMuIFRoZXJlCiAgICBpcyBubyBzaWduaWZpY2FudCBpbXByb3ZlbWVudCBpbiBzcGVlZCAoYmVjYXVzZSBvZiBmbGFzaCBhY2Nlc3MKICAgIGNhY2hpbmcgYWRkZWQgaW4gcHJldmlvdXMgcGF0Y2ggSSB0aGluaywgY3JjIGluIFJBTSBpcyByZWFsbHkgZmFzdCkKICAgIGJ1dCB0aGlzIHBhdGNoIGltcGFjdHMgbWVtb3J5IHVzYWdlIC0tIGV2ZXJ5IGJfbm9kZSBzdHJ1Y3R1cmUgdXNlcwogICAgMTIgYnl0ZXMgaW5zdGVhZCBvZiA4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsZXhleSBOZXltYW4gPGF2bkBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IElseWEgWWFub2sgPHlhbm9rQGVtY3JhZnQuY29tPgoKY29tbWl0IDliNzA3NjIyOWVjNmE5NThiZDgzNWFiNzA3NDVmNzY3NjI5N2NlODIKQXV0aG9yOiBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KRGF0ZToJVGh1IE5vdiAxMyAxOTo0OTozNSAyMDA4ICswMzAwCgogICAgamZmczI6IHN1bW1hcnkgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciByZWFkaW5nIGZzIGluZm9ybWF0aW9uIGZyb20gc3VtbWFyeQogICAgbm9kZSBpbnN0ZWFkIG9mIHNjYW5uaW5nIGZ1bGwgZXJhc2VibG9jay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KCmNvbW1pdCA3MDc0MTAwNGRjMjg5NDZjZDgyYzdhZjY3ODljNGRkYjNmYzk0NTI2CkF1dGhvcjogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+CkRhdGU6CVRodSBOb3YgMTMgMTk6NDk6MzQgMjAwOCArMDMwMAoKICAgIGpmZnMyOiBhZGQgYnVmZmVyIHRvIGNhY2hlIGZsYXNoIGFjY2Vzc2VzCgogICAgV2l0aCB0aGlzIHBhdGNoIEpGRlMyIGNvZGUgYWxsb2NhdGVzIG1lbW9yeSBidWZmZXIgb2YgbWF4X3RvdGxlbiBzaXplCiAgICAoc2l6ZSBvZiB0aGUgbGFyZ2VzdCBub2RlLCBjYWxjdWxhdGVkIGR1cmluZyBzY2FuIHRpbWUpIGFuZCB1c2VzIGl0IHRvCiAgICBzdG9yZSBlbnRpcmUgbm9kZS4gU3BlZWRzIHVwIGxvYWRpbmcuIElmIG1hbGxvYyBmYWlscyB3ZSB1c2Ugb2xkIHdheXMKICAgIHRvIGRvIHRoaW5ncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGV4ZXkgTmV5bWFuIDxhdm5AZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KCmNvbW1pdCA4YTM2ZDMxZjcyNDExMTQ0YWMwNDEyZWU3ZTE4ODBlODAxYWNkNzU0CkF1dGhvcjogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+CkRhdGU6CVRodSBOb3YgMTMgMTk6NDk6MzMgMjAwOCArMDMwMAoKICAgIGpmZnMyOiByZXdyaXRlIGpmZnMyIHNjYW5uaW5nIGNvZGUgYmFzZWQgb24gTGludXggb25lCgogICAgUmV3cml0ZXMgamZmczJfMXBhc3NfYnVpbGRfbGlzdHMoKSBmdW5jdGlvbiBpbiBzdHlsZSBvZiBMaW51eCdzCiAgICBqZmZzMl9zY2FuX21lZGl1bSgpIGFuZCBqZmZzMl9zY2FuX2VyYXNlYmxvY2soKS4KICAgIFRoaXMgaW5jbHVkZXM6CiAgICAgLSBDYWNoaW5nIGZsYXNoIGFjY2VzZXMKICAgICAtIFNtYXJ0IGRlYWxpbmcgd2l0aCBmcmVlIHNwYWNlCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGV5IE5leW1hbiA8YXZuQGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+Cgpjb21taXQgZTBiNTUzMjU3OWVkYThiNDYyOWYxYjRmNmU0OWMzY2M2MGY1MjIzNwpBdXRob3I6IElseWEgWWFub2sgPHlhbm9rQGVtY3JhZnQuY29tPgpEYXRlOglUaHUgTm92IDEzIDE5OjQ5OjMyIDIwMDggKzAzMDAKCiAgICBqZmZzMjogYWRkIHNlY3Rvcl9zaXplIGZpZWxkIHRvIHBhcnRfaW5mbyBzdHJ1Y3R1cmUKCiAgICBUaGlzIHBhdGNoIGFkZHMgc2VjdG9yX3NpemUgZmllbGQgdG8gcGFydF9pbmZvIHN0cnVjdHVyZSAodXNlZAogICAgYnkgbmV3IEpGRlMyIGNvZGUpLgoKICAgIFNpZ25lZC1vZmYtYnk6IElseWEgWWFub2sgPHlhbm9rQGVtY3JhZnQuY29tPgoKY29tbWl0IGY3Mzg0Njk1Njc3OGE3ZGZlZTgzNDAzZWY5NzQ3YWZmNzcxOTg4NDgKQXV0aG9yOiBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KRGF0ZToJVGh1IE5vdiAxMyAxOTo0OTozMSAyMDA4ICswMzAwCgogICAgamZmczI6IGZpeCBzZWFyY2hpbmcgZm9yIGxhdGVzdCB2ZXJzaW9uIGluIGpmZnMyXzFwYXNzX2xpc3RfaW5vZGVzKCkKCiAgICBXZSBuZWVkIHRvIHVwZGF0ZSBpX3ZlcnNpb24gaW5zaWRlIGN5Y2xlIHRvIGZpbmQgcmVhbGx5IGxhdGVzdCB2ZXJzaW9uCiAgICBpbnNpZGUgamZmczJfMXBhc3NfbGlzdF9pbm9kZXMoKS4gV2l0aCB0aGF0IGZpeGVkIHdlIGNhbiB1c2UgaXNpemUgaW5zaWRlCiAgICBkdW1wX2lub2RlKCkgaW5zdGVhZCBvZiBjYWxsaW5nIGV4cGVuc2l2ZSBqZmZzMl8xcGFzc19yZWFkX2lub2RlKCkuCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGV5IE5leW1hbiA8YXZuQGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+Cgpjb21taXQgMTExM2NiNzY0YjNkYTI1NmVmOGExZjk1MzlmNGVmYmUyMjFmZjNjNApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBEZWMgOSAyMzoxMzo1MSAyMDA4ICswMTAwCgogICAgZXZiNjQyNjA6IGZpeCAiY2FzdCB0byBwb2ludGVyIGZyb20gaW50ZWdlciBvZiBkaWZmZXJlbnQgc2l6ZSIgd2FybmluZ3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGQyNzc2ODI3MzE1YzNkNDY5YjhjYjRjZWMxNGQ1ODg3Nzc5OGRhYTIKQXV0aG9yOiBTdGVmYW4gQWx0aG9lZmVyIDxzdGVmYW4uYWx0aG9lZmVyQHdlYi5kZT4KRGF0ZToJU3VuIERlYyA3IDE5OjM5OjExIDIwMDggKzAxMDAKCiAgICBVU0I6IGRlc2NyaXB0b3IgaGFuZGxpbmcKCiAgICBIaSwKCiAgICBJIGZvdW5kIGEgYnVnIHdoZW4gd29ya2luZyB3aXRoIHRoZSB1LWJvb3QgVVNCIHN1YnN5c3RlbSBvbiBJWFA0MjUgcHJvY2Vzc29yCiAgICAoYmlnIGVuZGlhbiBYc2NhbGUgYWthIEFSTXY1KS4KICAgIEkgcmVjb2duaXplZCB0aGF0IHRoZSBzZWNvbmQgdXNiX2VuZHBvaW50X2Rlc2NyaXB0b3Igb2YgdGhlIGF0dGFjaGVkIG1lbW9yeQogICAgc3RpY2sgd2FzIGNvcnJ1cHRlZC4KCiAgICBUaGUgcmVhc29uIGZvciB0aGlzIGFyZSB0aGUgcGFja2VkIHN0cnVjdHVyZXMgYmVsb3cgKGVpdGhlciB1LWJvb3QgYW5kCiAgICB1LWJvb3QtdXNiKToKCiAgICAtLS0tLS0tLS0tLS0tLQogICAgLyogRW5kcG9pbnQgZGVzY3JpcHRvciAqLwogICAgc3RydWN0IHVzYl9lbmRwb2ludF9kZXNjcmlwdG9yIHsKCXVuc2lnbmVkIGNoYXIgIGJMZW5ndGg7Cgl1bnNpZ25lZCBjaGFyICBiRGVzY3JpcHRvclR5cGU7Cgl1bnNpZ25lZCBjaGFyICBiRW5kcG9pbnRBZGRyZXNzOwoJdW5zaWduZWQgY2hhciAgYm1BdHRyaWJ1dGVzOwoJdW5zaWduZWQgc2hvcnQgd01heFBhY2tldFNpemU7Cgl1bnNpZ25lZCBjaGFyICBiSW50ZXJ2YWw7Cgl1bnNpZ25lZCBjaGFyICBiUmVmcmVzaDsKCXVuc2lnbmVkIGNoYXIgIGJTeW5jaEFkZHJlc3M7CgogICAgfSBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSk7CiAgICAvKiBJbnRlcmZhY2UgZGVzY3JpcHRvciAqLwogICAgc3RydWN0IHVzYl9pbnRlcmZhY2VfZGVzY3JpcHRvciB7Cgl1bnNpZ25lZCBjaGFyICBiTGVuZ3RoOwoJdW5zaWduZWQgY2hhciAgYkRlc2NyaXB0b3JUeXBlOwoJdW5zaWduZWQgY2hhciAgYkludGVyZmFjZU51bWJlcjsKCXVuc2lnbmVkIGNoYXIgIGJBbHRlcm5hdGVTZXR0aW5nOwoJdW5zaWduZWQgY2hhciAgYk51bUVuZHBvaW50czsKCXVuc2lnbmVkIGNoYXIgIGJJbnRlcmZhY2VDbGFzczsKCXVuc2lnbmVkIGNoYXIgIGJJbnRlcmZhY2VTdWJDbGFzczsKCXVuc2lnbmVkIGNoYXIgIGJJbnRlcmZhY2VQcm90b2NvbDsKCXVuc2lnbmVkIGNoYXIgIGlJbnRlcmZhY2U7CgoJdW5zaWduZWQgY2hhciAgbm9fb2ZfZXA7Cgl1bnNpZ25lZCBjaGFyICBudW1fYWx0c2V0dGluZzsKCXVuc2lnbmVkIGNoYXIgIGFjdF9hbHRzZXR0aW5nOwoJc3RydWN0IHVzYl9lbmRwb2ludF9kZXNjcmlwdG9yIGVwX2Rlc2NbVVNCX01BWEVORFBPSU5UU107CiAgICB9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKICAgIC0tLS0tLS0tLS0tLQoKICAgIEFzIHVzYl9lbmRwb2ludF9kZXNjcmlwdG9yIGlzIG9ubHkgN2J5dGUgaW4gbGVuZ3RoLCB0aGUgc3RhcnQgb2YgYWxsCiAgICBvZGQgZXBfZGVzY1tdIHN0cnVjdHVyZXMgaXMgbm90IHdvcmQgYWxpZ25lZC4gVGhpcyBtYWtlcyB3TWF4UGFja2V0U2l6ZQogICAgb2YgdGhlc2Ugc3RydWN0dXJlcyBhbHNvIG5vdCB3b3JkIGFsaWduZWQuCgogICAgQVJNdjUgQXJjaGl0ZWN0dXJlIGhvd2V2ZXIgZG9lcyBub3Qgc3VwcG9ydCBub24tYWxpZ25lZCBtdWx0aWJ5dGUKICAgIGRhdGEgdHlwZSAoc2VlIEEyLjggb2YgQVJNIEFyY2hpdGVjdHVyZSBSZWZlcmVuY2UgTWFudWFsKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gQWx0aG9lZmVyIDxzdGVmYW4uYWx0aG9lZmVyQHdlYi5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQsO2aG1lciA8bGludXhAYm9obWVyLm5ldD4KCmNvbW1pdCA0YzI1M2ZkYjJhMTc1ZWEzNDcyYzM4YTE0NTVhMTZmYWE1OGU4MWYwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIERlYyA5IDEwOjI3OjMzIDIwMDggLTA2MDAKCiAgICBkcml2ZXJzL2ZzbF9wY2lfaW5pdDogRml4IGNvbXBpbGUgd2FybmluZwoKICAgIGZzbF9wY2lfaW5pdC5jOiBJbiBmdW5jdGlvbiAnZnNsX3BjaV9zZXR1cF9pbmJvdW5kX3dpbmRvd3MnOgogICAgZnNsX3BjaV9pbml0LmM6MTIyOiB3YXJuaW5nOiBjb21wYXJpc29uIGlzIGFsd2F5cyB0cnVlIGR1ZSB0byBsaW1pdGVkIHJhbmdlIG9mIGRhdGEgdHlwZQoKICAgIFRoZSBjaGVjayBvbmx5IG1ha2VzIHNlbnNlIGlmIHdlIGFyZSBDT05GSUdfUEhZU182NEJJVAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZGVkYWNjMThhOGMyYjM5NTE1ODFlYjcyMWZhMDU1YTRlMGFjNDg0NQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBEZWMgNyAwOTo0NTozNSAyMDA4ICswMTAwCgogICAgdXNidHR5L29tYXA6IHVwZGF0ZSB0byBjdXJyZW50IEFQSQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IELDtmhtZXIgPGxpbnV4QGJvaG1lci5uZXQ+Cgpjb21taXQgZWUyZTliYTkxN2E2MmNjMmUzYTQ4NGJiNzljOGRhMGUwMWNiOTNlZApBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJVHVlIERlYyA5IDE3OjUyOjA1IDIwMDggKzAxMDAKCiAgICB2aWRlbzogZml4IEZBRFM4MjMgYW5kIFJSdmlzaW9uIGNvbXBpbGluZyBpc3N1ZXMKCiAgICBTaW5jZSBjb21taXQgNTYxODU4ZWUgYnVpbGRpbmcgZm9yIEZBRFM4MjMgYW5kIFJSdmlzaW9uCiAgICBkb2Vzbid0IHdvcmsuIExldCdzIGluY2x1ZGUgdmVyc2lvbi5oIGFuZCB0aW1lc3RhbXAuaAogICAgdW5jb25kaXRpb25hbGx5IHRvIGZpeCB0aGUgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgMmQyZTA1NzI3ZmU0MDEzZjgwN2ZmYTgxNGRmZjBlNzUyNTlhMWRiNApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIERlYyAyIDEwOjUzOjQ3IDIwMDggKzAxMDAKCiAgICBVQkk6IEZpeCBzaXplIHBhcnNpbmcgaW4gInViaSBjcmVhdGUiCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDJlZTk1MWJhMmFjOTg3NGQyYTkzZDUyZTdhMTg3ZDMxODRiZTkzN2UKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBOb3YgMjcgMTQ6MDc6MDkgMjAwOCArMDEwMAoKICAgIFVCSTogRW5hYmxlIHJlLWluaXRpYWxpemluZyBvZiB0aGUgInViaSBwYXJ0IiBjb21tYW5kCgogICAgV2l0aCB0aGlzIHBhdGNoIG5vdywgdGhlIHVzZXIgY2FuIGNhbGwgInViaSBwYXJ0IiBtdWx0aXBsZSB0aW1lcyB0bwogICAgcmUtY29ubmVjdCB0aGUgVUJJIGRldmljZSB0byBhbm90aGVyIE1URCBwYXJ0aXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDlkZWYxMmNhZTMzZDJkM2VhMmRkNTZiMTk3ZmQzZGZiM2FkNjBiZjQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBOb3YgMjcgMTQ6MDU6MTUgMjAwOCArMDEwMAoKICAgIE1URDogRml4IHByb2JsZW0gYmFzZWQgb24gbm9uLXdvcmtpbmcgcmVsb2NhdGlvbiAobGlzdCBoZWFkIG10ZF9wYXJ0aXRpb25zKQoKICAgIERvbid0IHVzZSBMSVNUX0hFQUQoKSBidXQgaW5pdGlhbGl6ZSB0aGUgc3RydWN0IHZpYSBJTklUX0xJU1RfSEVBRCgpIHVwb24KICAgIGZpcnN0IGNhbGwgb2YgYWRkX210ZF9wYXJ0aXRpb25zKCkuIE90aGVyd2lzZSB0aGlzIHdvbid0IHdvcmsgb24gcGxhdGZvcm1zCiAgICB3aGVyZSB0aGUgcmVsb2NhdGlvbiBpcyBicm9rZW4gKGxpa2UgTUlQUyBvciBQUEMpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1ZTNhYjY4ZTlhY2Y5ZWRmMzA0YjhhYTMyYWQ3ZTAwNTQ4M2EyYzQ3CkF1dGhvcjogVHJlbnQgUGllcGhvIDx0cGllcGhvQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBOb3YgMTIgMTc6Mjk6NDggMjAwOCAtMDgwMAoKICAgIFNlY3Rpb24gbmFtZSBzaG91bGQgYmUgIi5kYXRhIiwgbm90ICJkYXRhIgoKICAgIFNpZ25lZC1vZmYtYnk6IFRyZW50IFBpZXBobyA8dHBpZXBob0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3ZmE2YTJmM2I2NjU3OWRlYThiYzFhOTE3NzY0NmUxMTQxNzMxYjE1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIERlYyA5IDAwOjM5OjA4IDIwMDggKzAxMDAKCiAgICBNQUtFQUxMOiBBdXRvbWF0aWNhbGx5IHVzZSBwYXJhbGxlbCBidWlsZHMKCiAgICBBZGQgbG9naWMgdG8gdGhlIE1BS0VBTEwgc2NyaXB0IHRvIGRldGVybWluZSB0aGUgbnVtYmVyIG9mIENQVSBjb3JlcwogICAgb24gdGhlIHN5c3RlbSwgYW5kIHJ1biBhIHBhcmFsbGVsIGJ1aWxkIGlmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUuCiAgICBVc3VhbGx5IHRoaXMgc2lnbmlmaWNhbnRybHkgYWNjZWxlcmF0ZXMgYnVpbGRzLgoKICAgIEFsbG93IHRvIG1hbnVhbGx5IGFkanVzdCB0aGUgbnVtYmVyIG9mIHBhcmFsbGVsIG1ha2Ugam9icyBieSB1c2luZwogICAgdGhlICJCVUlMRF9OQ1BVUyIgZW52aXJvbm1lbnQgdmFyaWFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyNjg0MDVmYTdjNDQxNTZjNTE5MmE3MDc3OTkyMGM3MDkwNmFmOGQ2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIERlYyA5IDAwOjI0OjMwIDIwMDggKzAxMDAKCiAgICB2eHdvcmtzLmg6IEZpeCBidWlsZCBwcm9ibGVtIGludHJvZHVjZWQgYnkgY29tbWl0cyAyOWE0YzI0ZC9lOTA4NGIyMwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMTUzMTc2YTk0MTQxMjBjYTE3MzZmM2NjNDk1MTYyM2Q2ZTE0ZTZhZgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVR1ZSBOb3YgMTEgMDY6MDg6NTkgMjAwOCArMDEwMAoKICAgIGF2cjMyL2Jvb3RtOiByZW1vdmUgdW51c2VkIHZhcmlhYmxlICdyZXQnCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIEFja2VkLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNDM0YzUxYTVlNjJmNjA4YTJhNzhlZDUzOThhYzQzYTFjNzdjYzE4MwpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CVdlZCBOb3YgMTIgMTM6MDY6NDggMjAwOCAtMDYwMAoKICAgIFJlbW92ZSB1bm5lZWRlZCBDT05GSUdfU0hFTEwgcmVmZXJlbmNlcwoKICAgIE1ha2Ugc2hvdWxkIGJlIHVzaW5nIHRoZSBiYXNoIHNoZWxsIGJ5IGRlZmF1bHQgd2hpY2ggbWFrZXMKICAgIENPTkZJR19TSEVMTCB1bm5lY2Vzc2FyeQoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgY2Y3YTdiOTk3OTRiYWM5MzY4OTk4MTliOTU1MzliZTFkYmQ3MTcwOApBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CVdlZCBOb3YgMTIgMTI6MzM6MjAgMjAwOCAtMDYwMAoKICAgIFVzZSBiYXNoIGZvciBkZWZhdWx0IEdOVSBNYWtlIHNoZWxsIGFwcGxpY2F0aW9uCgogICAgU29tZSBNYWtlIHNjcmlwdCBjb21tYW5kcyByZWx5IG9uIGJhc2gtc3BlY2lmaWMgZmVhdHVyZXMgbGlrZSBicmFjZQogICAgZXhwYW5zaW9uLCBzbyBkZWZhdWx0IHRvIGJhc2ggZm9yIHRoZSBTSEVMTCB2YXJpYWJsZSB3aXRoIGEgZmFsbGJhY2sKICAgIHRvIHRoZSBzdGFuZGFyZCBzaCBzaGVsbAoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgNGI1MzAwMTg3NjQ5MzRhZDU2ODkxOTZlOWFhNTcxNGE2ZjRkMWE2YwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglXZWQgTm92IDEyIDA5OjUwOjQ1IDIwMDggKzAxMDAKCiAgICBqZmZzMjogcmVuYW1lIGRldmljZXNfaW5pdCAoKSBpbiBjb21tb24vamZmczIuYwoKICAgIHJlbmFtZSBkZXZpY2VzX2luaXQgKCkgaW4gY29tbW9uL2pmZnMyLmMgdG8KICAgIGpmZnMyX2RldmljZXNfaW5pdCAoKSwgYmVjYXVzZSB0aGVyZSBpcyBhbHNvIGEKICAgIGRldmljZXNfaW5pdCAoKSBpbiBjb21tb24vZGV2aWNlcy5jLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGFmNWViODQ3YTEwZjEwMzc1OTAwMDEzNTVkODhiYWIzZmU3YmU0OGIKQXV0aG9yOiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+CkRhdGU6CU1vbiBOb3YgMTAgMTI6NDY6MjAgMjAwOCArMDAwMAoKICAgIFNQQVJDOiBGaXhlZCBjb21waWxlciBlcnJvciBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCBjMTYwYTk1NDQ3NDMKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGEgYnVpbGQgZXJyb3IgZm9yIHRoZSBTUEFSQyBwbGF0Zm9ybS4gSXQgd2FzCiAgICBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCBjMTYwYTk1NDQ3NDNlODBlODg4OWVkYjIyNzU1MzhlNzc2NGNlMzM0LgoKICAgIFNpZ25lZC1vZmYtYnk6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KCmNvbW1pdCA0YzYwMjU5ODk5YWEwMGY1OWRiMGQ5MzZiODgwN2Y5YTI2NDExYzBmCkF1dGhvcjogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQGRlbnguZGU+CkRhdGU6CVN1biBOb3YgOSAxMjo1MDo1OSAyMDA4ICswMTAwCgogICAgbWdzdXZkIGFkZCB0aGUgYm9hcmQtc3BlY2lmaWMgcGFydCBvZiB0aGUgSERMQyBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBHYXJ5IEplbm5lam9obiA8Z2FyeWpAZGVueC5kZT4KCmNvbW1pdCA1MzRhNDM1OTY2NmFmNDhiZDY5YTM3NDNkOGE4YzJiZGIxZDNlYzcwCkF1dGhvcjogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQGRlbnguZGU+CkRhdGU6CVN1biBOb3YgOSAxMjo0NTowMyAyMDA4ICswMTAwCgogICAgbWdjb2dlIGFkZCB0aGUgYm9hcmQtc3BlY2lmaWMgcGFydCBvZiB0aGUgSERMQyBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBHYXJ5IEplbm5lam9obiA8Z2FyeWpAZGVueC5kZT4KCmNvbW1pdCAxMzVmNTUzNDUzOGJiOGVhNGYzOGE3MDMwZGExMjE4N2QyMmVmN2UwCkF1dGhvcjogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQGRlbnguZGU+CkRhdGU6CVN1biBOb3YgOSAxMjozNjoxNSAyMDA4ICswMTAwCgogICAga2V5bWlsZSBhZGQgdGhlIGNvbW1vbiBwYXJ0cyBvZiB0aGUgSERMQyBkcml2ZXIKCiAgICBUaGlzIGltcGxlbWVudHMgdGhlIElDTiBwcm90b2NvbCB1c2VkIGFjcm9zcyB0aGUgYmFja3BsYW5lIGFuZCBpcwogICAgbmVlZGVkIGJ5IGFsbCB0aGUga2V5bWlsZSBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQGRlbnguZGU+Cgpjb21taXQgMWNiODJhOTIwN2E1NTA1NTczOTllYWJjN2ZlNDdmMjFiYmQ5ZGRmOApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBOb3YgNyAyMjo0NjoyMiAyMDA4ICswMTAwCgogICAgZHJpdmVycy9iaW9zX2VtdWxhdG9yOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBiY2RmMWQyY2Y2YjI0ZmI5MDVmZDdkYTgwZGE0YjNjNjVhNzk5NWI1CkF1dGhvcjogUmljaGFyZCBSZXRhbnVidW4gPFJpY2hhcmRSZXRhbnVidW5AUnVnZ2VkQ29tLmNvbT4KRGF0ZToJVGh1IE5vdiA2IDE0OjAxOjUxIDIwMDggLTA1MDAKCiAgICBjb21tb24vY21kX2lkZS5jOiBDb3JyZWN0ZWQgZW5kaWFuIG9yZGVyIHByaW50aW5nIGZvciBjb21wYWN0IGZsYXNoIHNlcmlhbCBudW1iZXIuCgogICAgQ29ycmVjdGVkIGVuZGlhbiBvcmRlciBwcmludGluZyBmb3IgY29tcGFjdCBmbGFzaCBzZXJpYWwgbnVtYmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+Cgpjb21taXQgMTZhMjhlZjIxOWMyNzQyM2ExZWY1MDJmMTkwNzBjNGQzNzUwNzliOApBdXRob3I6IEdhcnkgSmVubmVqb2huIDxnYXJ5akBkZW54LmRlPgpEYXRlOglUaHUgTm92IDYgMTU6MDQ6MjMgMjAwOCArMDEwMAoKICAgIElPTVVYOiBBZGQgY29uc29sZSBtdWx0aXBsZXhpbmcgc3VwcG9ydC4KCiAgICBNb2RpZmljYXRpb25zIHRvIHN1cHBvcnQgY29uc29sZSBtdWx0aXBsZXhpbmcuICBUaGlzIGlzIGNvbnRyb2xsZWQgdXNpbmcKICAgIENPTkZJR19TWVNfQ09OU09MRV9NVVggaW4gdGhlIGJvYXJkIGNvbmZpZ3VyYXRpb24gZmlsZS4KCiAgICBUaGlzIGFsbG93cyBhIHVzZXIgdG8gc3BlY2lmeSBtdWx0aXBsZSBjb25zb2xlIGRldmljZXMgaW4gdGhlIGVudmlyb25tZW50CiAgICB3aXRoIGEgY29tbWFuZCBsaWtlIHRoaXM6IHNldGVudiBzdGRpbiBzZXJpYWwsbmMuICBBcyBhIHJlc3VsdCwgdGhlIHVzZXIgY2FuCiAgICBlbnRlciB0ZXh0IG9uIGJvdGggdGhlIHNlcmlhbCBhbmQgbmV0Y29uc29sZSBpbnRlcmZhY2VzLgoKICAgIEFsbCBkZXZpY2VzIC0gc3RkaW4sIHN0ZG91dCBhbmQgc3RkZXJyIC0gY2FuIGJlIHNldCBpbiB0aGlzIG1hbm5lci4KCiAgICAxKSBjb21tb24vaW9tdXguYyBhbmQgaW5jbHVkZS9pb211eC5oIGNvbnRhaW4gdGhlIGVudmlyb25tZW50IHNldHRpbmcKICAgIGltcGxlbWVudGF0aW9uLgogICAgMikgZG9jL1JFQURNRS5pb211eCBjb250YWlucyBhIHNvbWV3aGF0IG1vcmUgZGV0YWlsZWQgZGVzY3JpcHRpb24uCiAgICAzKSBUaGUgaW1wbGVtZW50YXRpb24gaW4gKDEpIGlzIGNhbGxlZCBmcm9tIGNvbW1vbi9jbWRfbnZlZGl0LmMgdG8KICAgIGhhbmRsZSBzZXRlbnYgYW5kIGZyb20gY29tbW9uL2NvbnNvbGUuYyB0byBoYW5kbGUgaW5pdGlhbGl6YXRpb24gb2YKICAgIGlucHV0L291dHB1dCBkZXZpY2VzIGF0IGJvb3QgdGltZS4KICAgIDQpIGNvbW1vbi9jb25zb2xlLmMgYWxzbyBjb250YWlucyB0aGUgY29kZSBuZWVkZWQgdG8gcG9sbCBtdWx0aXBsZSBjb25zb2xlCiAgICBkZXZpY2VzIGZvciBpbnB1dCBhbmQgc2VuZCBvdXRwdXQgdG8gYWxsIGRldmljZXMgcmVnaXN0ZXJlZCBmb3Igb3V0cHV0LgogICAgNSkgaW5jbHVkZS9jb21tb24uaCBpbmNsdWRlcyBpb211eC5oIGFuZCBjb21tb24vTWFrZWZpbGUgZ2VuZXJhdGVzIGlvbXV4Lm8KICAgIHdoZW4gQ09ORklHX1NZU19DT05TT0xFX01VWCBpcyBzZXQuCgogICAgU2lnbmVkLW9mZi1ieTogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQGRlbnguZGU+Cgpjb21taXQgNzc0Y2U3MjAyNmY3NGFjOTY0MWJjYmJjNTg4YjIwZjJlMTNmN2FiOApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVHVlIE5vdiA0IDE2OjAzOjQ2IDIwMDggLTA1MDAKCiAgICBzdHJpbmdzOiB1c2UgcHV0cygpIHJhdGhlciB0aGFuIHByaW50ZigpCgogICAgV2hlbiBydW5uaW5nIGBzdHJpbmdzYCBvbiByZWFsbHkgbG9uZyBzdHJpbmdzLCB0aGUgc3RhY2sgdGVuZHMgdG8gZ2V0CiAgICBzbWFzaGVkIGR1ZSB0byBwcmludGYoKS4gIFN3aXRjaCB0byBwdXRzKCkgaW5zdGVhZCBzaW5jZSB3ZSdyZSBvbmx5IHBhc3NpbmcKICAgIHRoZSBkYXRhIHRocm91Z2guCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGIwMzE1MGI1MmUzYzQ5MWE4NmEzY2MwOTQ1Mjc0ZjBlOGY5ODcyZTcKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG1lbWJlci5mc2Yub3JnPgpEYXRlOglNb24gTm92IDMgMjI6MTY6MTggMjAwOCArMDEwMAoKICAgIFVzZSBuZXcgQ09ORklHX1NZU19WWFdPUktTIHBhcmFtZXRlcnMgZm9yIE5ldHN0YWwgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBtZW1iZXIuZnNmLm9yZz4KCmNvbW1pdCAyOWE0YzI0ZGU5OWQ4Y2I0YWMzMjk5MWMwNGNhYjg3ZWQ5NGNhMWY5CkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBtZW1iZXIuZnNmLm9yZz4KRGF0ZToJTW9uIE5vdiAzIDIyOjE1OjM0IDIwMDggKzAxMDAKCiAgICBjbWRfZWxmLmM6IENsZWFudXAgYm9vdHZ4IGFuZCBoYW5kbGUgbmV3IENPTkZJR19TWVNfVlhXT1JLUyBwYXJhbWV0ZXJzCgogICAgLSBmaXggc2l6ZSB0b28gc21hbGwgYnkgb25lIGluIHNwcmludGYKICAgIC0gY2hhbmdlZCBvbGQgKHByZSAyMDA0KSBkZXZpY2UgbmFtZSBpYm1FbWFjIHRvIGVtYWMKICAgIC0gYm9vdCBkZXZpY2UgbWF5IGJlIG92ZXJyaWRlbiBpbiBib2FyZCBjb25maWcKICAgIC0gc2VydmVybmFtZSBtYXkgYmUgZGVmaW5lZCBpbiBib2FyZCBjb25maWcKICAgIC0gYWRkaXRpb25hbCBwYXJhbWV0ZXJzIG1heSBiZSBkZWZpbmVkIGluIGJvYXJkIGNvbmZpZwogICAgLSBmaXhlZCBzb21lIGxpbmUgd3JhcHBpbmdzCiAgICAtIHJlcGxhY2VkCXJlZHVuZGFudCBNQVggZGVmaW5lIGJ5IG1heAoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbWVtYmVyLmZzZi5vcmc+Cgpjb21taXQgZTkwODRiMjNkMTYxMDJmNDRhY2UyNDM3OWExYzBjMzUyNDk3ZWY4MApBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbWVtYmVyLmZzZi5vcmc+CkRhdGU6CU1vbiBOb3YgMyAyMjoxNDozNiAyMDA4ICswMTAwCgogICAgQWRkIHZ4d29ya3MuaCB0byBoYW5kbGUgQ09ORklHX1NZU19WWFdPUktTIHBhcmFtZXRlcnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG1lbWJlci5mc2Yub3JnPgoKY29tbWl0IDBiMmY0ZWNhZDQ3M2Q3ODU5NTljNzk3NmYyMGQyYTAwYmQwZWUwMWYKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG1lbWJlci5mc2Yub3JnPgpEYXRlOglNb24gTm92IDMgMjI6MTM6NDcgMjAwOCArMDEwMAoKICAgIFJFQURNRTogRG9jdW1lbnQgQ09ORklHX1NZUyBwYXJhbWV0ZXJzIGZvciB2eHdvcmtzCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBtZW1iZXIuZnNmLm9yZz4KCmNvbW1pdCBhY2U1MTQ4MzdjYWM2NTZlMjljMzdhMTk1NjljYjhlYTgzMDcxMTI2CkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJRnJpIE9jdCAzMSAxMToxMjozOCAyMDA4IC0wNTAwCgogICAgbGNkOiBMZXQgdGhlIGJvYXJkIGNvZGUgc2hvdyBib2FyZC1zcGVjaWZpYyBpbmZvIGNsZWFudXAKCiAgICByZW1vdmUgdW5uZWVkZWQgdmVyc2lvbi5oIGZyb20gbGNkLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1NjE4NThlZTdkMDI3NGMzZTg5ZGM5OGQ0ZDA2OThjYjZmY2Y2ZmQ5CkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJTW9uIE5vdiAzIDA5OjMwOjU5IDIwMDggLTA2MDAKCiAgICBVcGRhdGUgVS1Cb290J3MgYnVpbGQgdGltZXN0YW1wIG9uIGV2ZXJ5IGNvbXBpbGUKCiAgICBVc2UgdGhlIEdOVSAnZGF0ZScgY29tbWFuZCB0byBhdXRvLWdlbmVyYXRlIGEgbmV3IFUtQm9vdAogICAgdGltZXN0YW1wIG9uIGV2ZXJ5IGNvbXBpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCA4M2FkMTc5ZTJmMGY2MjViODhhZGI4ZWY1Njk2NzA5ZTQ2ZmI5MDc3CkF1dGhvcjogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CkRhdGU6CVRodSBEZWMgNCAyMjoyNTo1NyAyMDA4ICswMTAwCgogICAgUmVtb3ZlIHJlZHVuZGFudCBhcm12NCBmbGFnIGZyb20gYXJtOTI2ZWpzIGNvbXBpbGUgZmxhZ3MKCiAgICBDdXJyZW50bHkgdGhlIGFybTkyNmVqcyB0cmVlIGhhcyB0aGUgYXJtdjQgb3B0aW9uIHNldCBkdXJpbmcgY29tcGlsYXRpb24uCiAgICBUaGlzIGZsYWcgZG9lcyBub3QgYmVsb25nIGhlcmUgYmVjYXVzZSBhIGFybTkyNiBDUFUgaXMgYWx3YXlzIGEgYXJtdjUgQ1BVLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IDg5YTdhODdmMDg0YzY1N2Y4ZTMyYjUxM2E3N2I1MGVjYTA3ZTE3ZWMKQXV0aG9yOiBOaWNvbGFzIEZlcnJlIDxuaWNvbGFzLmZlcnJlQGF0bWVsLmNvbT4KRGF0ZToJU2F0IERlYyA2IDEzOjExOjE0IDIwMDggKzAxMDAKCiAgICBhdDkxOiBDaG9vc2UgZW52aXJvbm1lbnQgdmFyaWFibGVzIGxvY2F0aW9uIHdpdGhpbiBtYWtlIGNvbmZpZyB0YXJnZXQKCiAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIHBvc3NpYmxpdHkgdG8gY2hvb3NlIHRoZSBtZWRpYSB3aGVyZSB0aGUgZW52aXJvbm1lbnQgd2lsbAogICAgYmUgbG9jYXRlZC4gVGhpcyBhbGxvdyB0byBjaG9vc2UgdGhpcyBmdW5kYW1lbnRhbCBjb25maWd1cmF0aW9uIHdpdGhvdXQgZWRpdGluZwogICAgY29uZmlnIGZpbGVzLgoKICAgIERvY3VtZW50YXRpb24gZmlsZSBhZGRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWNvbGFzIEZlcnJlIDxuaWNvbGFzLmZlcnJlQGF0bWVsLmNvbT4KICAgIEFja2VkLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgogICAgQWNrZWQtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMTQ1MGM0YTY2ODIzNzg1NjcwMzA0MTRhOWYxMTk4YzM5Yjc3MzBjNwpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAzIDE1OjMwOjM0IDIwMDggKzAxMDAKCiAgICBsd21vbiwgdHFtOHh4OiBGaXggYnVpbGQgZXJyb3JzCgogICAgQ29tbWl0IDZiNTllMDNlMDIzN2E0MGEyMzA1ZWEzODVkZWZkZmQ5MjAwMDk3OGIKICAgIGxjZDogTGV0IHRoZSBib2FyZCBjb2RlIHNob3cgYm9hcmQtc3BlY2lmaWMgaW5mbwoKICAgIGludHJvZHVjZWQgc29tZSBidWdzIHdoaWNoIHByZXZlbnQgVS1Cb290IGJ1aWxkaW5nCiAgICBmb3IgbHdtb24gYm9hcmQgaWYgQ09ORklHX0xDRF9JTkZPX0JFTE9XX0xPR08gd2lsbAogICAgYmUgZGVmaW5lZCBpbiB0aGUgYm9hcmQgY29uZmlndXJhdGlvbi4KCiAgICBBbHNvICJMQ0QgZW5hYmxlZCIgYnVpbGRpbmcgZm9yIFRRTTgyM0wgZG9lc24ndCB3b3JrCiAgICBzaW5jZSB0aGlzIGNvbW1pdC4KCiAgICBUaGlzIHBhdGNoIGZpeGVzIGFib3ZlLW1lbnRpb25lZCBpc3N1ZXMuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IGJmYTBhZjZiMjJmZjI1YjA3MTlhODkxMGY5YjZkMWY5NzVhYTZmYjAKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVN1biBOb3YgMiAwMToxODoxOCAyMDA4IC0wNDAwCgogICAgaWdub3JlIC5nZGJfaGlzdG9yeSBmaWxlcwoKICAgIFdoZW4gdXNpbmcgZ2RiLCBoaXN0b3J5IGZpbGVzIHdpbGwgb2Z0ZW4gZ2V0IGdlbmVyYXRlZC4gIFNvIGlnbm9yZSB0aGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBjOGFhN2RmYzE4ZjdjYzkwZDBhZWE2YzdiZWNiYjY3ZGZjNWJiYTRiCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIE9jdCAzMSAxMjoyNjo1NSAyMDA4ICswMTAwCgogICAgRlBHQTogbW92ZSBmcGdhIGRyaXZlcnMgdG8gZHJpdmVycy9mcGdhCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA2YTg2YmI2YzI1Mzc2ZjAzNTg0NzgyMTlmYTI4ZDdjODRkZDAxZWQwCkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJTW9uIERlYyAxIDE2OjI5OjM4IDIwMDggLTA2MDAKCiAgICBuZXQ6IEZpeCBUZnRwU3RhcnQoKSBpcDpmaWxlbmFtZSBidWcKCiAgICBUaGUgVGZ0cFN0YXJ0KCkgZnVuY3Rpb24gbW9kaWZpZXMgdGhlICdCb290RmlsZScKICAgIHN0cmluZyB3aGVuICdCb290RmlsZScgY29udGFpbnMgYm90aCBhbiBJUCBhZGRyZXNzCiAgICBhbmQgZmlsZW5hbWUgKGVnIDEuMi4zLjQ6L3BhdGgvZmlsZSkuIFRoaXMgY2F1c2VzCiAgICBzdWJzZXF1ZW50IGNhbGxzIHRvIFRmdHBTdGFydCB0byBpbmNvcnJlY3RseSBwYXJzZQogICAgdGhlIFRGVFAgZmlsZW5hbWUgYW5kIHNlcnZlciBJUCBhZGRyZXNzIHRvIHVzZS4KICAgIEZvciBleGFtcGxlOgoKICAgID0+IHRmdHAgMHgxMDAwMDAgMTAuNTIuMC42MjovaG9tZS9wdHlzZXIvbm9uX2V4aXN0YW50CiAgICBTcGVlZDogMTAwLCBoYWxmIGR1cGxleAogICAgVXNpbmcgZVRTRUMxIGRldmljZQogICAgVEZUUCBmcm9tIHNlcnZlciAxMC41Mi4wLjYyOyBvdXIgSVAgYWRkcmVzcyBpcyAxMC41Mi4yNTMuNzkKCQkgICAgIF5eXl5eXl5eXl4gQ09SUkVDVAogICAgRmlsZW5hbWUgJy9ob21lL3B0eXNlci9ub25fZXhpc3RhbnQnLgoJICAgICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXiBDT1JSRUNUCiAgICBMb2FkIGFkZHJlc3M6IDB4MTAwMDAwCiAgICBMb2FkaW5nOiAqCiAgICBURlRQIGVycm9yOiAnRmlsZSBub3QgZm91bmQnICgxKQogICAgU3RhcnRpbmcgYWdhaW4KCiAgICBlVFNFQzI6IE5vIGxpbmsuCiAgICBTcGVlZDogMTAwLCBoYWxmIGR1cGxleAogICAgVXNpbmcgZVRTRUMxIGRldmljZQogICAgVEZUUCBmcm9tIHNlcnZlciAxMC41Mi4wLjMzOyBvdXIgSVAgYWRkcmVzcyBpcyAxMC41Mi4yNTMuNzkKCQkgICAgIF5eXl5eXl5eXl4gV1JPTkcKICAgIEZpbGVuYW1lICcxMC41Mi4wLjYyJy4KCSAgICAgIF5eXl5eXl5eXl4gV1JPTkcKICAgIExvYWQgYWRkcmVzczogMHgxMDAwMDAKICAgIExvYWRpbmc6ICoKICAgIFRGVFAgZXJyb3I6ICdGaWxlIG5vdCBmb3VuZCcgKDEpCiAgICBTdGFydGluZyBhZ2FpbgoKICAgIFRmdHBTdGFydCgpIHdhcyBtb2RpZmllZCB0byBub3QgbW9kaWZ5IHRoZSAnQm9vdEZpbGUnIHN0cmluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBkMzJjNWJlNTBiZjA2MDBiZmRjNTQyMjNlZjM0MWVlOWM2M2RiNDQ1CkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJTW9uIERlYyAxIDE2OjI2OjIxIDIwMDggLTA2MDAKCiAgICBuZXQ6IEFkZCBhZGRpdGlvbmFsIElQIGZyYWdtZW50YXRpb24gY2hlY2sKCiAgICBJZ25vcmUgSVAgcGFja2V0cyB3aGljaCBoYXZlIHRoZSAibW9yZSBmcmFnbWVudHMiIGZsYWcgYml0CiAgICBzZXQuICBUaGlzIGZsYWcgaW5kaWNhdGVzIHRoZSBJUCBwYWNrZXQgaXMgZnJhZ21lbnRlZCBhbmQKICAgIG11c3QgYmUgaWdub3JlZCBieSBVLUJvb3QuCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZTBjMDdiODY4Y2FiNDA1YWI0YjUzMzVhMDI0Nzg5OWJmYzVlYTBiNgpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CU1vbiBEZWMgMSAxNjoyNjoyMCAyMDA4IC0wNjAwCgogICAgbmV0OiBEZWZpbmUgSVAgZmxhZyBmaWVsZCB2YWx1ZXMKCiAgICBUaGVzZSBkZWZpbmVzIHdlcmUgcHVsbGVkIGZyb20gdGhlICJBZGQgc2ltcGxlCiAgICBJUC9VRFAgZnJhZ21lbnRhdGlvbiBzdXBwb3J0IiBwYXRjaCBmcm9tIEZyYW5rCiAgICBIYXZlcmthbXAgPGhhdmVyQHZuZXQuaWJtLmNvbT4uCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgMjNhZmFiYTY1ZWM1MjA2NzU3ZTU4OWVmMzM0YThiMzgxNjhjMDQ1ZgpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJVHVlIERlYyAyIDEwOjMxOjA0IDIwMDggKzAxMDAKCiAgICBuZXQ6IHRzZWM6IEZpeCBNYXJ2ZWxsIDg4RTExMjFSIHBoeSBpbml0CgogICAgVGhpcyBwYXRjaCB0cmllcyB0byBlbnN1cmUgdGhhdCBwaHkgaW50ZXJydXB0IHBpbgogICAgd29uJ3QgYmUgYXNzZXJ0ZWQgYWZ0ZXIgYm9vdGluZy4gV2UgZXhwZXJpZW5jZWQKICAgIGZvbGxvd2luZyBpc3N1ZXMgd2l0aCBjdXJyZW50IDg4RTExMjFSIHBoeSBpbml0OgoKICAgIE1hcnZlbGwgODhFMTEyMVIgcGh5IGNhbiBiZSBoYXJkd2FyZS1jb25maWd1cmVkCiAgICB0byBzaGFyZSBNREMvTURJTyBhbmQgaW50ZXJydXB0IHBpbnMgZm9yIGJvdGggcG9ydHMKICAgIFAwIGFuZCBQMSAoZS5nLiBhcyBjb25maWd1cmVkIG9uIHNvY3JhdGVzIGJvYXJkKS4KICAgIFBvcnQgMCBpbnRlcnJ1cHQgcGluIHdpbGwgYmUgc2hhcmVkIGJ5IGJvdGggcG9ydHMKICAgIGluIHN1Y2ggY29uZmlndXJhdGlvbi4gQWZ0ZXIgYm9vdGluZyBMaW51eCBhbmQKICAgIGNvbmZpZ3VyaW5nIGV0aDAgaW50ZXJmYWNlLCBwb3J0IDAgcGh5IGludGVycnVwdHMKICAgIGFyZSBlbmFibGVkLiBBZnRlciByZWJvb3Rpbmcgd2l0aG91dCBwcm9wZXIgZXRoMAogICAgaW50ZXJmYWNlIHNodXRkb3duIHBvcnQgMCBwaHkgaW50ZXJydXB0cyByZW1haW4KICAgIGVuYWJsZWQgc28gYW55IGNoYW5nZSBvbiBwb3J0IDAgKGxpbmsgc3RhdHVzLCBldGMuKQogICAgY2F1c2UgYXNzZXJ0aW9uIG9mIHRoZSBpbnRlcnJ1cHQuIE5vdyBib290aW5nIExpbnV4CiAgICBhbmQgY29uZmlndXJpbmcgZXRoMSBpbnRlcmZhY2Ugd2lsbCBjYXVzZSBwZXJtYW5lbnQKICAgIHBoeSBpbnRlcnJ1cHQgc3Rvcm0gYXMgdGhlIHJlZ2lzdGVyZWQgcGh5IDEgaW50ZXJydXB0CiAgICBoYW5kbGVyIGRvZXNuJ3QgYWNrbm93bGVkZ2UgcGh5IDAgaW50ZXJydXB0cy4gVGhpcwogICAgb2YgY291cnNlIHNob3VsZCBiZSBmaXhlZCBpbiBMaW51eCBkcml2ZXIgdG9vLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDJlNDk3MGQ4MTA5ZDY5MGFkY2Y2MTVkOWUzY2FjN2I1YjJlOGVhZWQKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglUdWUgRGVjIDIgMTI6NTk6NTEgMjAwOCAtMDYwMAoKICAgIG5ldDogRml4IGRvd25sb2FkIGNvbW1hbmQgcGFyc2luZwoKICAgIFdoZW4gQ09ORklHX1NZU19IVVNIX1BBUlNFUiBpcyBkZWZpbmVkIG5ldHdvcmsgZG93bmxvYWQKICAgIGNvbW1hbmRzIHdpdGggMSBhcmd1bWVudCBpbiB0aGUgZm9ybWF0ICd0ZnRwICIvcGF0aC9maWxlIicKICAgIGRvIG5vdCB3b3JrIGFzIGV4cGVjdGVkLiBUaGUgaHVzaCBjb21tYW5kIHBhcnNlciBzdHJpcHMKICAgIHRoZSBxdW90ZXMgZnJvbSAiL3BhdGgvZmlsZSIgd2hpY2ggY2F1c2VzIHRoZSBuZXR3b3JrCiAgICBjb21tYW5kcyB0byBpbnRlcnByZXQgIi9wYXRoL2ZpbGUiIGFzIGFuIGFkZHJlc3MKICAgIGluc3RlYWQgb2YgdGhlIGludGVuZGVkIGZpbGVuYW1lLgoKICAgIFRoZSBwcmV2aW91cyBjaGVjayBmb3IgYSBsZWFkaW5nIHF1b3RlIGluIG5ldGJvb3RfY29tbW9uKCkKICAgIHdhcyByZXBsYWNlZCB3aXRoIGEgY2hlY2sgd2hpY2ggZW5zdXJlcyBvbmx5IHZhbGlkCiAgICBudW1iZXJzIGFyZSB0cmVhdGVkIGFzIGFkZHJlc3Nlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCAzYzJjMmY0Mjc5MDUwNDBjMTUxM2QwYzUxZDYzNzY4OWNiYTQ4MzQ2CkF1dGhvcjogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CkRhdGU6CVRodSBOb3YgMjcgMjI6MzA6MjcgMjAwOCArMDEwMAoKICAgIFJlbW92ZSBub24tYXNjaWkgY2hhcmFjdGVycyBmcm9tIGZhdCBjb2RlCgogICAgVGhpcyBjb2RlIGNvbnRhaW5zIHNvbWUgbm9uLWFzY2lpIGNoYXJhY3RlcnMgaW4gY29tbWVudCBsaW5lcyBhbmQgY29kZS4KICAgIE1vc3QgZWRpdG9ycyBkbyBub3QgZGlzcGxheSB0aG9zZSBjaGFyYWN0ZXJzIHByb3Blcmx5IGFuZCBlZGl0aW5nIHRob3NlCiAgICBmaWxlcyByZXN1bHRzIGFsd2F5cyBpbiBkaWZmcyBhdCB0aGVzZSBwbGFjZXMgd2hpY2ggYXJlIHVzdWFsbHkgbm90IHJlcXVpcmVkCiAgICB0byBiZSBjaGFuZ2VkIGF0IGFsbC4gVGhpcyBpcyBlcnJvciBwcm9uZS4KCiAgICBTbywgcmVtb3ZlIHRob3NlIHdlaXJkIGNoYXJhY3RlcnMgYW5kIHJlcGxhY2UgdGhlbSBieSBub3JtYWwgQy1zdHlsZQogICAgZXF1aXZhbGVudHMgZm9yIHdoaWNoIHRoZSBwcm9wZXIgZGVmaW5lcyB3ZXJlIGFscmVhZHkgaW4gdGhlIGhlYWRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KCmNvbW1pdCBkYzg4OWU4NjUzNTY0OTdkM2U0OTU1NzAxMThjMjI0NWViY2UyNjMxCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE5vdiAyOCAyMDoxNjo1OCAyMDA4ICswODAwCgogICAgODV4eDogZml4IHRoZSB3cm9uZyBERFIgc2V0dGluZ3MgZm9yIE1QQzg1NzJEUwoKICAgIFRoZSBkZWZhdWx0IEREUiBmcmVxIGlzIDQwME1IeiBvciA4MDBNIGRhdGEgcmF0ZSwKICAgIHRoZSBvbGQgc2V0dGluZ3MgaXMgcHVyZSB3cm9uZyBmb3IgdGhlIGRlZmF1bHQgY2FzZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5ZGY1OTUzM2Y3N2RlMjgyOWI0YjY2ZTViNzYyMGUwNGVkYWEzOTFjCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIE5vdiAyNCAxMDoyOToyNiAyMDA4IC0wNjAwCgogICAgODV4eDogaW5pdCBnZCBhcyBlYXJseSBhcyBwb3NzaWJsZQoKICAgIE1vdmVkIHVwIHRoZSBpbml0aWFsaXphdGlvbiBvZiBHRCBzbyBDIGNvZGUgbGlrZSBzZXRfdGxiKCkgY2FuIHVzZQogICAgZ2QtPmZsYWdzIHRvIGRldGVybWluZSBpZiB3ZSd2ZSByZWxvY2F0ZWQgb3Igbm90IGluIHRoZSBmdXR1cmUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWVkNDYxYWY4MTAxMmEzOThhMjA1ZTliZTY3YWIzNzY2NzQ5MTgzOApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBOb3YgMjQgMTA6Mjk6MjUgMjAwOCAtMDYwMAoKICAgIDg1eHg6IEZpeCByZWxvY2F0aW9uIG9mIENDU1JCQVIKCiAgICBJZiB0aGUgdmlydHVhbCBhZGRyZXNzIGZvciBDQ1NSQkFSIGlzIHRoZSBzYW1lIGFmdGVyIHJlbG9jYXRpb24gYnV0CiAgICB0aGUgcGh5c2ljYWwgYWRkcmVzcyBpcyBjaGFuZ2luZyB3ZSdkIGVuZCB1cCBoYXZpbmcgdHdvIFRMQiBlbnRyaWVzIHdpdGgKICAgIHRoZSBzYW1lIFZBLiAgSW5zdGVhZCB3ZSBuZXcgdXMgdGhlIG5ldyBDQ1NSQkFSIHZpcnQgYWRkcmVzcyArIDRrIGFzIGEKICAgIHRlbXAgdmlydCBhZGRyZXNzIHRvIGFjY2VzcyB0aGUgb2xkIENDU1JCQVIgdG8gcmVsb2NhdGUgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZWExNTRhMTc4MTEzNWQ4MjJlZWRlZTc1NjdjYzE1NjA4OWVhZTkzYwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBOb3YgMjQgMTA6MjU6MTQgMjAwOCAtMDYwMAoKICAgIEZTTDogTW92ZWQgQlJfUEhZU19BRERSIGZvciBsb2NhbGJ1cyB0byBjb21tb24gaGVhZGVyCgogICAgVGhlIEJSX1BIWVNfQUREUiBtYWNybyBpcyB1c2VmdWwgb24gYWxsIG1hY2hpbmVzIHRoYXQgaGF2ZSBsb2NhbCBidXMKICAgIHdoaWNoIGlzIHByZXR0eSBtdWNoIGFsbCA4M3h4Lzg1eHgvODZ4eCBjaGlwcy4KCiAgICBBZGRpdGlvbmFsbHkgbW9zdCA4NXh4ICYgODZ4eCB3aWxsIG5lZWQgaXQgaWYgdGhleSB3YW50IHRvIHN1cHBvcnQKICAgIDM2LWJpdCBwaHlzaWNhbCBhZGRyZXNzZXMuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTQyN2NjZGUwMzU1YTJlYmY0NzQ1NGU4ZTFiZTU5ZjViOTg2NGUwOApBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CU1vbiBEZWMgMSAxMzo0NzoxMiAyMDA4IC0wNjAwCgogICAgODV4eDogQWRkIFBPUkRFVlNSX1BDSTEgZGVmaW5lCgogICAgQWRkIGRlZmluZSB1c2VkIHRvIGRldGVybWluZSBpZiBQQ0kxIGludGVyZmFjZSBpcyBpbiBQQ0kgb3IgUENJWCBtb2RlLgoKICAgIENvbnZlcnQgdXNlcnMgb2YgdGhlIG9sZCBQT1JERVZTUl9QQ0kgY29uc3RhbnQgdG8gdXNlIE1QQzg1eHhfUE9SREVWU1JfUENJMQoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzVkYjFjNmQzNGI1N2FlMTVlOTljZjAzYzhlOGY4YTYxNDhkNzRmMwpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTm92IDIxIDE5OjI0OjIyIDIwMDggLTA2MDAKCiAgICBkcml2ZXJzL2ZzbF9wY2lfaW5pdDogRml4IGluYm91bmQgd2luZG93IG1hcHBpbmcgYnVnCgogICAgVGhlIGN1cnJlbnQgY29kZSB3aWxsIGNhdXNlIHRoZSBjcmVhdGlvbiBvZiBhIDRHQiB3aW5kb3cKICAgIHN0YXJ0aW5nIGF0IDAgaWYgd2UgaGF2ZSBtb3JlIHRoYW4gNEdCIG9mIFJBTSBpbnN0YWxsZWQsCiAgICB3aGljaCBvdmVybGFwcyB3aXRoIFBDSV9NRU0gc3BhY2UgYW5kIGNhdXNlcyBwY2lfYnVzX3RvX3BoeXMoKQogICAgdG8gcmV0dXJuIGVycm9uZW91cyBpbmZvcm1hdGlvbi4gTGltaXQgdGhlIHNpemUgdG8gNEdCIC0gMTsKICAgIHdoaWNoIGNhdXNlcyB0aGUgY29kZSB0byBjcmVhdGUgb25lIDJHQiBhbmQgb25lIDFHQiB3aW5kb3cKICAgIGluc3RlYWQuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5YkBrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWExMDVhMzMzZGFiNmEyM2U5MmQ3NjNjZTc2ZDZmMzFkNTdmNDVkZgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMjAgMTU6MzY6NDggMjAwOCAtMDYwMAoKICAgIFJlbW92ZWQgdW51c2VkIENPTkZJR19MMV9JTklUX1JBTSBzeW1ib2wuCgogICAgUHJldmVudCBmdXJ0aGVyIHZpcmFsIHByb3BvZ2F0aW9uIG9mIHRoZSB1bnVzZWQKICAgIHN5bWJvbCBDT05GSUdfTDFfSU5JVF9SQU0gYnkganVzdCByZW1vdmluZyBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MDA4ZDI2YTQwYTc2ZjkwY2FlNTgyNGM4MTJjZmVkNDQ5ZmI5N2I4CkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE9jdCAyOSAwOToyMTo0NCAyMDA4IC0wNTAwCgogICAgZnNsIGRkciBza2lwIGludGVybGVhdmluZyBpZiBub3Qgc3VwcG9ydGVkLgoKICAgIFJlbW92ZWQgd2hpbGUoMSkgaGFuZyBpZiBtZW1jdGxfaW50bHZfY3RsIGlzIHNldCB3cm9uZy4KICAgIFJlbW92ZSBlbWJlZGRlZCB0YWJzIGZyb20gc3RyaW5ncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRkMzMyZTE4ZDA4MmRlNzVlY2EzZmMyYzdjNzc4ZjVkNDU3MWEwOTYKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CVRodSBOb3YgMTMgMTg6MDg6NTcgMjAwOCArMDEwMAoKICAgIDg1eHg6IHNvY3JhdGVzOiBmaXggRERSIFNEUkFNIHRsYiBlbnRyeSBjb25maWd1cmF0aW9uCgogICAgc2luY2UgY29tbWl0IGJlMGJkODIzNGI5Nzc3ZWNkNjNjNGM2ODZmNzJhZjA3MGQ4ODY1MTcKICAgIHRsYiBlbnRyeSBmb3Igc29jcmF0ZXMgRERSIFNEUkFNIHdpbGwgYmUgcmVjb25maWd1cmVkCiAgICBieSBzZXR1cF9kZHJfdGxicygpIGZyb20gaW5pdGRyYW0oKSBjYXVzaW5nIGFuCiAgICBpbmNvbnNpc3RlbmN5IHdpdGggcHJldmlvdXNseSBjb25maWd1cmVkIEREUiBTRFJBTSB0bGIKICAgIGVudHJ5IGZyb20gdGxiX3RhYmxlOgoKICAgIHNvY3JhdGVzPmwyY2FtIDcgOQogICAgSURYICBQSUQJICBFUE4gIFNJWkUgViBUUwkgICBSUE4gVTAtVTMgV0lNR0UgVVVVU1NTCiAgICAgIDcgOiAwMCAwMDAwMDAwMCAyNTZNQiBWICAwIC0+IDBfMDAwMDAwMDAJMDAwMCAtSS1HLSAtLS1SV1gKICAgICAgOCA6IDAwIDAwMDAwMDAwIDI1Nk1CIFYgIDAgLT4gMF8wMDAwMDAwMAkwMDAwIC0tLS0tIC0tLVJXWAogICAgICA5IDogMDAgMTAwMDAwMDAgMjU2TUIgViAgMCAtPiAwXzEwMDAwMDAwCTAwMDAgLS0tLS0gLS0tUldYCgogICAgVGhpcyBwYXRjaCBtYWtlcyB0aGUgcHJlc2VuY2Ugb2YgdGhlIEREUiBTRFJBTSB0bGIgZW50cnkgaW4KICAgIHRoZSB0bGJfdGFibGUgZGVwZW5kZW50IG9uIENPTkZJR19TUERfRUVQUk9NIHRvIGF2b2lkIHRoaXMKICAgIGluY29uc2lzdGVuY3kuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhMmNkNTBlZDZlZjBhYzZiMTI3YjNkNmRiNzU2OTc5YTgzMzY3MThkCkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJVHVlIE5vdiAxMSAxMDoxNzoxMCAyMDA4IC0wNjAwCgogICAgODV4eDogQWRkIENQVSAyIGVycmF0YSB3b3JrYXJvdW5kIHRvIGFsbCA4NTQ4IGJvYXJkcwoKICAgIEFsbCBtcGM4NTQ4LWJhc2VkIGJvYXJkcyBzaG91bGQgaW1wbGVtZW50IHRoZSBzdWdnZXN0ZWQgd29ya2Fyb3VuZAogICAgdG8gQ1BVIDIgZXJyYXRhLiBXaXRob3V0IHRoZSB3b3JrYXJvdW5kLCBpdHMgcG9zc2libGUgZm9yIHRoZQogICAgODU0OCdzIGNvcmUgdG8gaGFuZyB3aGlsZSBleGVjdXRpbmcgYSBtc3luYyBvciBtYmFyIDAgaW5zdHJ1Y3Rpb24KICAgIGFuZCBhIHNub29wYWJsZSB0cmFuc2FjdGlvbiBmcm9tIGFuIEkvTyBtYXN0ZXIgdGFnZ2VkIHRvIG1ha2UKICAgIHF1aWNrIGZvcndhcmQgcHJvZ3Jlc3MgaXMgcHJlc2VudC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlNTdmMGZhMTMzM2NkZjNjYTM2MTEwYWFjMjkwMDcxMmE1ZjgyOTc2CkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAyOCAxNzo1Mzo0NSAyMDA4ICswODAwCgogICAgODV4eDogdGhlIEREUiB0bGIgaXMgbWlzc2VkIGZvciB0aGUgIUNPTkZJR19TUERfRUVQUk9NIGNhc2UKCiAgICB3ZSBuZWVkIFRMQiBlbnRyeSBmb3IgRERSIGF0ICFTUEQgY2FzZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5YjBhZDFiMWM3YTE1ZmY2NzQ5Nzg3MDVjN2M1MjI2NDk3OGRjNWQ4CkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAyOCAxNzo1MzozOCAyMDA4ICswODAwCgogICAgODV4eDogcmVtb3ZlIHRoZSB1bnVzZWQgZGRyX2VuYWJsZV9lY2MgaW4gdGhlIGJvYXJkIGZpbGUKCiAgICBUaGUgRERSIGNvbnRyb2xsZXIgb2YgODU0OC84NTQ0Lzg1NjgvODU3Mi84NTM2IHByb2Nlc3NvcnMKICAgIGhhdmUgdGhlIEVDQyBkYXRhIGluaXQgZmVhdHVyZSwgYW5kIHRoZSBuZXcgRERSIGNvZGUgaXMKICAgIHVzaW5nIHRoZSBmZWF0dXJlLCBhbmQgd2UgZG9uJ3QgbmVlZCB0aGUgd2F5IHdpdGggRE1BIHRvCiAgICBpbml0IG1lbW9yeSBhbnkgbW9yZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0YTEyOWE1N2Q5MjNmN2MxNWFhMWY1NjcwMjhhODBhMzJkNjZhMTAwCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE5vdiAzMCAxOTozNjo1MyAyMDA4ICswMTAwCgogICAgYXQ5MXJtOTIwMGRrOiBGaXggdHlwbwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZWQzYjE4ZTA1YzlhOGZmYTVmYjY0M2RhOWJjZWM3NDUyZTVkNWUwMQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBOb3YgMzAgMTk6MzY6NTAgMjAwOCArMDEwMAoKICAgIEFUOTE6IHJlbW92ZSBub24gc3VwcG9ydGVkIGJvYXJkIEFUOTFSTTkyMDBERiBtYWNybwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYmQ4NzY3NzJlZTA0MDk1ZTVkZDk0M2Q5NzUxNWExZjE0YmFkNGIxYwpBdXRob3I6IElsa28gSWxpZXYgPGlsaWV2QHJvbmV0aXguYXQ+CkRhdGU6CVR1ZSBEZWMgMiAxNzoyNzo1NCAyMDA4ICswMTAwCgogICAgbXRkL2RhdGFmbGFzaC5jOiBmaXggYSBwcm9ibGVtIHdpdGggdGhlIGxhc3QgcGFydGl0aW9uCgogICAgVGhpcyBwYXRjaCBmaXggdGhlIHByb2JsZW0gdGhhdCBvbmx5IHRoZSBbTkJfREFUQUZMQVNIX0FSRUEgLSAxXSBkYXRhZmxhc2gKICAgIHBhcnRpdGlvbiBjYW4gYmUgZGVmaW5lZCB0byB1c2UgdGhlIGFyZWEgdG8gdGhlIGVuZCBvZiBkYXRhZmxhc2ggc2l6ZS4KICAgIE5vdyBpdCBpcyBwb3NzaWJsZSB0byBoYXZlIG9ubHkgb25lIGRhdGFmbGFzaCBwYXJ0aXRpb24gZnJvbSAwIHRvIHRoZSBlbmQKICAgIG9mIG9mIGRhdGFmbGFzaCBzaXplLgoKICAgIFNpZ25lZC1vZmYtYnk6IElsa28gSWxpZXYgPGlsaWV2QHJvbmV0aXguYXQ+Cgpjb21taXQgMDNmNzk3NzkzYjEyNGRjY2FhZTE0NWI5NzdkMTVkNmNiOWU3NDUwNApBdXRob3I6IElsa28gSWxpZXYgPGlsaWV2QHJvbmV0aXguYXQ+CkRhdGU6CVR1ZSBEZWMgMiAxNzoyMDoxNyAyMDA4ICswMTAwCgogICAgZml4IHNvbWUgY29kaW5nIHN0eWxlIHZpb2xhdGlvbnMuCgogICAgVGhpcyBwYXRjaCBmaXggc29tZSBjb2Rpbmcgc3R5bGUgdmlvbGF0aW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBJbGtvIElsaWV2IDxpbGlldkByb25ldGl4LmF0PgoKY29tbWl0IDVlNDZiMWU1NDExMmY0YjdmZDUxODU2NjVlNTcxNTEwMTMyYzEyYTcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBOb3YgMjcgMTQ6MTE6MzcgMjAwOCArMDEwMAoKICAgIE9uZU5BTkQ6IEFkZCBtaXNzaW5nIG10ZCBpbmZvIHN0cnVjdCBiZWZvcmUgY2FsbGluZyBvbmVuYW5kX2VyYXNlKCkKCiAgICBXaXRob3V0IHRoaXMgcGF0Y2ggInNhdmVlbnYiIGNyYXNoZXMgd2hlbiBNVEQgcGFydGl0aW9ucyBhcmUgZW5hYmxlZCAoZS5nLgogICAgZm9yIHVzZSBpbiBVQkkpIHZpYSBDT05GSUdfTVREX1BBUlRJVElPTlMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjkzODJkNDA2NGZiYWZmNWRhYWNmZjRjMzIwOTM3MGZhNTcxMzk2NgpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIwIDE2OjQzOjUyIDIwMDggLTA2MDAKCiAgICBtcGM4NjQxOiBGaXggZXJyb3IgaW4gUkVBRE1FCgogICAgSSBtYWRlIHNvbWUgdXBkYXRlcyB0byB0aGUgY29kZSB0aGF0IGRpZG4ndCBtYWtlIGl0IGludG8gdGhlCiAgICBSRUFETUUgLSBmaXggdGhpcwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgwMWExOTQ2MTZkOTVlNmZjNDI2YTE3NmQ5NjE1Y2NiZjk4NzZjN2YKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIwIDEyOjAxOjAyIDIwMDggLTA2MDAKCiAgICBSZW1vdmVkIHVudXNlZCBDT05GSUdfTDFfSU5JVF9SQU0gc3ltYm9sLgoKICAgIFByZXZlbnQgZnVydGhlciB2aXJhbCBwcm9wb2dhdGlvbiBvZiB0aGUgdW51c2VkCiAgICBzeW1ib2wgQ09ORklHX0wxX0lOSVRfUkFNIGJ5IGp1c3QgcmVtb3ZpbmcgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNjk4NzM4ZTQ2Y2I0NjFlMjhjMmQ1ODIyOGJiMzRhMmZjZjVhNDc1CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyMCAxNDowMjo1NiAyMDA4IC0wNjAwCgogICAgODZ4eDogRml4IG5vbi02NC1iaXQgY29tcGlsYXRpb24gcHJvYmxlbXMuCgogICAgSW50cm9kdWNpbmcgNjQtYml0ICgzNi1iaXQpIHN1cHBvcnQgZm9yIHRoZSBNUEM4NjQxSFBDTgogICAgZmFpbGVkIHRvIGFjY29tb2RhdGUgdGhlIG90aGVyIHR3byA4Nnh4IGJvYXJkcy4KICAgIEludHJvZHVjZSBkZWZpbml0aW9ucyBmb3IgQ09ORklHX1NZU19DQ1NSQkFSX1BIWVNfe0xPVyxISUdIfQogICAgQ09ORklHX1NZU19DQ1NSX0RFRkFVTFRfREJBVHtVLEx9IGFuZCBDT05GSUdfU1lTX0NDU1JfREVGQVVMVF9JQkFUe1UsTH0KICAgIHdpdGggbm9taW5hbCAzMi1iaXQgdmFsdWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmViZmM2ZWYzZWM5OTRjOGUxODc4MzI2OWIxZDhkNDFmOGUzOGFmZApBdXRob3I6IE1pY2hhZWwgVHJpbWFyY2hpIDx0cmltYXJjaGlAZ2FuZGFsZi5zc3N1cC5pdD4KRGF0ZToJV2VkIE5vdiAyNiAxNzo0MDozNyAyMDA4ICswMTAwCgogICAgUmVtb3ZlIG9ic29sZXRlIGNvbW1hbmQgKGFwcGx5IGFmdGUgVVNCIHN0eWxlIHBhdGNoLCA4MCBjaGFycyBzdHJpY3QpCgogICAgUmVtb3ZlIFVTQiBvYnNvbGV0ZSBjb21tbWFuZAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgVHJpbWFyY2hpIDx0cmltYXJjaGlAZ2FuZGFsZi5zc3N1cC5pdD4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQsO2aG1lciA8bGludXhAYm9obWVyLm5ldD4KCmNvbW1pdCBkZTM5ZjhjMTlkN2MxMjAxNzI0OGM0OWQ0MzJkY2I4MWRiNjhmNzI0CkF1dGhvcjogTWljaGFlbCBUcmltYXJjaGkgPHRyaW1hcmNoaUBnYW5kYWxmLnNzc3VwLml0PgpEYXRlOglXZWQgTm92IDI2IDE3OjQxOjM0IDIwMDggKzAxMDAKCiAgICBVU0Igc3R5bGUgcGF0Y2gsIDgwIGNoYXJzIHN0cmljdAoKICAgIFVTQiBDb2RlIHN0eWxlIHBhdGNoCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBUcmltYXJjaGkgPHRyaW1hcmNoaUBnYW5kYWxmLnNzc3VwLml0PgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCw7ZobWVyIDxsaW51eEBib2htZXIubmV0PgoKY29tbWl0IGQxMGM1YTg3Y2I4YWZmYmI0ZDM1YTMxMTM3MDMxNmQ0MzgzZDU5OGUKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgTm92IDcgMjI6NDY6MjEgMjAwOCArMDEwMAoKICAgIGRyaXZlcnMvdXNiOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQsO2aG1lciA8bGludXhAYm9obWVyLm5ldD4KCmNvbW1pdCAyMDc3ZTM0OGMyYTg0OTAxMDIyYWQ5NTMxMWI0N2I3MDM2MWU2ZGFhCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBOb3YgMjUgMTA6NDc6MDIgMjAwOCAtMDYwMAoKICAgIE5BTkQ6IEZpeCBtaXNwbGFjZWQgcmV0dXJuIHN0YXRlbWVudCBpbiBuYW5kX3tyZWFkLHdyaXRlfV9za2lwX2JhZCgpLgoKICAgIFRoaXMgY2F1c2VkIHRoZSBvcGVyYXRpb24gdG8gYmUgbmVlZGxlc3NseSByZXBlYXRlZCBpZiB0aGVyZSB3ZXJlCiAgICBubyBiYWQgYmxvY2tzIGFuZCBubyBlcnJvcnMuCgogICAgU2lnbmVkLW9mZi1ieTogVmFsZXJpeSBHbHVzaGtvdiA8Z3Z2QGxzdGVjLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg5Mjk1MDI4ZTdkOGY3YTUyNGY0ODUzMjgyNzlkNzJmZGIxMDIzODUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBOb3YgMjQgMTI6MDk6NTAgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogbWwzMDAgcmVtb3ZlIFhpbGlueCBCU1AgZnJvbSBtbDMwMCBmb2xkZXIKCiAgICBUaGlzIEJTUCBzaG91bGQgYmUgb3V0c2lkZSB1LWJvb3Qgc291cmNlIHRyZWUuCiAgICBUaGUgc2Vjb25kIHJlYXNvbiBpcyB0aGF0IHhpbGlueCBwcGM0MDUgd2FzIG1vdmVkIHRvIGdlbmVyaWMgcGxhdGZvcm0uCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDI0ZWVhNjIzZDQ5NzRhMTY5MDI2YTk3NWJhMTJmYjIzZDQ4MTU0YjEKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJTW9uIE5vdiAyNCAxNToxMToxMCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBSZW1vdmUgdW51c2VkIGZlYXR1cmVzCgogICAgVGhpcyBwYXRjaCBkaXNhYmxlcyBzb21lIHVudXNlZCBmZWF0dXJlcyBmcm9tIHRoZSBQQ0k0MDUgY29uZmlndXJhdGlvbgogICAgdG8ga2VlcCBVLUJvb3QgaW1hZ2Ugc2l6ZSBiZWxvdyAxOTJrLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDBjMjM4NWMzYmI1MWY1ZDM5MTFmY2UxZWM0NzIwZGI4NmI1MzRjMmIKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJTW9uIE5vdiAyNCAxNToxMTowOSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBVc2UgY29ycmVjdCBpbyBhY2Nlc3NvcnMgZm9yIFBDSTQwNQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM0OGM4NDlkODZhNmYwNzg1NzUyYjliYzQ5N2EzNDY1ODcxM2QxZDEKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJTW9uIE5vdiAyNCAxNToxMTowOCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBSZW1vdmUgdW51c2VkIGNvZGUgZnJvbSBQQ0k0MDUgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDYzMzYzOTU4N2UzNTk2ZjBkYmY1ZTYyNDdkZDNmYWY4MGIxZDkwNjMKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJVGh1IE5vdiAyMCAwOTo1OTowOSAyMDA4ICswMTAwCgogICAgcG93ZXJwYywga2V5bWlsZSBib2FyZHM6IGV4dHJhY3QgaWRlbnRpY2FsIGNvbmZpZyBvcHRpb25zCgogICAgVGhpcyBwYXRjaCBleHRyYWN0cyB0aGUgaWRlbnRpY2FsIGNvbmZpZyBvcHRpb25zIGZvciB0aGUKICAgIGtleW1pbGUgYm9hcmRzIG1nY29nZSwgbWdzdXZkIGFuZCBrbWV0ZXIxIGluIGEgbmV3CiAgICBjb21tb24gY29uZmlnIGZpbGUga2V5bWlsZS1jb21tb24uaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTQ4MmE4ZTNkNmFjNzY2ZDkwZTUwNTlkY2U3NzdiMWU0Yzg2OGEzMApBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglGcmkgTm92IDIxIDA4OjI5OjQwIDIwMDggKzAxMDAKCiAgICBwb3dlcnBjOiBrZXltaWxlOiBBZGQgYSBjaGVjayBmb3IgdGhlIFBJR0dZIGRlYnVnIGJvYXJkCgogICAgQ2hlY2sgdGhlIHByZXNlbmNlIG9mIHRoZSBQSUdHWSBvbiB0aGUga2V5bWlsZSBib2FyZHMgbWdjb2dlLAogICAgbWdzdXZkIGFuZCBrbWV0ZXIxLiBJZiB0aGUgUElHR1kgaXMgbm90IHByZXNlbnQsIGRvbnQgcmVnaXN0ZXIKICAgIHRoaXMgRXRoZXJuZXQgZGV2aWNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1OGM2OTZlZWQ4MzlhZjg5NGUwMjY1MDY0NjY5YzQwMmRjMjhiMzcxCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAeHBlcnQuZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNCAyMTo1MDo1OSAyMDA4ICswMTAwCgogICAgQVQ5MVJNOTIwMERLOiBmaXggYnJva2VuIGJvb3QgZnJvbSBOT1IgZmxhc2gKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDgwNTIzNTJmMjBiMzNiZWY4Zjk4NzJmYzk4M2VhYzczZDQ2OTNjMzgKQXV0aG9yOiBKZW5zIFNjaGFyc2lnIDxlc3dAYnVzLWVsZWt0cm9uaWsuZGU+CkRhdGU6CVR1ZSBOb3YgMTggMTA6NDg6NDYgMjAwOCArMDEwMAoKICAgIGF0OTFybTkyMDA6IGZpeCBicm9rZW4gYm9vdCBmcm9tIG5vciBmbGFzaAoKICAgIFRoaXMgcGF0Y2ggZml4IHRoZSBicm9rZW4gYm9vdCBmcm9tIE5PUiBGbGFzaCBvbiBBVDkxUk05MjAwIGJvYXJkcywgaWYKICAgIENPTkZJR19BVDkxUk05MjAwIGlzIGRlZmluZWQgYW5kIG5vciBwcmVsb2FkZXIgaXMgdXNlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZW5zIFNjaGFyc2lnIDxlc3dAYnVzLWVsZWt0cm9uaWsuZGU+Cgpjb21taXQgMjVlYTY1MmU5MDc1MTZhMjgzYjM4MjM3ZTgzNzEyYTkxOGYxMjVkNwpBdXRob3I6IFBpb3RyIFppZWNpayA8a29zbW9Ac2VtaWhhbGYuY29tPgpEYXRlOglNb24gTm92IDE3IDE1OjU4OjAwIDIwMDggKzAxMDAKCiAgICBVQkk6IEFkZCBwcm9vZi1vZi1jb25jZXB0IENGSSBmbGFzaCBzdXBwb3J0CgogICAgV2l0aCB0aGlzIHBhdGNoIFVCSSBjYW4gYmUgdXNlZCBvbiBDRkkgZmxhc2ggY2hpcHMuCgogICAgU2lnbmVkLW9mZi1ieTogUGlvdHIgWmllY2lrIDxrb3Ntb0BzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTZhN2VkYmMxNzc4ZDI3NDMxYWM2NjNiNDBhNzFkYWZhNWQyMDU3OApBdXRob3I6IFBpb3RyIFppZWNpayA8a29zbW9Ac2VtaWhhbGYuY29tPgpEYXRlOglNb24gTm92IDE3IDE1OjU3OjU5IDIwMDggKzAxMDAKCiAgICBtdGQ6IFJlbW92ZSBhIHByaW50ZigpIGZyb20gYWRkX210ZF9kZXZpY2UoKS4KCiAgICBSZW1vdmUgYSBwcmludGYoKSBmcm9tIGFkZF9tdGRfZGV2aWNlKCksIHdoaWNoIHByb2R1Y2VzIHNwdXJpb3VzIG91dHB1dC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQaW90ciBaaWVjaWsgPGtvc21vQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5MTgwOWVkNTFkODMyN2E4ZGJiZjI5YWE5OGEwOTExNTRjMjgyMTcxCkF1dGhvcjogUGlvdHIgWmllY2lrIDxrb3Ntb0BzZW1paGFsZi5jb20+CkRhdGU6CU1vbiBOb3YgMTcgMTU6NTc6NTggMjAwOCArMDEwMAoKICAgIGNmaS1tdGQ6IEFkZCBjZmktbXRkIGRyaXZlci4KCiAgICBBZGQgY2ZpLW10ZCBkcml2ZXIsIHdoaWNoIGV4cG9ydHMgQ0ZJIGZsYXNoIHRvIE1URCBsYXllci4KICAgIFRoaXMgYWxsb3dzIENGSSBmbGFzaCBkZXZpY2VzIHRvIGJlIHVzZWQgZnJvbSBNVEQgbGF5ZXIuCgogICAgQnVpbGRpbmcgb2YgdGhlIG5ldyBkcml2ZXIgaXMgY29udHJvbGxlZCBieSBDT05GSUdfRkxBU0hfQ0ZJX01URAogICAgb3B0aW9uLiBJbml0aWFsaXphdGlvbiBpcyBkb25lIGJ5IGNhbGxpbmcgY2ZpX210ZF9pbml0KCkgZnJvbQogICAgZmxhc2hfaW5pdCgpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBpb3RyIFppZWNpayA8a29zbW9Ac2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZlYTgwOGVmZGY5YWE1ZDkwNjdmYmZhYzMyYWNkZTg1MzkxMjllZDIKQXV0aG9yOiBQaW90ciBaaWVjaWsgPGtvc21vQHNlbWloYWxmLmNvbT4KRGF0ZToJTW9uIE5vdiAxNyAxNTo0OTozMiAyMDA4ICswMTAwCgogICAgY2ZpX2ZsYXNoOiBBZGQgaW50ZXJmYWNlIGZvciBmbGFzaCB2ZXJib3NpdHkgY29udHJvbAoKICAgIEFkZCBpbnRlcmZhY2UgZm9yIGZsYXNoIHZlcmJvc2l0eSBjb250cm9sLiBJdCBhbGxvd3MKICAgIHRvIGRpc2FibGUgb3V0cHV0IGZyb20gbG93LWxldmVsIGZsYXNoIEFQSS4gSXQgaXMgdXNlZnVsCiAgICB3aGVuIGNhbGxpbmcgdGhlc2UgbG93LWxldmVsIGZ1bmN0aW9ucyBmcm9tIGNvbnRleHQgb3RoZXIKICAgIHRoYW4gZmxhc2ggY29tbWFuZHMgKGZvciBleGFtcGxlIHRoZSBNVEQvQ0ZJIGludGVyZmFjZQogICAgaW1wbG1lbnRhdGlvbikuCgogICAgU2lnbmVkLW9mZi1ieTogUGlvdHIgWmllY2lrIDxrb3Ntb0BzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWJjOTc4NGNlNjUyODM4NWJiOGQyNTU4ZTc4MzYyMmQ0YmJmMjBmOApBdXRob3I6IFBpb3RyIFppZWNpayA8a29zbW9Ac2VtaWhhbGYuY29tPgpEYXRlOglUaHUgTm92IDIwIDE1OjE3OjM4IDIwMDggKzAxMDAKCiAgICBjZmlfZmxhc2g6IEV4cG9ydCBmbGFzaF9zZWN0b3Jfc2l6ZSgpIGZ1bmN0aW9uLgoKICAgIEV4cG9ydCBmbGFzaF9zZWN0b3Jfc2l6ZSgpIGZ1bmN0aW9uIGZyb20gZHJpdmVycy9tdGQvY2ZpX2ZsYXNoLmMsCiAgICBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGluIHRoZSB1cGNvbWluZyBjZmktbXRkIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQaW90ciBaaWVjaWsgPGtvc21vQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0NWFhNWE3ZjRkNWJjYjc5OTI3ZGRmYzg5NmMxZDdjNDMyNmUyMzVkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDE3IDE0OjQ1OjIyIDIwMDggKzAxMDAKCiAgICBjZmlfZmxhc2g6IE1ha2UgYWxsIGZsYXNoIGFjY2VzcyBmdW5jdGlvbnMgd2VhawoKICAgIFRoaXMgcGF0Y2ggZGVmaW5lcyBhbGwgZmxhc2ggYWNjZXNzIGZ1bmN0aW9ucyBhcyB3ZWFrIHNvIHRoYXQKICAgIHRoZXkgY2FuIGJlIG92ZXJyaWRkZW4gYnkgYm9hcmQgc3BlY2lmaWMgdmVyc2lvbnMuCgogICAgVGhpcyB3aWxsIGJlIHVzZWQgYnkgdGhlIHVwY29taW5nIFZDVEggYm9hcmQgc3VwcG9ydCB3aGVyZSB0aGUgTk9SCiAgICBGTEFTSCB1bmZvcnR1bmF0ZWx5IGNhbid0IGJlIGFjY2Vzc2VkIG1lbW9yeS1tYXBwZWQuIFNwZWNpYWwKICAgIGFjY2Vzc29yIGZ1bmN0aW9ucyBhcmUgbmVlZGVkIGhlcmUuCgogICAgVG8gZW5hYmxlIHRoaXMgd2VhayBmdW5jdGlvbnMgeW91IG5lZWQgdG8gZGVmaW5lCiAgICBDT05GSUdfQ0ZJX0ZMQVNIX1VTRV9XRUFLX0FDQ0VTU09SUyBpbiB5b3VyIGJvYXJkIGNvbmZpZyBoZWFkZXIuCiAgICBPdGhlcndpc2UgdGhlICJvbGQiIGRlZmF1bHQgZnVuY3Rpb25zIHdpbGwgYmUgdXNlZCByZXN1bHRpbmcKICAgIGluIHNtYWxsZXIgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBBY2tlZC1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGE1YzQwNjcwMTc2MzFkOTAzZTFhZmE2YWQ2MTVmMGNlMTlmZWE1MTcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjQgMDg6MzE6MTYgMjAwOCArMDEwMAoKICAgIFVCSTogQ2hhbmdlIHBhcnNpbmcgb2Ygc2l6ZSBpbiBjb21tYW5kcyB0byBkZWZhdWx0IHRvIGhleAoKICAgIEN1cnJlbnRseSB0aGUgc2l6ZSBwYXJhbWV0ZXJzIG9mIHRoZSBVQkkgY29tbWFuZHMgKGUuZy4gInViaSB3cml0ZSIpIGFyZQogICAgZGVjb2RlZCBhcyBkZWNpbWFsIGluc3RlYWQgb2YgaGV4IGFzIGRlZmF1bHQuIFRoaXMgcGF0Y2ggbm93IGludGVycHJldHMKICAgIGFsbCB0aGVzZSB2YWx1ZXMgY29uc2lzdGFudGx5IGFzIGhleCwgYXMgYWxsIG90aGVyIHN0YW5kYXJkIFUtQm9vdCBjb21tYW5kcwogICAgZG8uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGRlMDFjNzZjM2NjYzRlNmM1OTg5MjI4ZWVkNThlOTU1YTNhMWE5NjgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBOb3YgMjEgMTM6MDY6MDYgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogTUwyIHNob3VsZG4ndCBpbmNsdWRlIHRoZSA0eHggRU1BQyBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMWE2YTAwZGNjNWJkZmM2ZTliNGIwMGYzOWMxZjU4M2E3Zjk2ZmM3ZgpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJRnJpIE5vdiAxNCAxNjoxOToxOSAyMDA4ICswMzAwCgogICAgcHBjNHh4OiBrYXRtYWk6IENoYW5nZSBkZWZhdWx0IGNvbmZpZwoKICAgICBUaGlzIHBhdGNoIGVuYWJsZXMgc3VwcG9ydCBmb3IgRVhUMiwgYW5kIGluY3JlYXNlcyB0aGUKICAgIENPTkZJR19TWVNfQk9PVE1BUFNaIHNpemUgZm9yIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24KICAgIG9mIHRoZSBrYXRtYWkgYm9hcmRzIHRvIHVzZSB0aGVtIGFzIHRoZSBSQUlELXJlZmVyZW5jZQogICAgQU1DQyBzZXR1cHMuCgogICAgIEVYVDIgZW5hYmxpbmcgYWxsb3dzIG9uZSB0byBib290IGtlcm5lbHMgZnJvbSB0aGUgRVhUMgogICAgZm9ybWF0dGVkIENvbXBhY3QgRmxhc2ggY2FyZHMuCgogICAgIENPTkZJR19TWVNfQk9PVE1BUFNaIGluY3JlYXNpbmcgYWxsb3dzIG9uZSB0byBib290IHRoZQogICAgTGludXgga2VybmVscywgd2hpY2ggdXNlIFBBR0VfU0laRSBvZiAyNTZLQi4gT3RoZXJ3aXNlLAogICAgdGhlIG1lbW9yeSBhcmVhIHdpdGggRFRCIGZpbGUgKHdoaWNoIGlzIHBsYWNlZCBhdCB0aGUKICAgIGVuZCBvZiB0aGUgYm9vdG1hcCBhcmVhKSB3aWxsIHR1cm4gb3V0IHRvIGJlIG92ZXJsYXBwZWQKICAgIHdpdGggdGhlIEJTUyBzZWdtZW50IG9mIHRoZSAyNTZLQiBrZXJuZWwsIGFuZCB6ZXJvZWQKICAgIGluIGVhcmx5X2luaXQoKSBvZiBMaW51eC4KCiAgICAgQWN0dWFsbHksIGluY3JlYXNpbmcgb2YgdGhlIGJvb3RtYXAgc2l6ZSBjb3VsZCBiZSBkb25lCiAgICB2aWEgc2V0dGluZyBvZiB0aGUgYm9vdG1fc2l6ZSBVLUJvb3QgdmFyaWFibGUsIGJ1dCBpdCBsb29rcwogICAgbGlrZSB0aGUgY3VycmVudCBVLUJvb3QgaW1wbGVtZW50YXRpb24gaGF2ZSBzb21lIGJvb3RtX3NpemUtCiAgICByZWxhdGVkIGZ1bmN0aW9uYWxpdHkgbG9zdC4gSW4gbWFueSBwbGFjZXMgdGhyb3VnaCB0aGUgVS1Cb290CiAgICBjb2RlIHRoZSBDT05GSUdfU1lTX0JPT1RNQVBTWiBkZWZpbml0aW9uIGlzIHVzZWQgZGlyZWN0bHkKICAgIChpbnN0ZWFkIG9mIHRyeWluZyB0byByZWFkIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGZyb20gdGhlCiAgICBlbnZpcm9ubWVudCkuIFRoZSBzYW1lIGlzIHRydXRoIGZvciB0aGUgYm9vdF9qdW1wX2xpbnV4KCkKICAgIGZ1bmN0aW9uIGluIGxpYl9wcGMvYm9vdG0uYywgd2hlcmUgVS1Cb290IHRyYW5zZmVycyBjb250cm9sCiAgICB0byBMaW51eCBwYXNzaW5nIHRoZSBDT05GSUdfU1lTX0JPT1RNQVBTWiAobm90IGJvb3RtX3NpemUpCiAgICB2YWx1ZSB0byB0aGUgYm9vdGluZyBrZXJuZWwuCgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZGRmNDVjYzc1OGQzOTQ1OTFmYjliY2RjYmU5NjUzMGY3MzNmMmJjZQpBdXRob3I6IERhdmUgTWl0Y2hlbGwgPGRtaXRjaDcxQGdtYWlsLmNvbT4KRGF0ZToJVGh1IE5vdiAyMCAxNDowOTo1MCAyMDA4IC0wNjAwCgogICAgcHBjNHh4OiBDaGFuZ2VkIDQ2MEVYL0dUIE9DTSBUTEIgYW5kIGludGVybmFsIFNSQU0gaW5pdGlhbGl6YXRpb24KCiAgICBFeHBhbmRlZCBPQ00gVExCIHRvIGFsbG93IGFjY2VzcyB0byA2NEsgT0NNIGFzIHdlbGwgYXMgMjU2SyBvZgogICAgaW50ZXJuYWwgU1JBTS4KCiAgICBBZGp1c3RlZCBpbnRlcm5hbCBTUkFNIGluaXRpYWxpemF0aW9uIHRvIG1hdGNoIHVwZGF0ZWQgdXNlcgogICAgbWFudWFsIHJlY29tbWVuZGF0aW9uLgoKICAgIE9DTSAmIElTUkFNIGFyZSBub3cgbWFwcGVkIGFzIGZvbGxvd3M6CgkgICAgcGh5c2ljYWwJICAgIHZpcnR1YWwJICAgIHNpemUKICAgIElTUkFNICAgMHg0XzAwMDBfMDAwMCAgIDB4RTMwMF8wMDAwICAgICAyNTZrCiAgICBPQ00gICAgIDB4NF8wMDA0XzAwMDAgICAweEUzMDRfMDAwMCAgICAgNjRrCgogICAgQSBzaW5nbGUgVExCIHdhcyB1c2VkIGZvciB0aGlzIG1hcHBpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBNaXRjaGVsbCA8ZG1pdGNoNzFAZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGIxNGNhNGI2MWE2ODFmNzVmMzEyNTY3NmUwOWQ3Y2U2YWY2NmU5MjcKQXV0aG9yOiBEYXZlIE1pdGNoZWxsIDxkbWl0Y2g3MUBnbWFpbC5jb20+CkRhdGU6CVRodSBOb3YgMjAgMTQ6MDA6NDkgMjAwOCAtMDYwMAoKICAgIHBwYzR4eDogQWRkZWQgcHBjNHh4LWlzcmFtLmggZm9yIGludGVybmFsIFNSQU0gYW5kIEwyIGNhY2hlIERDUnMKCiAgICBBZGRlZCBpbmNsdWRlL2FzbS1wcGMvcHBjNHh4LWlzcmFtLmggYW5kIG1vdmVkIGludGVybmFsIFNSQU0gYW5kCiAgICBMMiBjYWNoZSBEQ1JzIGZyb20gcHBjNDQwLmggdG8gdGhpcyBuZXcgaGVhZGVyLgoKICAgIEFsc28gY29udmVydGVkIHRoZXNlIERDUiBkZWZpbmVzIGZyb20gbG93ZXJjYXNlIHRvIHVwcGVyY2FzZSBhbmQKICAgIG1vZGlmaWVkIHJlZmVyZW5jaW5nIG1vZHVsZXMgdG8gdXNlIHRoZW0uCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBNaXRjaGVsbCA8ZG1pdGNoNzFAZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDcxMWUyYjJhZjgyMGQyMWQ5OTMxZDRjZjgwNTdkMzg5NDYwMGZkNTQKQXV0aG9yOiBTdGV2ZW4gQS4gRmFsY28gPHNmYWxjb0BoYXJyaXMuY29tPgpEYXRlOglUaHUgTm92IDIwIDE0OjM3OjU3IDIwMDggLTA1MDAKCiAgICBwcGM0eHg6IERlbGV0ZSB1bnVzZWQgZGVmaW5pdGlvbnMgZm9yIFNEUjBfRERSQ0ZHIGZyb20gcHBjNHh4LmgKCiAgICBUaGUgZGVmaW5pdGlvbnMgb2YgYml0cyBpbiBTRFJfQ0ZHIGFyZSBpbmNvcnJlY3QsIGFuZCBub3QgdXNlZCB3aXRoaW4KICAgIFUtQm9vdC4gIFRoZXJlZm9yZSwgdGhleSBjYW4gYmUgcmVtb3ZlZC4KCiAgICBUaGUgbmFtaW5nIG9mIHRoZSBzZHJfZGRyZGwvc2RyX2NmZyByZWdpc3RlcnMgZG8gbm90IGZvbGxvdyBjb252ZW50aW9ucywKICAgIGFuZCBhcmUgdW51c2VkLCBzbyB0aGV5IGNhbiBiZSByZW1vdmVkIHRvby4KCiAgICBBIGRlZmluaXRpb24gZm9yIFNEUjBfRERSQ0ZHIGlzIGFkZGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZXZlbiBBLiBGYWxjbyA8c2ZhbGNvQGhhcnJpcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTIzYzdjOTVhOTZlYjBmMDY4ZWZlNWM1MzIyMTVhMTBhMTUxMmE5NQpBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ21haWwuY29tPgpEYXRlOglNb24gTm92IDEwIDIwOjE1OjI1IDIwMDggKzAxMDAKCiAgICBBUk06IE9NQVA6IENvbnZlcnQgSU8gbWFjcm9zCgogICAgQ29udmVydCBJTyBtYWNyb3MgdG8gcmVhZHgvd3JpdGV4LgoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ21haWwuY29tPgoKY29tbWl0IDI2M2I3NDllMmUyNTQ3M2E0ODc3NmQzMTdiZDJhN2UyZGRjZGQyMTIKQXV0aG9yOiBJbGtvIElsaWV2IDxpbGlldkByb25ldGl4LmF0PgpEYXRlOglTdW4gTm92IDkgMTU6NTM6MTQgMjAwOCArMDEwMAoKICAgIGxpYl9hcm06IGRvX2Jvb3RtX2xpbnV4KCkgLSBjb3JyZWN0IGEgc21hbGwgbWlzdGFrZQoKICAgIFRoaXMgcGF0Y2ggY29ycmVjdHMgYSBzbWFsbCBidWcgaW4gdGhlICJpZiIgY29uZGl0aW9uOgogICAgdGhlIHBhcmFtZXRlciAiZmxhZyIgaXMgMCBhbmQgdGhlICJpZiIgY29uZGl0aW9uIGlzIGFsd2F5cyB0cnVlLgogICAgVGhlIHJlc3VsdCBpcyAtIHRoZSBib29tIGNvbW1hbmQgZG9lc24ndCBzdGFydCB0aGUga2VybmVsLgogICAgQWZmZWN0ZWQgdGFyZ2V0czogYWxsIGFybSBiYXNlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBJbGtvIElsaWV2IDxpbGlldkByb25ldGl4LmF0PgoKY29tbWl0IDNlMGNkYTA3MWE2N2NiNTcwOWUzZmE0ZmFmNmIzMWE3MzE4NTlhY2MKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglTdW4gTm92IDkgMDA6MTQ6NDYgMjAwOCArMDEwMAoKICAgIEFUOTE6IEVuYWJsZSBQTExCIGZvciBVU0IKCiAgICBBdCBsZWFzdCBzb21lIChvbGQgPykgdmVyc2lvbnMgb2YgdGhlIEFUOTFCb290c3RyYXAgZG8gbm90IHNldCB1cCB0aGUKICAgIFBMTEIgY29ycmVjdGx5IHRvIDQ4IE1IeiBpbiBvcmRlciB0byBtYWtlIFVTQiBob3N0IGZ1bmN0aW9uIGNvcnJlY3RseS4KCiAgICBUaGlzIHBhdGNoIHNldHMgdXAgdGhlIFBMTEIgdG8gdGhlIHNhbWUgdmFsdWVzIExpbnV4IHVzZXMsIGFuZCBtYWtlcyBVU0IKICAgIHdvcmsgb2sgb24gdGhlIGZvbGxvd2luZyBDUFVzOgoJLSBBVDkxQ0FQOQoJLSBBVDkxU0FNOTI2MAoJLSBBVDkxU0FNOTI2MwoKICAgIFRoaXMgcGF0Y2ggYWxzbyBkZWZpbmVzIENPTkZJR19VU0JfU1RPUkFHRSBhbmQgQ09ORklHX0NNRF9GQVQgZm9yIGFsbAogICAgdGhlIHJlbGV2YW50IEFUOTFDQVA5L0FUOTFTQU05IGF0bWVsIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBhZDIyOWE0NGUxNjJhZjBmNjVlNTdlNGUzZGMxMzNkNWYwMzY0ZWNiCkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJRnJpIE5vdiA3IDEzOjU1OjE0IDIwMDggKzAxMDAKCiAgICBBVDkxOiBVc2UgQVQ5MV9DUFVfQ0xPQ0sgaW4gZGlzcGxheXMKCiAgICBJbnRyb2R1Y2UgQVQ5MV9DUFVfQ0xPQ0sgYW5kIHVzZSBpdCBmb3IgZGlzcGxheWluZyB0aGUgQ1BVCiAgICBzcGVlZCBpbiB0aGUgTENEIGRyaXZlci4KCiAgICBBbHNvIG1ha2UgQVQ5MV9NQUlOX0NMT0NLIGFuZCBBVDkxX01BU1RFUl9DTE9DSyByZWZsZWN0IHRoZQogICAgY29ycmVzcG9uZGluZyBib2FyZCBjbG9ja3MuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KCmNvbW1pdCBmZWQzNmFjNWFlNjEzNzczYjZjZDkwZTYxZTI5MmM0NTQ0MGUxMGM4CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVRodSBOb3YgMjAgMDk6NTc6NDcgMjAwOCArMDEwMAoKICAgIHBvd2VycGM6IDgzeHg6IGFkZCBzdXBwb3J0IGZvciB0aGUga21ldGVyMSBib2FyZAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUga21ldGVyMSBib2FyZCBmcm9tIEtleW1pbGUsCiAgICBiYXNlZCBvbiBhIEZyZWVzY2FsZSBNUEM4MzYwIENQVS4KCiAgICAtIHNlcmlhbCBjb25zb2xlIG9uIFVBUlQgMQogICAgLSAyNTYgTUIgRERSMiBSQU0KICAgIC0gNjQgTUIgTk9SIEZsYXNoCiAgICAtIEV0aGVybmV0IFJNSUkgTW9kZSBvdmVyIFVDQzQKICAgIC0gUEhZIFNNU0MgTEFOODcwMAoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNWZiNGVhYWVhYjNmODg2NjAyMDgxOGY0NzI5ZDk5MGRjYzkxY2YwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTm92IDIwIDExOjQ2OjIwIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IENsZWFyIGFsbCBwb3RlbnRpYWxseSBwZW5kaW5nIGV4Y2VwdGlvbnMgaW4gTUNTUgoKICAgIFRoaXMgaXMgbmVlZGVkIG9uIENhbnlvbmxhbmRzIHdoaWNoIHN0aWxsIGhhcyBhbiBleGNlcHRpb24gcGVuZGluZwogICAgd2hpbGUgcnVubmluZyByZWxvY2F0ZV9jb2RlKCkuIFRoaXMgbGVhZHMgdG8gYSBmYWlsdXJlIGFmdGVyIHRyYXBfaW5pdCgpCiAgICBpcyBtb3ZlZCB0byB0aGUgdG9wIG9mIGJvYXJkX2luaXRfcigpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmYWNkYWQ1ZjI2MDJlODk5YTAxNzQ2OTE2YmVkZGJmOWU4NTZiNWVlCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVdlZCBOb3YgMTkgMTA6MTA6MzAgMjAwOCArMDEwMAoKICAgIHBvd2VycGM6IDgzeHg6IGFkZCBtaXNzaW5nIFRJTUlOR19DRkcxX0NBU0xBVF8qIGRlZmluZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmYyYTVjMzcxNGQxN2Y0ZWFkMThiNzEzMTI4YjcyMjZlMGU4MjJmNApBdXRob3I6IEhvd2FyZCBHcmVnb3J5IDxHcmVnLkhvd2FyZEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTm92IDQgMTQ6NTU6MzMgMjAwOCArMDgwMAoKICAgIG1wYzgzeHg6IEltcHJvdmUgdGhlIHBlcmZvcm1hbmNlIG9mIEREUiBtZW1vcnkKCiAgICBtb2RpZnkgdGhlIENBUyB0aW1pbmdzLiBteSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgdGhlc2UKICAgIHNldHRpbmdzIGRlY3JlYXNlIHZhcmlvdXMgd2FpdCB0aW1lcyBpbiB0aGUgRERSIGludGVyZmFjZS4KICAgIEJlY2F1c2UgdGhlc2Ugd2FpdCB0aW1lcyBhcmUgaW4gY2xvY2sgY3ljbGVzLCBhbmQgdGhlIEREUgogICAgY2xvY2sgb24gdGhlIDgzMTUgUkRCIHJ1bnMgc2xvd2VyIHRoYW4gb24gc29tZSBvdGhlciA4M3h4CiAgICBwbGF0Zm9ybXMsIHdlIGNhbiBkaWFsIGRvd24gdGhlc2UgdmFsdWVzIHdpdGhvdXQgYSBwcm9ibGVtLAogICAgdGhlcmVieSBkZWNyZWFzaW5nIHRoZSBsYXRlbmN5IG9mIG1lbW9yeSBhIGxpdHRsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIb3dhcmQgR3JlZ29yeSA8R3JlZy5Ib3dhcmRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgwMDBiMDg2YjMzYTVhODFmM2YzOTBmMzdlMTc4ZGI3OTU2ZGMwOGIKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgpEYXRlOglGcmkgT2N0IDI0IDE0OjU1OjMzIDIwMDggKzAyMDAKCiAgICBBUk06IEFkZCBBcG9sbG9uIFVCSSBzdXBwb3J0CgogICAgVG8gZW5hYmxlIFVCSSBvbiBBcG9sbG9uIHlvdSBuZWVkIHRvIHVuY29tbWVudCB0aGUgQ09ORklHX1NZU19VU0VfVUJJCiAgICBtYWNyby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDY5NGEwYjNmMWMwYWNjZDBkZTk0Yjg5NTU1MTU1ZDY5ZjgwMjI4MjQKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgpEYXRlOglXZWQgTm92IDE5IDExOjQ3OjA1IDIwMDggKzAxMDAKCiAgICBVQkk6IEFkZCBVQkkgY29tbWFuZCBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRzIHRoZXNlIFVCSSBjb21tYW5kczoKCiAgICB1YmkgcGFydCBbbmFuZHxvbmVuYW5kXSBbcGFydF0gLSBTaG93IG9yIHNldCBjdXJyZW50IHBhcnRpdGlvbgogICAgdWJpIGluZm8gW2xbYXlvdXRdXSAtRGlzcGxheSB2b2x1bWUgYW5kIFVCSSBsYXlvdXQgaW5mb3JtYXRpb24KICAgIHViaSBjcmVhdGVbdm9sXSB2b2x1bWUgW3NpemVdIFt0eXBlXSAtIENyZWF0ZSB2b2x1bWUgbmFtZSB3aXRoIHNpemUKICAgIHViaSB3cml0ZVt2b2xdIGFkZHJlc3Mgdm9sdW1lIHNpemUgLSBXcml0ZSB2b2x1bWUgZnJvbSBhZGRyZXNzIHdpdGggc2l6ZQogICAgdWJpIHJlYWRbdm9sXSBhZGRyZXNzIHZvbHVtZSBbc2l6ZV0gLSBSZWFkIHZvbHVtZSB0byBhZGRyZXNzIHdpdGggc2l6ZQogICAgdWJpIHJlbW92ZVt2b2xdIHZvbHVtZSAtIFJlbW92ZSB2b2x1bWUKCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDU4YmUzYTEwNTZkODhjNmQwNWYzZTkxNDM4OTI4MjgwN2U2OTkyM2EKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgpEYXRlOglXZWQgTm92IDE5IDE2OjM4OjI0IDIwMDggKzAxMDAKCiAgICBVQkk6IEFkZCBiYXNpYyBVQkkgc3VwcG9ydCB0byBVLUJvb3QgKFBhcnQgOC84KQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBVQkkgKFVuc29ydGVkIEJsb2NrIEltYWdlKSBzdXBwb3J0IHRvIFUtQm9vdC4KICAgIEl0J3MgYmFzZWQgb24gdGhlIExpbnV4IFVCSSB2ZXJzaW9uIGFuZCBiYXNpY2FsbHkgaGFzIGEgIk9TIgogICAgdHJhbnNsYXRpb24gd3JhcHBlciB0aGF0IGRlZmluZXMgbW9zdCBMaW51eCBzcGVjaWZpYyBjYWxscwogICAgKHNwaW5fbG9jaygpIGV0Yy4pIGludG8gbm8tb3BzLiBTb21lIHNvdXJjZSBjb2RlIHBhcnRzIGhhdmUgYmVlbgogICAgdW5jb21tZW50ZWQgYnkgIiNpZmRlZiBVQklfTElOVVgiLiBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBjb21wYXJlCiAgICB0aGlzIHZlcnNpb24gd2l0aCB0aGUgTGludXggdmVyc2lvbiBhbmQgc2ltcGxpZmllcyBmdXR1cmUgVUJJCiAgICBwb3J0cy9idWctZml4ZXMgZnJvbSB0aGUgTGludXggdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDQ3YWU2NjkzZjU0ZjgwNDU1YWUzMmMyZTBkOTk1ZTBlNGJkYzE1YjkKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgpEYXRlOglXZWQgTm92IDE5IDE2OjM2OjM2IDIwMDggKzAxMDAKCiAgICBVQkk6IEFkZCBiYXNpYyBVQkkgc3VwcG9ydCB0byBVLUJvb3QgKFBhcnQgNy84KQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBVQkkgKFVuc29ydGVkIEJsb2NrIEltYWdlKSBzdXBwb3J0IHRvIFUtQm9vdC4KICAgIEl0J3MgYmFzZWQgb24gdGhlIExpbnV4IFVCSSB2ZXJzaW9uIGFuZCBiYXNpY2FsbHkgaGFzIGEgIk9TIgogICAgdHJhbnNsYXRpb24gd3JhcHBlciB0aGF0IGRlZmluZXMgbW9zdCBMaW51eCBzcGVjaWZpYyBjYWxscwogICAgKHNwaW5fbG9jaygpIGV0Yy4pIGludG8gbm8tb3BzLiBTb21lIHNvdXJjZSBjb2RlIHBhcnRzIGhhdmUgYmVlbgogICAgdW5jb21tZW50ZWQgYnkgIiNpZmRlZiBVQklfTElOVVgiLiBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBjb21wYXJlCiAgICB0aGlzIHZlcnNpb24gd2l0aCB0aGUgTGludXggdmVyc2lvbiBhbmQgc2ltcGxpZmllcyBmdXR1cmUgVUJJCiAgICBwb3J0cy9idWctZml4ZXMgZnJvbSB0aGUgTGludXggdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDdlNmVlN2FkMjdkZTUyMTZkYjFiYWVmNzZmMzhjMzQyOWM4ZjRhMmEKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgpEYXRlOglXZWQgTm92IDE5IDE2OjMyOjM2IDIwMDggKzAxMDAKCiAgICBVQkk6IEFkZCBiYXNpYyBVQkkgc3VwcG9ydCB0byBVLUJvb3QgKFBhcnQgNi84KQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBVQkkgKFVuc29ydGVkIEJsb2NrIEltYWdlKSBzdXBwb3J0IHRvIFUtQm9vdC4KICAgIEl0J3MgYmFzZWQgb24gdGhlIExpbnV4IFVCSSB2ZXJzaW9uIGFuZCBiYXNpY2FsbHkgaGFzIGEgIk9TIgogICAgdHJhbnNsYXRpb24gd3JhcHBlciB0aGF0IGRlZmluZXMgbW9zdCBMaW51eCBzcGVjaWZpYyBjYWxscwogICAgKHNwaW5fbG9jaygpIGV0Yy4pIGludG8gbm8tb3BzLiBTb21lIHNvdXJjZSBjb2RlIHBhcnRzIGhhdmUgYmVlbgogICAgdW5jb21tZW50ZWQgYnkgIiNpZmRlZiBVQklfTElOVVgiLiBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBjb21wYXJlCiAgICB0aGlzIHZlcnNpb24gd2l0aCB0aGUgTGludXggdmVyc2lvbiBhbmQgc2ltcGxpZmllcyBmdXR1cmUgVUJJCiAgICBwb3J0cy9idWctZml4ZXMgZnJvbSB0aGUgTGludXggdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGM5MWE3MTlkYWEzMzFiNTg1NjEwOTMxMzM3MWU0ZWNlNWVjMDZkOTYKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgpEYXRlOglXZWQgTm92IDE5IDE2OjI4OjA2IDIwMDggKzAxMDAKCiAgICBVQkk6IEFkZCBiYXNpYyBVQkkgc3VwcG9ydCB0byBVLUJvb3QgKFBhcnQgNS84KQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBVQkkgKFVuc29ydGVkIEJsb2NrIEltYWdlKSBzdXBwb3J0IHRvIFUtQm9vdC4KICAgIEl0J3MgYmFzZWQgb24gdGhlIExpbnV4IFVCSSB2ZXJzaW9uIGFuZCBiYXNpY2FsbHkgaGFzIGEgIk9TIgogICAgdHJhbnNsYXRpb24gd3JhcHBlciB0aGF0IGRlZmluZXMgbW9zdCBMaW51eCBzcGVjaWZpYyBjYWxscwogICAgKHNwaW5fbG9jaygpIGV0Yy4pIGludG8gbm8tb3BzLiBTb21lIHNvdXJjZSBjb2RlIHBhcnRzIGhhdmUgYmVlbgogICAgdW5jb21tZW50ZWQgYnkgIiNpZmRlZiBVQklfTElOVVgiLiBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBjb21wYXJlCiAgICB0aGlzIHZlcnNpb24gd2l0aCB0aGUgTGludXggdmVyc2lvbiBhbmQgc2ltcGxpZmllcyBmdXR1cmUgVUJJCiAgICBwb3J0cy9idWctZml4ZXMgZnJvbSB0aGUgTGludXggdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGY0MTJmZWZhMDc5YzZhYTlhOTc2M2Y2ODY5YmY3ODdlYTZiZjZlMWIKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgpEYXRlOglXZWQgTm92IDE5IDE2OjI3OjIzIDIwMDggKzAxMDAKCiAgICBVQkk6IEFkZCBiYXNpYyBVQkkgc3VwcG9ydCB0byBVLUJvb3QgKFBhcnQgNC84KQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBVQkkgKFVuc29ydGVkIEJsb2NrIEltYWdlKSBzdXBwb3J0IHRvIFUtQm9vdC4KICAgIEl0J3MgYmFzZWQgb24gdGhlIExpbnV4IFVCSSB2ZXJzaW9uIGFuZCBiYXNpY2FsbHkgaGFzIGEgIk9TIgogICAgdHJhbnNsYXRpb24gd3JhcHBlciB0aGF0IGRlZmluZXMgbW9zdCBMaW51eCBzcGVjaWZpYyBjYWxscwogICAgKHNwaW5fbG9jaygpIGV0Yy4pIGludG8gbm8tb3BzLiBTb21lIHNvdXJjZSBjb2RlIHBhcnRzIGhhdmUgYmVlbgogICAgdW5jb21tZW50ZWQgYnkgIiNpZmRlZiBVQklfTElOVVgiLiBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBjb21wYXJlCiAgICB0aGlzIHZlcnNpb24gd2l0aCB0aGUgTGludXggdmVyc2lvbiBhbmQgc2ltcGxpZmllcyBmdXR1cmUgVUJJCiAgICBwb3J0cy9idWctZml4ZXMgZnJvbSB0aGUgTGludXggdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDJkMjYyYzQ4NTNjYjViNmRkY2UxYTI4YTk2NDFmMmRlMzY4OGQ3ZWEKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgpEYXRlOglXZWQgTm92IDE5IDE2OjI2OjU0IDIwMDggKzAxMDAKCiAgICBVQkk6IEFkZCBiYXNpYyBVQkkgc3VwcG9ydCB0byBVLUJvb3QgKFBhcnQgMy84KQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBVQkkgKFVuc29ydGVkIEJsb2NrIEltYWdlKSBzdXBwb3J0IHRvIFUtQm9vdC4KICAgIEl0J3MgYmFzZWQgb24gdGhlIExpbnV4IFVCSSB2ZXJzaW9uIGFuZCBiYXNpY2FsbHkgaGFzIGEgIk9TIgogICAgdHJhbnNsYXRpb24gd3JhcHBlciB0aGF0IGRlZmluZXMgbW9zdCBMaW51eCBzcGVjaWZpYyBjYWxscwogICAgKHNwaW5fbG9jaygpIGV0Yy4pIGludG8gbm8tb3BzLiBTb21lIHNvdXJjZSBjb2RlIHBhcnRzIGhhdmUgYmVlbgogICAgdW5jb21tZW50ZWQgYnkgIiNpZmRlZiBVQklfTElOVVgiLiBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBjb21wYXJlCiAgICB0aGlzIHZlcnNpb24gd2l0aCB0aGUgTGludXggdmVyc2lvbiBhbmQgc2ltcGxpZmllcyBmdXR1cmUgVUJJCiAgICBwb3J0cy9idWctZml4ZXMgZnJvbSB0aGUgTGludXggdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDk2MWRmODMzNjFhZmY5YTE0ZjIyNjIxNDIyNGViOGEwNmUwNWJhMjQKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgpEYXRlOglXZWQgTm92IDE5IDE2OjI1OjQ0IDIwMDggKzAxMDAKCiAgICBVQkk6IEFkZCBiYXNpYyBVQkkgc3VwcG9ydCB0byBVLUJvb3QgKFBhcnQgMi84KQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBVQkkgKFVuc29ydGVkIEJsb2NrIEltYWdlKSBzdXBwb3J0IHRvIFUtQm9vdC4KICAgIEl0J3MgYmFzZWQgb24gdGhlIExpbnV4IFVCSSB2ZXJzaW9uIGFuZCBiYXNpY2FsbHkgaGFzIGEgIk9TIgogICAgdHJhbnNsYXRpb24gd3JhcHBlciB0aGF0IGRlZmluZXMgbW9zdCBMaW51eCBzcGVjaWZpYyBjYWxscwogICAgKHNwaW5fbG9jaygpIGV0Yy4pIGludG8gbm8tb3BzLiBTb21lIHNvdXJjZSBjb2RlIHBhcnRzIGhhdmUgYmVlbgogICAgdW5jb21tZW50ZWQgYnkgIiNpZmRlZiBVQklfTElOVVgiLiBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBjb21wYXJlCiAgICB0aGlzIHZlcnNpb24gd2l0aCB0aGUgTGludXggdmVyc2lvbiBhbmQgc2ltcGxpZmllcyBmdXR1cmUgVUJJCiAgICBwb3J0cy9idWctZml4ZXMgZnJvbSB0aGUgTGludXggdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGYzOTlkNGEyODE3MTNkNWVmMmQ3NjRmMDVkNTQ1ZmU2MWUzYmQ1NjkKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgpEYXRlOglXZWQgTm92IDE5IDE2OjIzOjA2IDIwMDggKzAxMDAKCiAgICBVQkk6IEFkZCBiYXNpYyBVQkkgc3VwcG9ydCB0byBVLUJvb3QgKFBhcnQgMS84KQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBVQkkgKFVuc29ydGVkIEJsb2NrIEltYWdlKSBzdXBwb3J0IHRvIFUtQm9vdC4KICAgIEl0J3MgYmFzZWQgb24gdGhlIExpbnV4IFVCSSB2ZXJzaW9uIGFuZCBiYXNpY2FsbHkgaGFzIGEgIk9TIgogICAgdHJhbnNsYXRpb24gd3JhcHBlciB0aGF0IGRlZmluZXMgbW9zdCBMaW51eCBzcGVjaWZpYyBjYWxscwogICAgKHNwaW5fbG9jaygpIGV0Yy4pIGludG8gbm8tb3BzLiBTb21lIHNvdXJjZSBjb2RlIHBhcnRzIGhhdmUgYmVlbgogICAgdW5jb21tZW50ZWQgYnkgIiNpZmRlZiBVQklfTElOVVgiLiBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBjb21wYXJlCiAgICB0aGlzIHZlcnNpb24gd2l0aCB0aGUgTGludXggdmVyc2lvbiBhbmQgc2ltcGxpZmllcyBmdXR1cmUgVUJJCiAgICBwb3J0cy9idWctZml4ZXMgZnJvbSB0aGUgTGludXggdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGUyOWMyMmY1YWJlNmUwZjRiYWE2MjUxZWZlZDYwNzRjZGZjM2RiNzkKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgpEYXRlOglXZWQgTm92IDE5IDE2OjIwOjM2IDIwMDggKzAxMDAKCiAgICBNVEQ6IEFkZCBNVEQgcGFyaXRpb25pbmcgaW5mcmFzdHJ1Y3R1cmUKCiAgICBUaGlzIE1URCBwYXJ0IGluZnJhc3RydWN0dXJlIHdpbGwgYmUgdXNlZCBieSB0aGUgdXBjb21pbmcKICAgIFVCSSBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOWI4MjdjZjE3MjBhY2RhMjQ3M2FmYTUxNjk1NmVhYjZmN2NjYTlhMQpBdXRob3I6IFNlbHZhbXV0aHVrdW1hciA8c2VsdmEubXV0aHVrdW1hckBlLWNvbmluZm90ZWNoLmNvbT4KRGF0ZToJVGh1IE9jdCAxNiAyMjo1NDowMyAyMDA4ICswNTMwCgogICAgQWxpZ24gZW5kIG9mIGJzcyBieSA0IGJ5dGVzCgogICAgTW9zdCBvZiB0aGUgYnNzIGluaXRpYWxpemF0aW9uIGxvb3AgaW5jcmVtZW50cyA0IGJ5dGVzCiAgICBhdCBhIHRpbWUuIEFuZCB0aGUgbG9vcCBlbmQgaXMgY2hlY2tlZCBmb3IgYW4gJ2VxdWFsJwogICAgY29uZGl0aW9uLiBNYWtlIHRoZSBic3MgZW5kIGFkZHJlc3MgYWxpZ25lZCBieSA0LCBzbwogICAgdGhhdCB0aGUgbG9vcCB3aWxsIGVuZCBhcyBleHBlY3RlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZWx2YW11dGh1a3VtYXIgPHNlbHZhLm11dGh1a3VtYXJAZS1jb25pbmZvdGVjaC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDNmNTEwZGI1MjJkMTYwMTc5ZGZmM2RkY2NlOWIxOGY2MjQxYzJjMjQKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE5vdiAxMCAxOTo0NTozNSAyMDA4IC0wNjAwCgogICAgbXBjODY0MTogZml4IGFkZHJlc3MtY2VsbHMgZGVmYXVsdCBpbiBvbGQgLmR0cyBkZXRlY3Rpb24KCiAgICBhZGRyZXNzLWNlbGxzIGRlZmF1bHRzIHRvIDIsIG5vdCAxOyBzbyBpbiB0aGUgdW5saWtlbHkKICAgIGV2ZW50IHRoYXQgaXQgaXNuJ3Qgc3BlY2lmaWVkLCB0aGlzIHBhdGNoIGlzIHJlcXVpcmVkCiAgICBmb3IgY29ycmVjdCBvcGVyYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDAyNWFhNGIyMGEwNjE4YTJiYWRhMDEzMmE5YTBhNGFmYjcxN2YxYQpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDMxIDE3OjE0OjM5IDIwMDggLTA1MDAKCiAgICBsaWJfcHBjOiBNb3ZlIHRyYXBfaW5pdCB0byBvY2N1ciBlYXJsaWVyCgogICAgRG9pbmcgdHJhcF9pbml0IGltbWVkaWF0ZWx5IG9uY2Ugd2UncmUgcnVubmluZyBmcm9tIFJBTQogICAgbWVhbnMgd2UncmUgbm8gbG9uZ2VyIGRlcGVuZGVudCBvbiB0aGUgcGh5c2ljYWwgbG9jYXRpb24gb2YKICAgIHRoZSBmbGFzaCBvbiBub24tQm9va0UgcGxhdGZvcm1zLiBCZWZvcmUgdHJhcF9pbml0LCB0aG9zZQogICAgcGxhdGZvcm1zIHN3aXRjaCB0byByZWFsIG1vZGUgYW5kIGdvIHRvIDB4ZmZmMDAxMDAgb24gZXhjZXB0aW9uLgogICAgQWZ0ZXIgdGhlIHN3aXRjaCwgdGhleSBnbyB0byAweDAwMDAwMTAwICBUaGlzIG1ha2VzIGl0IGVhc2llciB0bwogICAgbW92ZSB0aGUgZmxhc2ggbG9jYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDUyMDgyYjEyYzZlNTQ1NzA1YTE5NDMzYTJmNDE0MjUyNjUzNjE4OQpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTm92IDcgMTM6NDY6MTkgMjAwOCAtMDYwMAoKICAgIG1wYzg2NDE6IFRyeSB0byBkZXRlY3Qgb2xkIC5kdHMgZmlsZXMKCiAgICBTaW5jZSB3ZSd2ZSBjaGFuZ2VkIHRoZSBtZW1vcnkgbWFwIG9mIHRoZSBib2FyZCwgYmUgbmljZSBhbmQKICAgIGFkZCBzb21lIGNoZWNraW5nIHRvIHRyeSB0byBjYXRjaCBvdXQtb2YtZGF0ZSAuZHRzIGZpbGVzLiAgV2UgZG8KICAgIHRoaXMgYnkgY2hlY2tpbmcgdGhlIENDU1JCQVIgbG9jYXRpb24gaW4gdGhlIC5kdHMgYW5kIGNvbXBhcmluZwogICAgaXQgdG8gdGhlIENDU1JCQVIgbG9jYXRpb24gaW4gdS1ib290LiAgSWYgdGhleSBkb24ndCBtYXRjaCwgYQogICAgd2FybmluZyBtc2cgaXMgcHJpbnRlZC4gIFRoaXMgaXNuJ3QgZm9vbHByb29mLCBidXQgaXQncyBzaW1wbGUgYW5kCiAgICB3aWxsIGNhdGNoIG1vc3Qgb2YgdGhlIGNhc2VzIHdoZXJlIGFuIG91dC1vZi1kYXRlIC5kdHMgaXMgcHJlc2VudCwKICAgIGluY2x1ZGluZyBhbGwgb2YgdGhlIGNhc2VzIHdoZXJlIGEgbmV3IHUtYm9vdCBpcyB1c2VkIHdpdGggYW4gb2xkCiAgICBzdGFuZGFyZCBNUEM4NjQxIC5kdHMgZmlsZSBhcyBzdXBwbGllZCB3aXRoIExpbnV4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhkYjA0MDBhMjc4MzlmOTFjMDQ3ZGNiODNmNGEwZjA5ZTA1NGExODAKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiA2IDEzOjA0OjA5IDIwMDggLTA2MDAKCiAgICB0b3BsZXZlbCBNYWtlZmlsZTogQWRkIE1QQzg2NDFIUENOXzM2QklUIHRhcmdldAoKICAgIFRoaXMgd2lsbCBlbmFibGUgQ09ORklHX1BIWVNfMzZCSVQgZm9yIE1QQzg2NDFIUENOLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDMxMTFkMzJjNDk0ZTgyNTFiOTA5MTc0NDc3OTZhNzIwNmI3NTdlMWUKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiA2IDE3OjM3OjM1IDIwMDggLTA2MDAKCiAgICBtcGM4NjQxOiBTdXBwb3J0IDM2LWJpdCBwaHlzaWNhbCBhZGRyZXNzaW5nCgogICAgVGhpcyBwYXRjaCBjcmVhdGVzIGEgbWVtb3J5IG1hcCB3aXRoIGFsbCB0aGUgZGV2aWNlcwogICAgaW4gMzYtYml0IHBoeXNpY2FsIHNwYWNlLCBpbiBhZGRpdGlvbiB0byB0aGUgMzItYml0IG1hcC4KICAgIFRoZSBDQ1NSIHJlbG9jYXRpb24gaXMgbW92ZWQgKGFnYWluLCBzb3JyeSkgdG8KICAgIGFsbG93IGZvciB0aGUgcGh5c2ljYWwgYWRkcmVzcyB0byBiZSAzNiBiaXRzIC0gdGhpcwogICAgcmVxdWlyZXMgdHJhbnNsYXRpb24gdG8gYmUgZW5hYmxlZC4gIFdpdGggMzYtYml0IHBoeXNpY2FsCiAgICBhZGRyZXNzaW5nIGVuYWJsZWQsIHdlIGFyZSBubyBsb25nZXIgcnVubmluZyB3aXRoIFZBPVBBCiAgICB0cmFuc2xhdGlvbnMuICBUaGlzIG1lYW5zIHdlIGhhdmUgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbgogICAgdGhlIHR3byBpbiB0aGUgY29uZmlnIGZpbGUuICBUaGUgZXhpc3RpbmcgcmVnaW9uIG5hbWUgaXMKICAgIHVzZWQgdG8gaW5kaWNhdGUgdGhlIHZpcnR1YWwgYWRkcmVzcywgYW5kIGEgX1BIWVMgdmFyaWV0eQogICAgaXMgY3JlYXRlZCB0byByZXByZXNlbnQgdGhlIHBoeXNpY2FsIGFkZHJlc3MuCgogICAgTGFyZ2UgcGh5c2ljYWwgYWRkcmVzc2luZyBpcyBub3QgZW5hYmxlZCBieSBkZWZhdWx0LgogICAgU2V0IENPTkZJR19QSFlTXzY0QklUIGluIHRoZSBjb25maWcgZmlsZSB0byB0dXJuIHRoaXMgb24uCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzc1OWEwMWEwMDIyZGU5Mzc4YTNhNzYxZjQ5Nzg2Zjg3Njg0YzkxNgpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDYgMTc6MzY6MDQgMjAwOCAtMDYwMAoKICAgIG1wYzg2NDE6IENoYW5nZSAzMi1iaXQgbWVtb3J5IG1hcAoKICAgIFRoZSBtZW1vcnkgbWFwIG9uIHRoZSA4NjQxaHBjbiBpcyBtb2RpZmllZCB0byBsb29rIG1vcmUgbGlrZQogICAgdGhlIDg1eHggYm9hcmRzOyB0aGlzIGlzIGEgc3RlcCB0b3dhcmRzIGEgbW9yZSBzdGFuZGFyZGl6ZWQKICAgIGxheW91dCBnb2luZyBmb3J3YXJkLiBBcyBwYXJ0IG9mIHRoaXMgY2hhbmdlLCB3ZSBub3cgcmVsb2NhdGUKICAgIHRoZSBmbGFzaC4KCiAgICBUaGUgcmVnaW9ucyBmb3Igc29tZSBvZiB0aGUgbWFwcGluZ3Mgd2VyZSBmYXIgbGFyZ2VyIHRoYW4gdGhleQogICAgbmVlZGVkIHRvIGJlLiAgSSBoYXZlIHJlZHVjZWQgdGhlIG1hcHBpbmdzIHRvIG1hdGNoIHRoZQogICAgYWN0dWFsIHNpemVzIHN1cHBvcnRlZCBieSB0aGUgaGFyZHdhcmUuCgogICAgSW4gYWRkaXRpb24gSSBoYXZlIHJlbW92ZWQgdGhlIGNvbW1lbnRzIGF0IHRoZSBoZWFkCiAgICBvZiB0aGUgQkFUIGJsb2NrcyBpbiB0aGUgY29uZmlnIGZpbGUsIHJhdGhlciB0aGFuIHVwZGF0aW5nCiAgICB0aGVtLiAgVGhlc2UgZ2V0IGhvcnJpYmx5IG91dCBvZiBkYXRlLCBhbmQgaXQncyBhIHNpbXBsZQogICAgbWF0dGVyIHRvIGxvb2sgYXQgdGhlIGRlZmluZXMgdG8gc2VlIHdoYXQgdGhleSBhcmUgc2V0IHRvCiAgICBzaW5jZSBldmVyeXRoaW5nIGlzIHJpZ2h0IGhlcmUgaW4gdGhlIHNhbWUgZmlsZS4KCiAgICBEb2N1bWVudGF0aW9uIGhhcyBiZWVuIGNoYW5nZWQgdG8gcmVmbGVjdCB0aGUgbmV3IG1hcCwgYXMgdGhpcwogICAgY2hhbmdlIGlzIHVzZXIgdmlzaWJsZSwgYW5kIGFmZmVjdHMgdGhlIE9TIHdoaWNoIHJ1bnMgcG9zdC11Ym9vdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZjlhOGMzNDMwOWVkOTI3NjI1ODI5NWRiOWU5MjEyYWFiYjI1MzFhCkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBOb3YgNSAxNDo1NTozNSAyMDA4IC0wNjAwCgogICAgbXBjODZ4eDogQ2hhbmdlIGVhcmx5IEZMQVNIIG1hcHBpbmcgdG8gMU0gYXQgQ09ORklHX01PTklUT1JfQkFTRV9FQVJMWQoKICAgIFdlIGRlZmluZSBDT05GSUdfTU9OSVRPUl9CQVNFX0VBUkxZIHRvIGRlZmluZSB0aGUgaW5pdGlhbCBsb2NhdGlvbgogICAgb2YgdGhlIGJvb3RwYWdlIGluIGZsYXNoLglVc2UgdGhpcyB0byBjcmVhdGUgYW4gZWFybHkgbWFwcGluZwogICAgZGVmaW5pdGlvbiBmb3IgdGhlIEZMQVNILCBhbmQgY2hhbmdlIHRoZSBlYXJseV9iYXRzIGNvZGUgdG8gdXNlIHRoaXMuCgogICAgVGhpcyAgY2hhbmdlIGZhY2lsaXRhdGVzIHRoZSByZWxvY2F0aW9uIG9mIHRoZSBmbGFzaCBzaW5jZSB0aGUgZWFybHkKICAgIG1hcHBpbmdzIGFyZSBubyBsb25nZXIgdGllZCB0byB0aGUgZmluYWwgbG9jYXRpb24gb2YgdGhlIGZsYXNoLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGMxZTFjZjY5NTQ3YjEzODE3M2Y4N2E3ZjgxYzQyYTVkOGRiZmRlM2QKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE5vdiA1IDE0OjU1OjM0IDIwMDggLTA2MDAKCiAgICBtcGM4Nnh4OiBVc2UgU1JSMC8xL3JmaSB0byBlbmFibGUgYWRkcmVzcyB0cmFuc2xhdGlvbiwgbm90IGJscgoKICAgIFVzaW5nIGEgbXRtc3IvYmxyIG1lYW5zIHRoYXQgeW91IGhhdmUgdG8gYmUgZXhlY3V0aW5nIGF0IHRoZQogICAgc2FtZSB2aXJ0dWFsIGFkZHJlc3Mgb25jZSB5b3UgZW5hYmxlIHRyYW5zbGF0aW9uLiAgVGhpcyBpcwogICAgdW5uZWNlc3NhcmlseSByZXN0cmljdGl2ZSwgYW5kIGlzIG5vdCByZWFsbHkgaG93IHRoaXMgaXMKICAgIHVzdWFsbHkgZG9uZS4gIENoYW5nZSBpdCB0byB1c2UgdGhlIG1vcmUgY29tbW9uIG10c3ByIFNSUjAvU1JSMQogICAgYW5kIHJmaSBtZXRob2QuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmJmOThiMTM2MmYwY2IyMzc2MjAzNTVlZDNlNjc2MmZmZjgyMzg4ZApBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTm92IDUgMTQ6NTU6MzMgMjAwOCAtMDYwMAoKICAgIG1wYzg2NDE6IG1ha2UgRElBR19BRERSID09IEZMQVNIX0JBU0UKCiAgICBDdXJyZW50bHksIHRoYXQncyB3aGF0IGl0IGlzLCBidXQgaXQncyBoYXJkY29kZWQuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTcwZGVhY2IxZGRjMzkxNjRiZGI2OGYzOTYzZTBjMDQ1NmE1MzY5YgpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTm92IDUgMTQ6NTU6MzIgMjAwOCAtMDYwMAoKICAgIG1wYzg2NDE6IERyb3AgaW1hZ2luYXJ5IHNlY29uZCBmbGFzaCBiYW5rLCBtYXAgOE1CCgogICAgVGhlcmUncyBhIGxvdCBvZiBzZXR1cCBhbmQgZm9vIGZvciB0aGUgc2Vjb25kIGZsYXNoCiAgICBiYW5rLiAgVGhlIHByb2JsZW0gaXMsIHRoaXMgYm9hcmQgZG9lc24ndCBhY3R1YWxseSBoYXZlIG9uZS4KICAgIENsZWFuIHRoaXMgdXAuICBBbHNvLCB0aGUgZmxhc2ggaXMgOE0gaW4gc2l6ZS4gIEdldCByaWQKICAgIG9mIHRoZSBjb25mdXNpbmcgYWxpYXNlZCBvdmVybWFwcGluZywgYW5kIGp1c3QgbWFwIDhNLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBmMmQ2NjAyN2JmYzYwZGM3ZWVhMmYwOTZhZjg4OTE5ODhjNWFiZTQKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE5vdiA1IDE0OjU1OjMxIDIwMDggLTA2MDAKCiAgICBtcGM4NjQxOiBvbmx5IGRlZmluZSBDT05GSUdfRU5WX1NJWkUgb25jZQoKICAgIEl0J3MgY3VycmVudGx5IGRlZmluZWQgdHdpY2UgaW5zaWRlIGluIGFuIGlmL2Vsc2UgYmxvY2ssIGJ1dAogICAgYm90aCBoYWx2ZXMgc2V0IHRoZSBzYW1lIHZhbHVlLiAgTW92ZSB0aGUgZGVmaW5lIG91dHNpZGUKICAgIHRoZSBpZi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNGJmYjQ4YzM1ZmVkNmFkMWYwNDdlM2U0YTI3ZGYzMDI0ODJjZDkzCkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBOb3YgNSAxNDo1NTozMCAyMDA4IC0wNjAwCgogICAgbXBjODZ4eDogTW92ZSBzZXR1cF9iYXRzIGludG8gY3B1X2luaXRfZgoKICAgIEluIG9yZGVyIHRvIGxhdGVyIGFsbG93IGZvciBhIHBoeXNpY2FsIHJlbG9jYXRpb24gb2YgdGhlCiAgICBmbGFzaCwgc2V0dXBfYmF0cywgd2hpY2ggc2V0cyB1cCB0aGUgZmluYWwgQkFUIG1hcHBpbmcKICAgIGZvciB0aGUgYm9hcmQsIG5lZWRzIHRvIGhhcHBlbiAqYWZ0ZXIqIGluaXRfbGF3cygpLgogICAgT3RoZXJ3aXNlLCB0aGVyZSB3aWxsIGJlIG5vIHdpbmRvdyBwcm9ncmFtbWVkIGZvciB0aGUgZmxhc2gKICAgIGF0IHRoZSBuZXcgcGh5c2ljYWwgbG9jYXRpb24gYXQgdGhlIHBvaW50IHdoZW4gd2UgY2hhbmdlCiAgICB0aGUgbW11IHRyYW5zbGF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA1ZGYzZTVhNjM4YmU4YzViMDg5OWVhZTE3NjZiYmU4ZTRiOTJjMTcKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE5vdiA1IDE0OjU1OjI5IDIwMDggLTA2MDAKCiAgICBtcGM4NjQxOiBSZW1vdmUgZXh0cmEgIjAiIGZyb20gQlIyIGRlZmluZQoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVkZjNmZTdkMzlhMWVlMDczNTMxMjhhZjUyMjE0MjJjZTljY2ZhZDYKQXV0aG9yOiBSaWNoYXJkIFJldGFudWJ1biA8UmljaGFyZFJldGFudWJ1bkBSdWdnZWRDb20uY29tPgpEYXRlOglUaHUgT2N0IDIzIDA5OjA4OjE4IDIwMDggLTA0MDAKCiAgICBkcml2ZXJzL3FlL3VlY19waHkuYzogQWRkZWQgUEhZLWxlc3MgKGZpeGVkIFBIWSkgZHJpdmVyLgoKICAgIENvcGllZCBvdmVyIHRoZSBmaXhlZCBQSFkgZHJpdmVyIGFzIHVzZWQgaW4gcHA0eHgvNHh4X2VuZXQuYy4KICAgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBQSFktbGVzcyBNQUMgY29ubmVjdGlvbnMgdG8gdGhlIFVFQy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNoYXJkIFJldGFudWJ1biA8UmljaGFyZFJldGFudWJ1bkBSdWdnZWRDb20uY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA1NGJkY2M5ZmI2NjcwYWZkZTljMjZkY2YzNjRmNTgyODc5YmYyMWQ2CkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAyMyAxNjoyNzoyNCAyMDA4ICswMDAwCgogICAgQ29sZEZpcmU6IEFkZCBtaWkgZHJpdmVyIGluIGRyaXZlcnMvbmV0CgogICAgQWxsIENGIHBsYXRmb3JtcycgbWlpLmMgYXJlIGNvbnNvbGlkYXRlZCBpbnRvIG9uZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDI1YTg1OTA2NmIzYWYxMDcwZWI2OWYxMjAyMjExM2MwYTkxYmQ4MTMKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglNb24gT2N0IDI3IDIzOjUzOjE3IDIwMDggLTA3MDAKCiAgICBNb3ZlZCBpbml0aWFsaXphdGlvbiBvZiBQUEM0eHggRU1BQyB0byBjcHVfZXRoX2luaXQoKQoKICAgIFJlbW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGRyaXZlciBmcm9tIG5ldC9ldGguYwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDRkMDNhNGUyMGU1ODU1MmNiOTZkNjFhMGU4YjU2Y2RiNmNjNjAxMjYKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglTdW4gTm92IDkgMjE6Mjk6MjMgMjAwOCAtMDgwMAoKICAgIE1vdmVkIFBQQzR4eCBFTUFDIGRyaXZlciB0byBkcml2ZXJzL25ldAoKICAgIEFsc28gY2hhbmdlZCBwYXRoIGluIGFsbCBsaW5rZXIgc2NyaXB0cyB0aGF0IHJlZmVyZW5jZSB0aGlzIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDk2ZTIxZjg2ZTgyNjZlZDQwNzU5ZTU0OTVlZTQ2MTI2NWQ3ZjZkMjgKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglNb24gT2N0IDI3IDIzOjUwOjE1IDIwMDggLTA3MDAKCiAgICBDaGFuZ2VkIFBQQzR4eCBFTUFDIGRyaXZlciB0byByZXF1aXJlIENPTkZJR19QUEM0eHhfRU1BQwoKICAgIEFsbCBpbi10cmVlIElCTS9BTUNDIFBQQzR4eCBib2FyZHMgdXNpbmcgdGhlIEVNQUMgZ2V0IHRoaXMgbmV3IENPTkZJRwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDllYjc5YmQ4ODU2YmNhYjg5NmVkNWUxZjFiY2ExNTk4MDdhMTI0ZGQKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglUaHUgT2N0IDIzIDIyOjAyOjQ5IDIwMDggLTA3MDAKCiAgICBNb3ZlZCBpbml0aWFsaXphdGlvbiBvZiBNUEM4WFggU0NDIHRvIGNwdV9ldGhfaW5pdCgpCgogICAgUmVtb3ZlZCBpbml0aWFsaXphdGlvbiBvZiB0aGUgZHJpdmVyIGZyb20gbmV0L2V0aC5jCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBhOWJlYzk2ZDYzNTlhYzlmOTBhODUyOTYyYmYzMDQwY2FkOWUwMjU2CkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJV2VkIE9jdCAyMiAyMzo0Nzo1MSAyMDA4IC0wNzAwCgogICAgTW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgTVBDODIyMCBGRUMgdG8gY3B1X2V0aF9pbml0KCkKCiAgICBSZW1vdmVkIGluaXRpYWxpemF0aW9uIG9mIHRoZSBkcml2ZXIgZnJvbSBuZXQvZXRoLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDBlODQ1NGU5OTAzODVhNThmNzA4YzJmYzI2ZDMxYWMwNDFjN2E2YzUKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglXZWQgT2N0IDIyIDIzOjMyOjQ4IDIwMDggLTA3MDAKCiAgICBNb3ZlZCBpbml0aWFsaXphdGlvbiBvZiBRRSBFdGhlcm5ldCBjb250cm9sbGVyIHRvIGNwdV9ldGhfaW5pdCgpCgogICAgUmVtb3ZlZCBpbml0aWFsaXphdGlvbiBvZiB0aGUgZHJpdmVyIGZyb20gbmV0L2V0aC5jCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCAzNDU2YTE0ODI3NmQ1NDk0YjUzZWU0MDI0MmVmYjY0NjJkMTYzNTA0CkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJV2VkIE9jdCAyMiAyMzoyMDoyOSAyMDA4IC0wNzAwCgogICAgTW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgRkNDIEV0aGVybmV0IGNvbnRyb2xsZXIgdG8gY3B1X2V0aF9pbml0CgogICAgQWZmZWN0ZWQgYm9hcmRzOgoJU2V2ZXJhbCBNUEM4eHggYm9hcmRzCglTZXZlcmFsIE1QQzgyNjAvTVBDODI3MiBib2FyZHMKCVNldmVyYWwgTVBDODV4eCBib2FyZHMKCiAgICBSZW1vdmVkIGluaXRpYWxpemF0aW9uIG9mIHRoZSBkcml2ZXIgZnJvbSBuZXQvZXRoLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDYyZTE1YjQ5N2Y1YzYzMzRjMDU5NTEyNjc4YzhkYjc5NDBhZTRjNjEKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglUaHUgT2N0IDMwIDIyOjE1OjM1IDIwMDggLTA3MDAKCiAgICBGaXggdHlwbyBpbiBjcHUvbXBjODV4eC9jcHUuYwoKICAgIENPTkZJR19NUEM4NXh4X0ZFQyAtPiBDT05GSUdfTVBDODVYWF9GRUMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDVkZmIzZWUzZjU0ZTIzODJhMDhkNzI5MDZmMGU3OWVjZjk0NGY2ZTMKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTdW4gT2N0IDE5IDEyOjA4OjUwIDIwMDggKzA5MDAKCiAgICBuZXQ6IE1vdmUgaW5pdGlhbGl6YXRpb24gb2YgQXUxeDAwIFNvQyBldGhlcm5ldCBNQUMgdG8gY3B1X2V0aF9pbml0CgogICAgVGhpcyBwYXRjaCB3aWxsIG1vdmUgYXUxeDAwX2V0aF9pbml0aWFsaXplIGZyb20gbmV0L2V0aC5jIHRvIGNwdV9ldGhfaW5pdAogICAgYXMgYSBwYXJ0IG9mIG9uZ29pbmcgZXRoX2luaXRpYWxpemUgY2xlYW51cCB3b3JrLiAgVGhlIGZ1bmN0aW9uIHJldCB2YWx1ZQogICAgaXMgYWxzbyBmaXhlZCBhcyBpdCBzaG91bGQgYmUgbmVnYXRpdmUgb24gZmFpbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBjYzk0MDc0ZWNhYzE4ODVkMThkZGI2ODNlYjkzNGIzYzAyNjhhYTViCkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJRnJpIFNlcCA1IDAxOjU1OjIyIDIwMDggLTA0MDAKCiAgICBNb3ZlZCBpbml0aWFsaXphdGlvbiBvZiBJWFA0WFhfTlBFIEV0aGVybmV0IGNvbnRyb2xsZXIgdG8gY3B1X2V0aF9pbml0KCkKCiAgICBBbHNvLCByZW1vdmVkIHRoZSBkcml2ZXIgaW5pdGlhbGl6YXRpb24gZnJvbSBuZXQvZXRoLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGYyYTc4MDZmYzIzZTgyZDMwYzg1NDg5MTEzNjllMGM1MzA2MDczNTQKQXV0aG9yOiBDbGl2ZSBTdHViYmluZ3MgPHVib290QHhlbnRlY2guY28udWs+CkRhdGU6CU1vbiBPY3QgMjcgMTU6MDU6MDAgMjAwOCArMDAwMAoKICAgIHhpbGlueF9lbWFjbGl0ZSBidWZmZXIgb3ZlcnJ1bgoKICAgIFBhdGNoIHRvIGZpeCBidWZmZXIgYWxsb2NhdGlvbiBzaXplIGFuZCBhbGlnbm1lbnQuIEJ1ZmZlciBuZWVkcyB0byBiZSB1MzIgYWxpZ25lZCBhbmQKICAgIFBLVFNJWkVfQUxJR04gYnl0ZXMgbG9uZy4KCiAgICBBY2tlZC1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgMDExNWIxOTUzNzE4YTI5NjlmNjQ2OWQzZDVkYTUxYmExMWUxMmQ0MgpBdXRob3I6IHJpY2hhcmRyZXRhbnVidW4gPHJpY2hhcmRyZXRhbnVidW5AcnVnZ2VkY29tLmNvbT4KRGF0ZToJRnJpIFNlcCAyNiAwODo1OToxMiAyMDA4IC0wNDAwCgogICAgTkVUOiBRRTogVUVDOiBNYWtlIHVlY19taWlwaHlfcmVhZCgpIGFuZCB1ZWNfbWlpcGh5X3dyaXRlKCkgdXNlIHRoZSBkZXZuYW1lIGFyZy4KCiAgICBUaGUgY3VycmVudCB1ZWNfbWlpcGh5X3JlYWQgYW5kIHVlY19taWlwaHlfd3JpdGUgaGFyZGNvZGUgYWNjZXNzIGRldmxpc3RbMF0KICAgIFRoaXMgcGF0Y2ggbWFrZXMgdGhlc2UgZnVuY3Rpb24gdXNlIHRoZSBkZXZuYW1lIGFyZ3VtZW50IHRoYXQgaXMgcGFzc2VkIGluIHRvCiAgICBhbGxvdyBhY2Nlc3MgdG8gdGhlIHBoeSByZWdpc3RlcnMgb2Ygb3RoZXIgZGV2aWNlcyBpbiBkZXZsaXN0W10uCgogICAgU2lnbmVkLW9mLWJ5OiBSaWNoYXJkIFJldGFudWJ1biA8UmljaGFyZFJldGFudWJ1bkBSdWdnZ2VkQ29tLmNvbT4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDQ0ZGNiNzMzMjAzM2RiOGRlMjgxMGYyZmZmY2FlMzA4NGYxNWM4ZDQKQXV0aG9yOiByaWNoYXJkcmV0YW51YnVuIDxyaWNoYXJkcmV0YW51YnVuQHJ1Z2dlZGNvbS5jb20+CkRhdGU6CU1vbiBPY3QgNiAxNTozMTo0MyAyMDA4IC0wNDAwCgogICAgQWRkcyB0d28gbW9yZSBldGhlcm5ldCBpbnRlcmZhY2UgdG8gODN4eAoKICAgIEZpeGVkIGNvbXBpbGVyIHdhcm5pbmcgImRlY2xhcmVkIGJ1dCB1bnVzZWQiIGV0aDVfdWVjX2luZm8gYW5kIGV0aDZfdWVjX2luZm8uCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNoYXJkIFJldGFudWJ1biA8UmljaGFyZFJldGFudWJ1bkBSdWdnZ2VkQ29tLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZDgwMDNmYTAzNzMzOTAxYjczZDZjNDY2N2I0ZDgwZmM4ZWIxZGRkMwpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CUZyaSBOb3YgNyAxMzo1NDozMSAyMDA4ICswMTAwCgogICAgQVQ5MTogUmVwbGFjZSBBVDkxX0JBU0VfRU1BQyBieSB0aGUgYm9hcmQgc3BlY2lmaWMgdmFsdWVzLgoKICAgIEFUOTFfQkFTRV9FTUFDIGlzIG5ldmVyIHVzZWQgb3V0c2lkZSB0aGUgYm9hcmQgc3BlY2lmaWMgZmlsZXMsCiAgICBzbyByZXBsYWNlIGl0cyB1c2FnZSBieSB0aGUgYm9hcmQgc3BlY2lmaWMgQVQ5MXh4eF9CQVNFX0VNQUMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYzkxZTE3YWZmYTE3NWNlMDZhZmE4OWIwNDc1MjMwMWViNGE2MTY2NgpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CUZyaSBOb3YgNyAxMjowOToyMSAyMDA4ICswMTAwCgogICAgQVQ5MTogUmVwbGFjZSAodW5kZWZpbmVkKSBBVDkxX0lEX1VTKiBieSB0aGUgYm9hcmQgc3BlY2lmaWMgdmFsdWVzLgoKICAgIEFUOTFfSURfVVMwIC8gQVQ5MV9JRF9VUzEgLyBBVDkxX0lEX1VTMiB3ZXJlIHVzZWQgYnV0IG5ldmVyIGRlZmluZWQuCiAgICBTaW5jZSB0aGV5IGFyZSBuZXZlciB1c2VkIG91dHNpZGUgdGhlIGJvYXJkIHNwZWNpZmljIGZpbGVzLCB0aGV5IGNhbgogICAgYmUgcmVwbGFjZWQgYnkgdGhlIGJvYXJkIHNwZWNpZmljIEFUOTF4eHhfSURfVVMwIC8gQVQ5MXh4eF9JRF9VUzEgLwogICAgQVQ5MXh4eF9JRF9VUzIuCgogICAgQnVnIHNwb3R0ZWQgYnkgSmVzdXMgQWx2YXJleiA8amFsdmFyZXpAbWljcm9taW50LmNvbT4uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMjg5NjJmNWEyZGU4MWJjMGVlZDFjMGIwOGM2YmZhYTFjYzEzNGVhMgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBOb3YgMSAxMDo0Nzo1OSAyMDA4ICswMTAwCgogICAgTWFrZWZpbGUvYXQ5MXNhbTk6IG1vdmUgc29tZSBhdDkxc2FtOSB0byB0aGUgY29ycmVjdCBzdWJzZWN0aW9uIGZvciBhcm05MjZlanMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDEwNzk0MzJlMDRjY2Y3MWFhMzY4NDE4MTE4NjE4MmNkNjM1MTJmMTkKQXV0aG9yOiBTZXJnZXkgTGFwaW4gPHNsYXBpbkBvc3NmYW5zLm9yZz4KRGF0ZToJRnJpIE9jdCAzMSAxMjoyODo0MyAyMDA4ICswMTAwCgogICAgQ3VzdG9tIEFGRUI5MjYwIGJvYXJkIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIHByb3ZpZGVzIHN1cHBvcnQgZm9yIEFGRUI5MjYwIGJvYXJkLCBhIHByb2R1Y3Qgb2YKICAgIE9wZW5Tb3VyY2UgaGFyZHdhcmUgYW5kIHNvZnR3YXJlLiBTb21lIGNvbW1lcnRpYWwgcHJvamVjdHMKICAgIGFyZSBtYWRlIHdpdGggdGhpcyBkZXNpZ24uIEEgYm9hcmQgaXMgYmFzaWNhbGx5IEFUOTFTQU05MjYwLUVLCiAgICB3aXRoIHNvbWUgbW9kaWZpY2F0aW9ucyBhbmQgZGlmZmVyZW50IHBlcmlwaGVyYWxzIGFuZCBkaWZmZXJlbnQKICAgIHBhcnRzIHVzZWQuIE1haW4gcHVycG9zZSBvZiB0aGlzIHByb2plY3QgaXMgdG8gZ2FpbiBleHBlcmllbmNlIGluCiAgICBoYXJkd2FyZSBkZXNpZ24uCiAgICBNb3JlIGluZm86IGh0dHA6Ly9ncm91cHMuZ29vZ2xlLmNvbS9ncm91cC9hcm05ZnBnYS1ldm9sdXRpb24tYm9hcmQKICAgIChJbiBSdXNzaWFuIG9ubHksIHNvcnJ5KS4KICAgIFN1YnZlcnNpb24gcmVwb3NpdG9yeTogc3ZuOi8vMTk0Ljg1LjIzOC4yMi9ob21lL3VzZXJzL2dlb3JnZS9zdm4vYXJtOWViCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2V5IExhcGluIDxzbGFwaW5Ab3NzZmFucy5vcmc+Cgpjb21taXQgMjZlZWNkMjRmOTcxMzBlNTZlOWMyYzJhZjBlNzE0ZTA1YmNlNmUwMApBdXRob3I6IFRvbW9oaXJvIE1hc3VidWNoaSA8dG9tb2hpcm9fbWFzdWJ1Y2hpYXR0cmlwZWFrcy5jby5qcD4KRGF0ZToJVHVlIE9jdCAyMSAxMzoxNzoxNiAyMDA4ICswOTAwCgogICAgQ2hhbmdlIHRvIHVzZSAiZG9fZGl2IiBtYWNybwoKICAgIFNpZ25lZC1vZmYtYnk6IFRvbW9oaXJvIE1hc3VidWNoaSA8dG9tb2hpcm9fbWFzdWJ1Y2hpQHRyaXBlYWtzLmNvLmpwPgoKY29tbWl0IGUzNTI0OTUzMThkODA1NmEwMGZhYTIxYjYzM2IzZTQzNzRiZmJmNTIKQXV0aG9yOiBSb21hbiBNYXNoYWsgPHJvbWV6Nzc3QGdtYWlsLmNvbT4KRGF0ZToJV2VkIE9jdCAyMiAxNjowMDoyNiAyMDA4IC0wNDAwCgogICAgQVJNOTI2RUotUzogcmVsb2NhdGUgT01BUCBzcGVjaWZpYyAnY3B1aW5mby5jJyBpbnRvIE9NQVAgZGlyZWN0b3J5CgogICAgT01BUCBpZGVudGlmaWNhdGlvbiBpcyBpbXBsZW1lbnRlZCBpbiAnY3B1aW5mby5jJyBhbmQgbG9jYXRlZCBpbiBBUk05MjZFSi1TIGRpcmVjdG9yeS4KICAgIEl0IG1ha2VzIHNlbnNlIHRvIHBsYWNlIHRoaXMgZmlsZSBpbiBPTUFQIHNwZWNpZmljIHN1YmRpcmVjdG9yeSwgaS5lLiBjcHUvYXJtOTI2ZWpzL29tYXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBSb21hbiBNYXNoYWsgPHJvbWV6Nzc3QGdtYWlsLmNvbT4KCmNvbW1pdCAyNDhiMmMzNjcyMTBjMDZkYmQ1ZmJkZWNmMjdlOTdmYmU5ZDA1ZmRiCkF1dGhvcjogUm9tYW4gTWFzaGFrIDxyb21lejc3N0BnbWFpbC5jb20+CkRhdGU6CVR1ZSBPY3QgMjEgMDM6MDE6NDEgMjAwOCAtMDcwMAoKICAgIEFSTS9WZXJzYXRpbGUgcG9ydDogUmVtb3ZlZCB1bnVzZWQgZnVuY3Rpb25zCgogICAgUmVtb3ZhbCBvZiBuZXZlciB1c2VkIGZ1bmN0aW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSb21hbiBNYXNoYWsgPHJvbWV6Nzc3QGdtYWlsLmNvbT4KCmNvbW1pdCAxMjY2ZGY4ODc3ODFjNzc5ZGVhZjZkMDVlZWEyZWY5MGE0NzBjYjM0CkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBOb3YgMyAxNTo0NDowMSAyMDA4IC0wNjAwCgogICAgcG93ZXJwYzogY2hhbmdlIDg2eHggU01QIGJvb3QgbWV0aG9kCgogICAgV2UgcHV0IHRoZSBib290cGcgZm9yIHRoZSBzZWNvbmRhcnkgY3B1cyBpbnRvIG1lbW9yeSBhbmQgdXNlCiAgICBCUFRSIHRvIGdldCB0byBpdC4JVGhpcyBpcyBhIHN0ZXAgdG93YXJkcyBjb252ZXJ0aW5nIHRvIHRoZQogICAgZVBBUFIgYm9vdCBtZXRob2RvbG9neS4gIEFsc28sIHRoZSBjb2RlIGlzIHdyaXR0ZW4gdG8KICAgIGRlYWwgcHJvcGVybHkgd2l0aCBtb3JlIHRoYW4gNEdCIG9mIFJBTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNTQzMTU2MDY4MmQ4ZjMxOGZiYzQ5ZGI4N2NmZTEzYWI0MWQyZWU0CkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMzEgMTc6MTM6NDkgMjAwOCAtMDUwMAoKICAgIDg2NDFIUENOOiBDb25maWcgZmlsZSBjbGVhbnVwCgogICAgVGhlcmUgYXJlIHNldmVyYWwgaXRlbXMgaW4gdGhlIGNvbmZpZyBmaWxlIHRoYXQgd2VyZSBoYXJkY29kZWQKICAgIGJ1dCB0aGF0IHNob3VsZCByZWFsbHkgYmUgYmFzZWQgb24gb3RoZXIgY29uZmlnIG9wdGlvbnMsIHNpbmNlCiAgICB0aGUgcmVnaW9ucyBhcmUgY29udGlndW91cyBhbmQgZGVwZW5kIG9uIGJlaW5nIHNvLglUaGlzIGNsZWFucwogICAgdGhhdCB1cCBhIGJpdC4gIEFsc28sIGFkZCBCUl9QSFlTX0FERFIoKSBtYWNybyB0byBjb252ZXJ0CiAgICBhZGRyZXNzZXMgaW50byB0aGUgcHJvcGVyIGZvcm1hdCBmb3IgQlIgcmVnaXN0ZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRjNzdkZTNmMTQ0Y2EwODhjMzg2N2JkNjI0MDcxOGMxMGY1YTlkNjkKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAzMSAxNzoxMzozMiAyMDA4IC0wNTAwCgogICAgODZ4eDogTWFrZSBkcmFtX3NpemUgYSBwaHlzX3NpemVfdAoKICAgIEl0J3MgY3VycmVudGx5IGEgbG9uZyBhbmQgc2hvdWxkIGJlIHBoeXNfc2l6ZV90LgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDEwNDk5MmZjNTQxMzAyYTZiYWM3NDQ0OGUwMWU3ZmRhZDIwYWJjYTAKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIE5vdiAyIDE4OjE5OjMyIDIwMDggLTA2MDAKCiAgICBwb3dlcnBjIDg2eHg6IEhhbmRsZSBDQ1NSIHJlbG9jYXRpb24gZWFybGllcgoKICAgIEN1cnJlbnRseSwgdGhlIENDU1IgZ2V0cyByZWxvY2F0ZWQgd2hpbGUgdHJhbnNsYXRpb24gaXMKICAgIGVuYWJsZWQsIG1lYW5pbmcgd2UgbmVlZCAyIEJBVCB0cmFuc2xhdGlvbnMgdG8gZ2V0IHRvIGJvdGggdGhlCiAgICBvbGQgbG9jYXRpb24gYW5kIHRoZSBuZXcgbG9jYXRpb24uCUFsc28sIHRoZSBERUZBVUxUCiAgICBDQ1NSIGxvY2F0aW9uIGhhcyBhIGRlcGVuZGVuY3kgb24gdGhlIEJBVCB0aGF0IG1hcHMgdGhlCiAgICBGTEFTSCByZWdpb24uICBNb3ZpbmcgdGhlIHJlbG9jYXRpb24gcmVtb3ZlcyB0aGlzIHVubmVjZXNzYXJ5CiAgICBkZXBlbmRlbmN5LiBUaGlzIG1ha2VzIGl0IGVhc2llciBhbmQgbW9yZSBpbnR1dGl2ZSB0bwogICAgbW9kaWZ5IHRoZSBib2FyZCdzIG1lbW9yeSBtYXAuCgogICAgU3dhcCBCQVRzIDMgYW5kIDQgb24gODYxMCBzbyB0aGF0IGFsbCA4Nnh4IGJvYXJkcyB1c2UgdGhlIHNhbWUKICAgIEJBVCBmb3IgQ0NTUiBzcGFjZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhZjVkMTAwZThkNWNkNDlkNjlkNTJkMjBmMTE4MWViMDZkZGI0ZGRmCkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMzEgMTc6MTQ6MTQgMjAwOCAtMDUwMAoKICAgIG1wYzg2NDE6IE1ha2UgUENJIGFuZCBSSU8gbXV0dWFsbHkgZXhjbHVzaXZlLCBmaXggbm9uLVBDSSBidWlsZAoKICAgIFlvdSBjYW4ndCBhY3R1YWxseSBoYXZlIGJvdGgsIGFuZCB3aXRoIHNvbWUgY29taW5nIGNoYW5nZXMgdG8KICAgIGNoYW5nZSB0aGUgbWVtb3J5IG1hcCBmb3IgdGhlIGJvYXJkIGFuZCBzdXBwb3J0IDM2LWJpdCBwaHlzaWNhbCwKICAgIHdlIG5lZWQgdGhlIGV4dHJhIEJBVCB0aGF0IGlzIGJlaW5nIGNvbnN1bWVkIGJ5IGhhdmluZyBib3RoLgoKICAgIEkgYWxzbyBtYWtlIG5vbi1QQ0kgY29uZmlncyBidWlsZCBjbGVhbmx5LCBmb3IgdGhlIHNha2Ugb2Ygc2FuaXR5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk4NjkzYjg1ZDQyZmY0MzgzNzVkYzZkNmRjYWRjNzBlYjdiMDUwYmIKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAzMSAxNzoxNDowMCAyMDA4IC0wNTAwCgogICAgbXBjODY0MTogU3RvcCBzdXBwb3J0aW5nIG5vbi1QQ0lfUE5QIGNvbmZpZ3MKCiAgICBXZSBkb24ndCBhY3R1YWxseSBldmVyIGRvIHRoaXMsIHJlbW92ZSB0aGUgY29kZSBzbyB3ZQogICAgY2FuIHN0b3AgbWFpbnRhaW5pbmcgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTRmNjlkMWJkMjFhMTIwNDk3NDQ5ODlkMmRkNmI1MTk5YzliOGYyMwpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMjQgMTI6NTk6MTIgMjAwOCArMDAwMAoKICAgIENvbGRGaXJlOiBGaXggTTUzMjlFVkIgYW5kIE01MzczRVZCIG5hbmQgaXNzdWUKCiAgICBGaXggY29tcGlsYXRpb24gaXNzdWUgY2F1c2VkIGJ5IGEgZmV3IG1pc21hdGNoZXMuCiAgICBQcm92aWRlIHByb3BlciBuYW5kIGNoaXAgc2VsZWN0IGVuYWJsZS9kaXNhYmxlIGluCiAgICBuYW5kX2h3Y29udHJvbCgpIHJhdGhlciB0aGFuIGluIGJvYXJkX25hbmRfaW5pdCgpCiAgICBqdXN0IGVuYWJsZSBvbmNlLiBSZW1vdmUgcmVkdW5kYW50IGxvY2FsIG5hbmQgZHJpdmVyCiAgICBmdW5jdGlvbnMgLSBuYW5kX3JlYWRfYnl0ZSgpLCBuYW5kX3dyaXRlX2J5dGUoKSBhbmQKICAgIG5hbmRfZGV2X3JlYWR5KCkgdG8gdXNlIGNvbW1vbiBuYW5kIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFiMjcwODQ0MjIyNGE1NTFhMGI4NjViNTI3MTAzMDYzMzM4ODg5MzIKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgT2N0IDIyIDExOjU1OjMwIDIwMDggKzAwMDAKCiAgICBDb2xkRmlyZTogRml4IGNvbXBpbGF0aW9uIGVycm9yCgogICAgVGhlIGVycm9yIHdhcyBjYXVzZWQgYnkgdGhlIGNoYW5nZSBmb3Igc3RybWh6KCkgaW4gY3B1LmMuCiAgICBBIGZldyBvZiB0aGVtIHdlcmUgb25lIGV4dHJhIGNsb3NlIHBhcmVudGhlc2lzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTM2ZTdkYWMxNjc2OTk1NDkxNWE0ODRlNjgyYTJlZmIyODY5OTEzMwpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBPY3QgMjIgMTE6Mzg6MjEgMjAwOCArMDAwMAoKICAgIENvbGRGaXJlOiBBZGQgTUNGNTMwMXggQ1BVIGFuZCBNNTMwMTdFVkIgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTIxZDBjMmNjOWFkZDg4OTRkOTcxYWI3OTFmNDAzMmYwNzdkYjgxNwpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMjEgMTU6Mzc6MDIgMjAwOCArMDAwMAoKICAgIENvbGRGaXJlOiBBZGQgU0JGIHN1cHBvcnQgZm9yIE01MjI3N0VWQgoKICAgIEFkZCBzZXJpYWwgYm9vdCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiMjAyODE2YzYxMDQyYzE4M2ZlNjdkMDk3YTU4OTNiMGYyZGFmYmEwCkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAyMSAxNDoxOToyNiAyMDA4ICswMDAwCgogICAgQ29sZEZpcmU6IFVzZSBDRkkgZHJpdmVyIGZvciBNNTI3MkMzCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmMzk2MmQzZjU3NGU1YTFjZmZhY2Q0ZTliYzQ4NzEzMDYwYTJhMzE0CkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAyMSAxMzo0Nzo1NCAyMDA4ICswMDAwCgogICAgQ29sZEZpcmU6IFJlbG9jYXRlIEZFQydzIEdQSU8gYW5kIG1paSBmdW5jdGlvbnMgcHJvdG9jb2xzCgogICAgUGxhY2UgRkVDIHBpbiBhc3NpZ25tZW50cyBpbiBjcHVfaW5pdC5jIGZyb20gcGxhdGZvcm0ncwogICAgbWlpLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZlODBmNWFhMDlmOGQ0MWJhYzUwYjM4ZGM3NDg4ZWNkMjIxMDc4MDIKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDIxIDEyOjE1OjQ0IDIwMDggKzAwMDAKCiAgICBDb2xkRmlyZTogUmVtb3ZlIHBsYXRmb3JtcyBtaWkuYyBmaWxlCgogICAgV2lsbCB1c2UgbWNmbWlpLmMgZHJpdmVyIGluIGRyaXZlcnMvbmV0IHJhdGhlciB0aGFuCiAgICBrZWVwIGNyZWF0aW5nIG5ldyBtaWkuYyBmb3IgZWFjaCBmdXR1cmUgcGxhdGZvcm0uCiAgICBSZW1vdmUgRUIrTUNGLUVWMTIzLCBjb2JyYTUyNzIsIGlkbXIsIE01MjM1RVZCLAogICAgTTUyNzFFVkIsIE01MjcyQzMsIE01Mjc1RVZCLCBNNTI4MkVWQiwgTTUzMjlFVkIsCiAgICBNNTM3M0VWQiwgTTU0NDUxRVZCLCBNNTQ0NTVFVkIsIE01NDd4RVZCLCBhbmQgTTU0OHhFVkIncwogICAgbWlpLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDAxMjUyMmZlZjNiMzgyNDY5MTI1YmViNDZhMzE1YWI0ZGVlMDJmYjAKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDIxIDEwOjAzOjA3IDIwMDggKzAwMDAKCiAgICBDb2xkRmlyZTogTW9kdWxlcyBoZWFkZXIgZmlsZXMgY2xlYW51cAoKICAgIENvbnNvbGlkYXRlIEFUQSwgZVBPUlQsIFFTUEksIEZsZXhDYW4sIFBXTSwgUk5HLAogICAgTURIQSwgU0tIQSwgSU5UQywgYW5kIEZsZXhCdXMgc3RydWN0dXJlcyBhbmQKICAgIGRlZmluaXRpb25zIGluIGltbWFwXzV4eHguaCB0byBtb3JlIHVuaWZ5IG1vZHVsZXMKICAgIGhlYWRlciBmaWxlcy4gQXBwZW5kIERTUEkgc3VwcG9ydCBmb3IgbTU0N3hfOHguCiAgICBTU0kgY2xlYW51cC4gUmVtb3ZlIFVTQiBIb3N0IHN0cnVjdHVyZSBmcm9tIGltbWFwXzUzOS5oLgogICAgQXBwbHkgY2hhbmdlcyB0byB1c2UgRmxleEJ1cyBzdHJ1Y3R1cmVzIGluIG1jZjUyeDIncwogICAgY3B1X2luaXQuYyBhbmQgcGxhdGZvcm0gY29uZmlndXJhdGlvbiBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFjMjMzMWFlZTk5YWQzNmJlMGZjZmVkOGM0OTkyMmUzYzYxYjU3NmQKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDIxIDA4OjUyOjM2IDIwMDggKzAwMDAKCiAgICBDb2xkRmlyZTogUmVtb3ZlIGxpbmtlciBmaWxlCgogICAgRWFjaCBkaWZmZXJlbnQgYnVpbGQgZm9yIE01NDQ1NUVWQiBhbmQgTTUyMzVFVkIgd2lsbAogICAgY3JlYXRlIGEgdS1ib290LmxkcyBsaW5rZXIgZmlsZS4gSXQgaXMgcmVkdW5kYW50IHRvCiAgICBrZWVwIHRoZSB1LWJvb3QubGRzCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwODI5MzIzMDczYzUwNTU1NmVkNWY1MDczZjkxYWRiNTA0NTg0ZDQ1CkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJRnJpIE9jdCAzMSAxMToyNjo0NCAyMDA4IC0wNTAwCgogICAgcHBjOiBGaXggY29tcGlsZSB3YXJuaW5ncyB3aGVuICFDT05GSUdfT0ZfTElCRkRUCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCBhODBiMjFkNTEyNzU4MzE3MWQ2ZTliYzdmNzIyOTQ3NjQxODk4MDEyCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIE9jdCAzMSAxMjoxMjoxMiAyMDA4ICswMTAwCgogICAgY29tbW9uL01ha2VmaWxlOiBjcmVhdGUgb3RoZXJzIGdyb3VwIGZvciBub24gY29yZSwgZW52aXJvbm1lbnQgYW5kIGNvbW1hbmQgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDYwYzY4ZDljMWM2ZDE4Y2UwMmM4NjJhMDU3MThmZDk0Zjk3YzEzZDAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgT2N0IDMxIDAxOjEzOjM3IDIwMDggKzAxMDAKCiAgICBUUU04MjYwOiB1c2UgQ0ZJIGZsYXNoIGRyaXZlciBpbnN0ZWFkIG9mIGN1c3RvbSBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyMGQwNDc3NGY0ZWYzZjZlMzg5NzQ2MzZlMGUzNmFlMGYwYjU1MDFmCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDMwIDE3OjM1OjMwIDIwMDggLTA1MDAKCiAgICBDb25zb2xpZGF0ZSBNQVgvTUlOIGRlZmluaXRpb25zCgogICAgVGhlcmUgd2VyZSBzZXZlcmFsLCBub3cgdGhlcmUgaXMgb25lICh0d28gaWYgeW91IGNvdW50IHRoZSBsb3dlci1jYXNlCiAgICB2ZXJzaW9ucykuCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI5OGU0NzZjNjZmZDg4ZDBiYzRmMDM3MTExODY1MmQyYjVkZTRlOGEKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJVGh1IE9jdCAzMCAwOToyMzowOSAyMDA4ICswMTAwCgogICAgbWdzdXZkOiByZW1vdmUgdW51c2VkIGRlZmluZXMgaW4gY29uZmlnIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgM2NiZDgyMzExNmVhOGI3YzY1NGUyNzVhOGMyZmNhODdjZDFmNWRjNQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBOb3YgMiAxNjoxNDoyMiAyMDA4ICswMTAwCgogICAgQ29kaW5nIFN0eWxlIGNsZWFudXAsIHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGE0N2Y5NTdhYjUyMzAxOTk5MmZkZWY4NTdhZjAxYmQ3MWM1OGE0ZGEKQXV0aG9yOiBBbGVzc2FuZHJvIFJ1YmluaSA8cnViaW5pLWxpc3RAZ251ZGQuY29tPgpEYXRlOglGcmkgT2N0IDMxIDIyOjMzOjIxIDIwMDggKzAxMDAKCiAgICBOQU5EOiBBbGxvdyBOQU5EIGFuZCBPbmVOQU5EIHRvIGNvZXhpc3QKCiAgICBUaGlzIHJlbW92ZXMgaW4gbmFuZC5oIGNvZGUgdGhhdCBpcyB2ZXJiYXRpbSBkdXBsaWNhdGVkIGZyb20gYmJtLmgsCiAgICBpbmNsdWRpbmcgZGlyZWN0bHkgYmJtLmggaW4gbmFuZC5oLiBUaGUgcHJldmlvdXMgc3RhdGUgb2YgYWZmYWlycwogICAgcHJldmVudGVkIGNvbXBpbGluZyBjb2RlIGZvciBhIGJvYXJkIGhvc3RpbmcgYm90aCBOQU5EIGFuZCBPbmVOQU5EIGNoaXBzLgoKICAgIFJlcG9ydGVkLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFsZXNzYW5kcm8gUnViaW5pIDxydWJpbmlAdW5pcHYuaXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyZjc3YzdmNDViOWEzN2VmMjY1YThkYmUzYzE4ZWZhNzA2ZmVkMjE0CkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMzEgMTM6NTE6MTIgMjAwOCAtMDUwMAoKICAgIEpGRlMyOiBFbGltaW5hdGUgY29tcGlsZXIgZXJyb3Igd2hlbiBib3RoIE5BTkQgYW5kIE9uZU5BTkQgYXJlIGVuYWJsZWQuCgogICAgUmVwb3J0ZWQtYnk6IEFsZXNzYW5kcm8gUnViaW5pIDxydWJpbmktbGlzdEBnbnVkZC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNTdmYzI4OTQ3ZTI0OGZiMDNjNDlhMjhiNDY3Njg2Mjk5ODk1MDU1CkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAzMSAwNTowNzowNCAyMDA4IC0wNTAwCgogICAgTkFORDogQWRkIE5BTkQgc3VwcG9ydCBmb3IgTVBDODUzNkRTIGJvYXJkCgogICAgVGhpcyBwYXRjaCBkZWZpbmVzIDFNIFRMQiZMQVcgc2l6ZSBmb3IgTkFORCBvbiBNUEM4NTM2RFMsIGFzc2lnbnMgMHhmZmEwMDAwMAogICAgZm9yIENPTkZJR19TWVNfTkFORF9CQVNFIGFuZCBhZGRzIG90aGVyIE5BTkQgc3VwcG9ydHMgaW4gY29uZmlnIGZpbGUuCiAgICBJdCBhbHNvIG1vdmVzIGVudmlyb25tZW50KENPTkZJR19FTlZfQUREUikgb3V0c2lkZSBvZiB1LWJvb3QgaW1hZ2UuCgogICAgU2luZ2VkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDZmYzExMGJkOGE4ZDY0MmI4ZjdiMDY1M2JkOWEwOGEwYjdjM2Q1MGIKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDMxIDA1OjA2OjE0IDIwMDggLTA1MDAKCiAgICBOQU5EOiBGaXggQ09ORklHX0VOVl9BRERSIGZvciBNUEM4NTcyRFMKCiAgICBDT05GSUdfRU5WX0FERFIgc2hvdWxkIGJlIChDT05GSUdfU1lTX01PTklUT1JfQkFTRSAtIENPTkZJR19FTlZfU0VDVF9TSVpFKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA1MWI1NzJhODAxYmU1Nzc5MGZlMjZhZGFhNTMwMjEwZTdmYmE1OWNjCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglGcmkgT2N0IDI0IDEwOjQ5OjQ4IDIwMDggKzA5MDAKCiAgICBzaDogcnNrNzIwMzogTW92ZWQgcnNrNzIwMyBib2FyZCB0byBib2FyZC9yZW5lc2FzCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDU4NDUzYjAwYjNlYmIyNmFhYTkwMTIxMDAyM2Y5OTUwNGE5MGJiMDAKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CUZyaSBPY3QgMjQgMTA6NDg6MzEgMjAwOCArMDkwMAoKICAgIHNoOiBNaWdvUjogTW92ZWQgTWlnb1IgYm9hcmQgdG8gYm9hcmQvcmVuZXNhcwoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBjMWRhMmEyMjgxN2JhODViNDM3YWZhMmY0ZTcxNWU2NThiMjE5ZmQxCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglGcmkgT2N0IDI0IDEwOjM5OjQ0IDIwMDggKzA5MDAKCiAgICBzaDogcjJkcGx1czogTW92ZWQgcjJkcGx1cyBib2FyZCB0byBib2FyZC9yZW5lc2FzCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDc4Mzg1YmYyMzU5ZDgyODE4NGQwYjM2NDlmN2FlNmI5MzM0MjAwMDAKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CUZyaSBPY3QgMjQgMTA6MzY6MTMgMjAwOCArMDkwMAoKICAgIHNoOiBzaDc3NjNyZHA6IE1vdmVkIHNoNzc2M3JkcCBib2FyZCB0byBib2FyZC9yZW5lc2FzCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGM2NTI1ZDQ1OWMzNTBiZmMyNDZlYTc4MjY0NTZhZjc3ZTFlMzE0ZWIKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CUZyaSBPY3QgMjQgMTA6MzU6MTkgMjAwOCArMDkwMAoKICAgIHNoOiBzaDc3ODVsY3I6IE1vdmVkIHNoNzc4NWxjciBib2FyZCB0byBib2FyZC9yZW5lc2FzCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGFjZDNlMzBkMDlhNzNmODc2MjIyZjBkNDk2YzRmNTJlZTlkMDc3MWQKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CUZyaSBPY3QgMjQgMTA6MzQ6MjEgMjAwOCArMDkwMAoKICAgIHNoOiByNzc4MG1wOiBNb3ZlZCByNzc4MG1wIGJvYXJkIHRvIGJvYXJkL3JlbmVzYXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgZjg0ZTZlYTI3NTM1M2I4ZmVhNzcyZWM3NTUzZmY3ZTRiMWY2NDJlMApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJRnJpIE9jdCAyNCAxMDozMjoxNCAyMDA4ICswOTAwCgogICAgc2g6IGFwMzI1cnhhOiBNb3ZlZCBhcDMyNXJ4YSBib2FyZCB0byBib2FyZC9yZW5lc2FzCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDlhYmRhNmJhNzM1ZWZiMDU5ZjYzZGNiMjVkNzhiMTc0YmZjYWQxYWQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEB4cGVydC5kZW54LmRlPgpEYXRlOglGcmkgT2N0IDMxIDAxOjEyOjI4IDIwMDggKzAxMDAKCiAgICBDRkkgRHJpdmVyOiBGaXggImZsYXNoIG5vdCByZWFkeSIgcHJvYmxlbQoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBwcm9ibGVtIG9uIHN5c3RlbXMgd2hlcmUgdGhlIE5PUiBmbGFzaCBpcyBhdHRhY2hlZAogICAgdG8gYSA2NCBiaXQgYnVzLiAgVGhlIHRvZ2dsZSBiaXQgZGV0ZWN0aW9uIGluIGZsYXNoX3RvZ2dsZSgpIGlzIGJhc2VkCiAgICBvbiB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoZSBzYW1lIGZsYXNoIGFkZHJlc3MgaXMgcmVhZCB0d2ljZSB3aXRob3V0CiAgICBhbnkgb3RoZXIgaW50ZXJqYWNlbnQgZmxhc2ggYWNjZXNzZXMuICBIb3dldmVyLCBvbiAzMiBiaXQgc3lzdGVtcyB0aGUKICAgIGZ1bmN0aW9uIGZsYXNoX3JlYWQ2NCgpIFthcyBjdXJyZW50bHkgaW1wbGVtZW50ZWRdIGRvZXMgbm90IHBlcmZvcm0KICAgIGFuIGF0b21pYyA2NCBiaXQgcmVhZCAtIGluc3RlYWQsIHRoaXMgaXMgYnJva2VuIGRvd24gaW50byB0d28gMzIgYml0CiAgICByZWFkIGFjY2Vzc2VzIG9uIGFkZHJlc3NlcyAiYWRkciIgYW5kICJhZGRyICsgNCIuICBTbyBpbnN0ZWFkIG9mCiAgICByZWFkaW5nIGEgNjQgYml0IHZhbHVlIHR3aWNlIGZyb20gImFkZHIiLCB3ZSBzZWUgYSBzZXF1ZW5jZSBvZiA0IDMyCiAgICBiaXQgcmVhZHMgZnJvbSAiYWRkciIsICJhZGRyICsgNCIsICJhZGRyIiwgYW5kICJhZGRyICsgNCIuCVRoZQogICAgY29uc2VxdWVuY2UgaXMgdGhhdCBmbGFzaF90b2dnbGUoKSBmYWlscyB0byB3b3JrLgoKICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBhIHNpbXBsZSwgYnV0IHNvbWV3aGF0IHVnbHkgc29sdXRpb24sIGFzIGl0CiAgICBhdm9pZHMgdGhlIHVzZSBvZiBmbGFzaF9yZWFkNjQoKSBpbiB0aGlzIGNyaXRpY2FsIHBsYWNlIChieSBicmVha2luZwogICAgaXQgZG93biBtYW51YWxseSBpbnRvIDMyIGJpdCByZWFkIG9wZXJhdGlvbnMpIGluc3RlYWQgb2YgcmV3cml0aW5nCiAgICBmbGFzaF9yZWFkNjQoKSBzdWNoIHRvIHBlcmZvcm0gYXRvbWljIDY0IGJpdCByZWFkcyBhcyBvbmUgY291bGQKICAgIGV4cGVjdC4gIEhvd2V2ZXIsIHN1Y2ggYSByZXdyaXRlIHdvdWxkIHJlcXVpcmUgdGhlIHVzZSBvZiBmbG9hdGluZwogICAgcG9pbnQgbG9hZCBvcGVyYXRpb25zLCB3aGljaCBiZWNvbWVzIHByZXR0eSBjb21wbGV4OgoKCXNhdmUgTVNSOwoJc2V0IEZsb2F0aW5nIFBvaW50IEVuYWJsZSBiaXQgaW4gTVNSOwoJdXNlICJsZmQiIGluc3RydWN0aW9uIHRvIHBlcmZvcm0gYXRvbWljIDY0IGJpdCByZWFkOwoJdXNlICJzdGZkIiB0byBzdG9yZSB2YWx1ZSB0byB0ZW1wb3JhcnkgdmFyaWFibGUgb24gc3RhY2s7Cglsb2FkIHU2NCB2YWx1ZSBmcm9tIHRlbXBvcmFyeSB2YXJpYWJsZTsKCXJlc3RvcmUgc2F2ZWQgTVNSOwoJcmV0dXJuIHU2NCB2YWx1ZTsKCiAgICBUaGUgYmVuZWZpdC1jb3N0IHJhdGlvIG9mIHN1Y2ggYW4gaW1wbGVtZW50YXRpb24gd2FzIGNvbnNpZGVyZWQgdG9vCiAgICBiYWQgdG8gYWN0dWFsbHkgYXR0ZW1wdCB0aGlzLCBlc3BlY2lhbGx5IGFzIHdlIGNhbiBleHBlY3QgdGhhdCBzdWNoCiAgICBhbiBpbXBsZW1lbnRhdGlvbiB3b3VsZCBub3Qgb25seSBoYXZlIGEgYmlnZ2VyIG1lbW9yeSBmb290cHJpbnQgYnV0CiAgICBhbHNvIGNhdXNlIGEgcGVyZm9ybWFuY2UgZGVncmFkYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjZGQ0ZmU2M2IwOTRkNGI3NjdmMTJmZjI0MWQ3MjU2NmI0NjFlZTYxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgT2N0IDMxIDEwOjQ4OjA4IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBzcGVsbGluZyBlcnJvciBpbiBNQUlOVEFJTkVSUyBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGJlMjcwNzk4OTAwYjc1YWQ5YzQ3YzdiNzljNzJmNzA0NDExOTZjNTYKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIE9jdCAyOCAxMzozNzowMCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBVcGRhdGUgUE1DNDQwIGJvYXJkIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGJyaW5ncyBQTUM0NDAgYm9hcmQgc3VwcG9ydCB1cCB0byBkYXRlOgoKICAgIC0gZml4IEdQSU8gY29uZmlndXJhdGlvbgogICAgLSBhZGQgbWlzY19pbml0X2YoKQogICAgLSB1c2UgYmV0dGVyIHZhbHVlcyBmb3IgdXNiYWN0IHZhcmlhYmxlCiAgICAtIGZpeCBVU0IgMi4wIHBoeSByZXNldCBzZXF1ZW5jZQogICAgLSBzaHJpbmsgQkFSMiB0byBzYXZlIFBDSSBhZGRyZXNzIHNwYWNlCiAgICAtIGFkZCBGRFQgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc1MTgzYjFhN2ZjMDQyMDZkOTc3OWQxM2YxNmUwMzg1M2Q3ZTk2NWQKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIE9jdCAyOCAxMzozNjo1OSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBGaXggUE1DNDQwIEJTUCBjb21tYW5kcwoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIFBNQzQ0MCBCU1AgY29tbWFuZHMgcGFpbml0IGFuZCBzZWxmcmVzZXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3NmI1NjViNjlmODg2ZDVhZTc0OGRiNjVlNDRmNDY0YjBlNzBkNDFhCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBPY3QgMjggMTM6MzY6NTggMjAwOCArMDEwMAoKICAgIHBwYzR4eDogVXBkYXRlIFBNQzQ0MCBib2FyZCBjb25maWd1cmF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2EwYzJkNDJiOTMxMTZhOGUxYjhlZjhhZDQ0OTNjN2RjOWI1ZjJlNApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUdWUgT2N0IDI4IDEzOjM2OjU3IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBlc2QgbG9hZHBjaSBjb21tYW5kCgogICAgVGhpcyBwYXRjaCBmaXhlcyBlc2QncyBsb2FkcGNpIGNvbW1hbmQgd2hlbiBub3QgYWxsCiAgICBtZW1vcnkgb24gYWRhcHRlciBib2FyZHMgaXMgYWNjZXNzYWJsZSB2aWEgUENJLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDQ5MmFhOWVhMTM3OTFjYTQ1OTFiNWJkZTg5NWE0MjVlMjdhZTJkMTAKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIE9jdCAyOCAxMzozNjo1NiAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBDbGVhbiB1cCBQTUM0NDAgaGVhZGVyCgogICAgLUNvZGluZ3N0eWxlIGNsZWFudXAKICAgIC1SZW1vdmUgdW51c2VkIEdQSU8gZGVmaW5lCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjk1MTMzMjU4YTQ0Zjk3YTU3ZmIyZWMzMzlhZWNmZGExMWY0ZGI5NQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUdWUgT2N0IDI4IDEzOjM2OjU1IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEhhbmRsZSBvdGhlciBib2FyZCB2YXJpYW50IGluIFBNQzQ0MCBGUEdBIGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjYzJkYzliMDhjZjdjMDlmOWYyMzdmOGNiOTMwM2YxMTYwM2Q0ZmIwCkF1dGhvcjogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CkRhdGU6CU1vbiBPY3QgMjcgMTI6MzU6NTkgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogTWVyZ2UgeGlsaW54LXBwYzQ0MCBhbmQgeGlsaW54LXBwYzQwNSBjZmcKCiAgICBYaWxpbnggcHBjNDQwIGFuZCBwcGM0MDUgaGF2ZSBtYW55IHNpbWlsYXJpdGllcy4gVGhpcyBwYXRjaCBtZXJnZSB0aGUKICAgIGNvbmZpZyBmaWxlcyBvZiBib3RoIGluZnJhc3R1Y3R1cmVzCgogICAgU2lnbmVkLW9mZi1ieTogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgM2JlZmQ4NTYzM2QzM2M0ZGNjYTFmMzU5YzNmNDg0OGM1YWI4ZTRkMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAyNSAwNjo0NTozMSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBDb3JyZWN0bHkgY29uZmlndXJlIHRoZSBHUElPIHBpbiBtdXhpbmcgb24gQXJjaGVzCgogICAgQXJjaGVzIGRvZXNuJ3QgdXNlIFBlckNTMyBidXQgR1BJTzQzLCBzbyBsZXQncyBjb25maWd1cmUgdGhlIEdQSU8KICAgIHBpbiBtdWx0aXBsZXhpbmcgY29ycmVjdGx5CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDdjODRmZTZhMDZkYWQ5Zjc5M2VkODViMzliMWU2YzExYTc4ODJmNWMKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgT2N0IDMwIDIzOjIyOjA0IDIwMDggKzAxMDAKCiAgICBGaXggdG8gdGhlIGF1dG8tdXBkYXRlIGZlYXR1cmUgZG9jdW1lbnRhdGlvbiAoQ09ORklHX1VQREFURV9URlRQX01TRUNfTUFYKQoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgNGJjN2RlZWU5MDk1ZjIxZTI0M2I3MjRjYTNkNjM0MjUxYzFkNTQzMgpBdXRob3I6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgpEYXRlOglXZWQgT2N0IDI5IDIzOjI3OjQ1IDIwMDggLTA1MDAKCiAgICBsaWJmZHQ6IEZpeCBidWcgaW4gZmR0X3N1Ym5vZGVfb2Zmc2V0X25hbWVsZW4oKQoKICAgIFRoZXJlJ3MgY3VycmVudGx5IGFuIG9mZi1ieS1vbmUgYnVnIGluIGZkdF9zdWJub2RlX29mZnNldF9uYW1lbGVuKCkKICAgIHdoaWNoIGNhdXNlcyBpdCB0byBrZWVwIHNlYXJjaGluZyBhZnRlciBpdCdzIGZpbmlzaGVkIHRoZSBzdWJub2RlcyBvZgogICAgdGhlIGdpdmVuIHBhcmVudCwgYW5kIGludG8gdGhlIHN1Ym5vZGVzIG9mIHNpYmxpbmdzIG9mIHRoZSBvcmlnaW5hbAogICAgbm9kZSB3aGljaCBjb21lIGFmdGVyIGl0IGluIHRoZSB0cmVlLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmMjQyYTA4ODcxODM5ZWFjMDgxYmE1YjU5OWFmOTc5ZjNhMTQ4YTBkCkF1dGhvcjogUGV0ZXIgS29yc2dhYXJkIDxqYWNtZXRAc3Vuc2l0ZS5kaz4KRGF0ZToJVHVlIE9jdCAyOCAwODoyNjo1MiAyMDA4ICswMTAwCgogICAgZmR0X3Jlc2l6ZSgpOiBlbnN1cmUgbWluaW11bSBwYWRkaW5nCgogICAgZmR0X2FkZF9tZW1fcnN2KCkgcmVxdWlyZXMgc3BhY2UgZm9yIGEgc3RydWN0IGZkdF9yZXNlcnZlX2VudHJ5CiAgICAoMTYgYnl0ZXMpLCBzbyBtYWtlIHN1cmUgdGhhdCBmZHRfcmVzaXplIGF0IGxlYXN0IGFkZHMgdGhhdCBtdWNoCiAgICBwYWRkaW5nLCBubyBtYXR0ZXIgd2hhdCB0aGUgbG9jYXRpb24gb3Igc2l6ZSBvZiB0aGUgZmR0IGlzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIEtvcnNnYWFyZCA8amFjbWV0QHN1bnNpdGUuZGs+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ2ODViNzRjNjRhMzg4NDlmMWExMjliM2FiODQ2ZmJmNjdkZDkzN2UKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDIzIDIxOjU5OjM1IDIwMDggKzA4MDAKCiAgICA3NHh4OiB1c2UgcjQgaW5zdGVhZCBvZiByMiBpbiBsb2NrX3JhbV9pbl9jYWNoZSBhbmQgdW5sb2NrX3JhbV9pbl9jYWNoZQoKICAgIFRoZSBwYXRjaCBpcyBmb2xsb3dpbmcgdGhlIGNvbW1pdCAzOTI0Mzg0MDYwNDE0MTVmZTY0YWI4NzQ4ZWM1YWI1YWQwMWQxY2Y3CgogICAgbXBjODZ4eDogdXNlIHI0IGluc3RlYWQgb2YgcjIgaW4gbG9ja19yYW1faW5fY2FjaGUgYW5kIHVubG9ja19yYW1faW5fY2FjaGUKCiAgICBUaGlzIGlzIG5lZWRlZCBpbiB1bmxvY2tfcmFtX2luX2NhY2hlKCkgYmVjYXVzZSBpdCBpcyBjYWxsZWQgZnJvbSBDIGFuZAogICAgd2lsbCBjb3JydXB0IHRoZSBzbWFsbCBkYXRhIGFyZWEgYW5jaG9yIHRoYXQgaXMga2VwdCBpbiBSMi4KCiAgICBsb2NrX3JhbV9pbl9jYWNoZSgpIGlzIG1vZGlmaWVkIHNpbWlsYXJseSBhcyBnb29kIGNvZGluZyBwcmFjdGljZSwgYnV0CiAgICBpcyBub3QgY2FsbGVkIGZyb20gQy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KCiAgICBhbHNvLCB0aGUgcjIgaXMgdXNlZCBhcyBnbG9iYWwgZGF0YSBwb2ludGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTA1M2FiMTkwM2NjYWU2MDQ4ZWY3NTkwMjViOWY2NzViYmE5MTQ1MApBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDI4IDExOjQ1OjA0IDIwMDggLTA1MDAKCiAgICBtcGM4M3h4IHBjaTogUm91bmQgdXAgbWVtb3J5IHNpemUgaW4gaW5ib3VuZCB3aW5kb3cuCgogICAgVGhlIGN1cnJlbnQgY2FsY3VsYXRpb24gd2lsbCBmYWlsIHRvIGNvdmVyIGFsbCBtZW1vcnkgaWYKICAgIGl0cyBzaXplIGlzIG5vdCBhIHBvd2VyIG9mIHR3by4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWM2NzE5NzdkYzgxMzU5NjI4YmUyN2FjOTljMTc0ZTc2ZTgwNjliYQpBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMjMgMjE6MTk6MTMgMjAwOCArMDgwMAoKICAgIDg2eHg6IHJlbW92ZSB0aGUgdW51c2VkIGRlZmluaXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVhYTQ0YzVkYzgzNzU2YzMwNjdiOWU2YzlkYjYyNmZhY2QwYjA2NjAKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDI4IDE3OjQ3OjQ5IDIwMDggKzA4MDAKCiAgICA4Nnh4OiByZW1vdmUgdGhlIHJlZHVuZGFudCByMiBnbG9iYWwgZGF0YSBwb2ludGVyIHNhdmUKCiAgICBUaGUgY29tbWl0IDY3MjU2Njc4ZjAwYzA5YjBhN2YxOWU4NjJlNWMxODQ3NTUzZDMxYmMgYWRkCiAgICB0aGUgYW5vdGhlciBnbG9iYWwgZGF0YSBwb2ludGVyIHNhdmUsIGJ1dCBpbiBmYWN0IHRoZQogICAgZ2xvYmFsIGRhdGEgcG9pbnRlciB3aWxsIGJlIGluaXRpYWxpemVkIGluIHRoZSBib2FyZF9pbml0X3IsCiAgICBzbyByZW1vdmUgaXQgc3VjaCBhcyB0aGUgODV4eC84M3h4IGZhbWlseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEt1bWFyIEdhbGEgPGt1bWFyLmdhbGFAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZDg4OGU5NTQ0NDE5NjY1MzM0YTZmNDdmODFmMzQwMTFjZWEzOGYzCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAyOCAxNzo0Nzo0MSAyMDA4ICswODAwCgogICAgODZ4eDogcmVtb3ZlIHRoZSB1bnVzZWQgY29kZSBmb3IgODZ4eCBmYW1pbHkKCiAgICBJIGJlbGlldmUgdGhlc2UgY29kZSB3YXMgY29waWVkIGZyb20gNzR4eCBmYW1pbHksIGJ1dCBmb3IKICAgIDg2eHgsIGl0IGlzIHVudXNlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEt1bWFyIEdhbGEgPGt1bWFyLmdhbGFAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1YmExZWY1MDc0MDJiYzVlMzQ0ZGMzNzQyMDM3OTJhNDBmMjIyZThhCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAyOCAxNzo0NjozNSAyMDA4ICswODAwCgogICAgODZ4eDogcmVtb3ZlIHRoZSBzZWNvbmQgRERSIExBVyBzZXR0aW5nIGZvciBtcGM4NjQxaHBjbgoKICAgIFRoZSBERFIxIExBVyB3aWxsIHByZWNlZGVuY2UgdGhlIEREUjIgTEFXLCBzbyByZW1vdmUKICAgIHRoZSBzZWNvbmQgRERSIExBVy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDEzN2EyZGZkMTFhYzUxYWUzMTU0ZjEzZjMyMzYwOWIzM2E0YTA3MmUKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDI4IDE3OjQ2OjIzIDIwMDggKzA4MDAKCiAgICA4Nnh4OiByZW1vdmUgdGhlIHVudXNlZCBkZHJfZW5hYmxlX2VjYyBpbiB0aGUgYm9hcmQgZmlsZQoKICAgIFRoZSBERFIgY29udHJvbGxlciBvZiA4Nnh4IHByb2Nlc3NvcnMgaGF2ZSB0aGUgRUNDIGRhdGEgaW5pdAogICAgZmVhdHVyZSwgYW5kIHRoZSBuZXcgRERSIGNvZGUgaXMgdXNpbmcgdGhlIGZlYXR1cmUsIHdlIGRvbid0CiAgICBuZWVkIHRoZSB3YXkgd2l0aCBETUEgdG8gaW5pdCBtZW1vcnkgYWdhaW4uCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBLdW1hciBHYWxhIDxrdW1hci5nYWxhQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGMyYWRhZDg1YmY1ODBkNjU5MTZjOTQwNjgzZjZlOTY3MWU4YTVkZApBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMjggMTc6NDY6MTIgMjAwOCArMDgwMAoKICAgIDg2eHg6IE1vdmUgdGhlIGNsZWFyX3RsYnMgYmVmb3JlIE1NVSB0dXJuIG9uCgogICAgV2UgbXVzdCBpbnZhbGlkYXRlIFRMQnMgYmVmb3JlIE1NVSB0dXJuIG9uLCBidXQKICAgIGN1cnJlbnRseSB0aGUgY29kZSBpcyBub3QsIGlmIHRoZXJlIGFyZSBzb21lIHN0YWxlCiAgICBUTEIgZW50cnkgdmFsaWQgaW4gdGhlIFRMQnMsIGl0IHdpbGwgY2F1c2Ugc3RyYW5nZQogICAgaXNzdWUuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1Y2RhZGUwN2IxMThkMDcxNTRjYjg4MjY1MGY5Nzc4Y2VjYzhhODdjCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBPY3QgMjcgMTU6NTc6MDggMjAwOCAtMDUwMAoKICAgIG1wYzgzMTNlcmRiOiBEb2N1bWVudCBOQU5EIGJvb3QuCgogICAgUHJldmlvdXNseSwgdGhlIGRvY3VtZW50YXRpb24gY2xhaW1lZCB0aGF0IE5BTkQgYm9vdCBpcyBub3Qgc3VwcG9ydGVkLgogICAgVGhpcyBpcyBubyBsb25nZXIgdHJ1ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZDc4YmM2YjJhZWJmNTU2NmFhYzQ2NGY5MzZiODhkZmQ5N2FiMGJkCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBPY3QgMjkgMTQ6MjA6MjYgMjAwOCAtMDUwMAoKICAgIE5BTkQ6IFByb3Blcmx5IGNyZWF0ZSBKRkZTMiBjbGVhbm1hcmtlcnMuCgogICAgQXMgcmVwb3J0ZWQgYnkgSWxrbyBJbGlldiA8aWxpZXZAcm9uZXRpeC5hdD4sIHRoZSAibmFuZCBlcmFzZSBjbGVhbiIKICAgIGNvbW1hbmQgaXMgY3VycmVudGx5IGJyb2tlbiwgYW5kIGFtb25nIG90aGVyIHRoaW5ncyBjYXVzZXMgYWxsIGJsb2NrcwogICAgdG8gYmUgbWFya2VkIGJhZC4KCiAgICBUaGlzIGltcGxlbWVudHMgaXQgcHJvcGVybHkgdXNpbmcgTVREX09PQl9BVVRPLCBhbG9uZyB3aXRoIHNvbWUKICAgIGluZGVudGF0aW9uIGZpeGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY3ZmU1N2MwOTg2NmI0NDY5MmQxOGM4Y2YyMjgyOGJkMTM3ZWM1OGQKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE9jdCAyOSAxMzo0Mjo0MSAyMDA4IC0wNTAwCgogICAgTkFORCBmc2wgZWxiYzogU2V0IEZNUltFQ0NNXSBiYXNlZCBvbiBwYWdlIHNpemUuCgogICAgSGFyZHdhcmUgZXhwZWN0cyBFQ0NNIDAgZm9yIHNtYWxsIHBhZ2UgYW5kIEVDQ00gMSBmb3IgbGFyZ2UgcGFnZQogICAgd2hlbiBib290aW5nIGZyb20gTkFORCwgc28gdXNlIHRob3NlIGRlZmF1bHRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGMwMTNiNzQ5NzVkYWIwODA1ZWY2ZDM2OWIwMTMyMzBjNGU4YTY2MGQKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgT2N0IDI5IDEzOjMyOjU5IDIwMDggLTA0MDAKCiAgICBOQU5EOiBBZGQgc3VwcG9ydCBmb3IgTVBDODU3MkRTIGJvYXJkCgogICAgVGhpcyBwYXRjaCBkZWZpbmVzIDFNIFRMQiZMQVcgc2l6ZSBmb3IgTkFORCBvbiBNUEM4NTcyRFMsIGFzc2lnbnMKICAgIDB4ZmZhMDAwMDAgZm9yIENPTkZJR19TWVNfTkFORF9CQVNFIGFuZCBhZGRzIG90aGVyIE5BTkQgc3VwcG9ydHMgaW4KICAgIGNvbmZpZyBmaWxlLgoKICAgIEl0IGFsc28gbW92ZXMgZW52aXJvbm1lbnQoQ09ORklHX0VOVl9BRERSKSBvdXRzaWRlIG9mIHUtYm9vdCBpbWFnZSwgdG8KICAgIG1ha2Ugcm9vbSBmb3IgdGhlIGluY3JlYXNlZCBjb2RlIHNpemUgd2l0aCBOQU5EIGVuYWJsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZTE5MGIwM2FhZjIzMDliZDJlMDI1ZDExODdhMmNhODgwZmVkYzk1CkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE9jdCAyOSAxMTowNTo1NSAyMDA4IC0wNDAwCgogICAgTWFrZSBGcmVlc2NhbGUgbG9jYWwgYnVzIHJlZ2lzdGVycyBhdmFpbGFibGUgZm9yIGJvdGggODN4eCBhbmQgODV4eC4KCiAgICAtIFJlbmFtZSBsYnVzODN4eF90IHRvIGZzbF9sYnVzX3QgYW5kIG1vdmUgaXQgdG8gYXNtL2ZzbF9sYmMuaCBzbyB0aGF0IGl0CiAgICAgIGNhbiBiZSBzaGFyZWQgYnkgYm90aCA4M3h4IGFuZCA4NXh4CiAgICAtIFJlbW92ZSBsYnVzODN4eF90IGFuZCByZXBsYWNlIGl0IHdpdGggZnNsX2xidXNfdCBpbiBhbGwgODN4eCBib2FyZHMKICAgICAgZmlsZXMgd2hpY2ggdXNlIGxidXM4M3h4X3QuCiAgICAtIE1vdmUgRk1SLCBGSVIsIEZDUiwgRlBBUiwgTFRFU1IgZnJvbSBtcGM4M3h4LmggdG8gYXNtL2ZzbF9sYmMuaCBzbyB0aGF0CiAgICAgIDg1eHggY2FuIHNoYXJlIHRoZW0uCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2OTVjMTMwZTRiZjc1YjQ0NDcyMGRkZmQ4M2FjYTg4ZjQxYzA0NmNmCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBPY3QgMjcgMTU6Mzg6MzAgMjAwOCAtMDUwMAoKICAgIE5BTkQ6IEFsaWduIHJpZ2h0IGNvbHVtbiBvZiB0aGUgc2hvcnRoZWxwIHdpdGggb3RoZXIgY29tbWFuZHMuCgogICAgSSBhY2NpZGVudGFsbHkgYnJva2UgdGhpcyBpbiB3aGVuIG1ha2luZyBjb25zaXN0ZW50IHRoZSBwYXJ0aWFsCiAgICBhbGlnbm1lbnQgb2YgdGhlIGxvbmdoZWxwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDMzZWZkZTVlY2FjOTFhYjExOGZmMDBiOTVhMTgxZmQ2ZDc1Zjg2NDUKQXV0aG9yOiBLYXJsIEJlbGRhbiA8a2FybC5iZWxkYW5AZ21haWwuY29tPgpEYXRlOglNb24gU2VwIDE1IDE2OjA4OjAzIDIwMDggKzAyMDAKCiAgICBOQU5EOiBSZXNldCBjaGlwIG9uIHBvd2VyLXVwCgogICAgU29tZSBjaGlwcyByZXF1aXJlIGEgUkVTRVQgYWZ0ZXIgcG93ZXItdXAgKGUuZy4gTWljcm9uIE1UMjlGeEd4eHh4eCkuCiAgICBUaGUgZmlyc3QgY29tbWFuZCBzZW50IGlzIE5BTkRfQ01EX1JFQURJRC4KICAgIElzc3VlIGEgTkFORF9DTURfUkVTRVQgaW4gbmFuZF9zY2FuX2lkZW50IGJlZm9yZSByZWFkaW5nIHRoZSBkZXZpY2UgaWQuCiAgICBUZXN0ZWQgd2l0aCBhbiBNVDI5RjRHMDhBQUMuCgogICAgU2lnbmVkLW9mZi1ieTogS2FybCBCZWxkYW4gPGthcmwuYmVsZGFuQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM0NTkxMmQ4YWJjNTJkZTc5NmI5MDU5YTU4ZmFmN2M0MTY2ZWFiNTgKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAyNCAxNjoyMDo0MyAyMDA4IC0wNTAwCgogICAgTkFORDogc3luYyB3aXRoIDIuNi4yNwoKICAgIFRoaXMgYnJpbmdzIHRoZSBjb3JlIE5BTkQgY29kZSB1cCB0byBkYXRlIHdpdGggdGhlIExpbnV4IGtlcm5lbC4KCiAgICBTaW5jZSB0aGVyZSB3ZXJlIHNldmVyYWwgZHJpdmVycyBpbiBMaW51eCBhcyBvZiB0aGUgbGFzdCB1cGRhdGUgdGhhdCBhcmUKICAgIG5vdCBpbiB1LWJvb3QsIEknbSBub3QgYnJpbmdpbmcgb3ZlciBuZXcgZHJpdmVycyB0aGF0IGhhdmUgYmVlbiBhZGRlZAogICAgc2luY2UgaW4gdGhlIGFic2VuY2Ugb2YgYW4gaW50ZXJlc3RlZCBwYXJ0eS4KCiAgICBJIGRpZCBub3QgdXBkYXRlIE9uZU5BTkQgc2luY2UgaXQgd2FzIHJlY2VudGx5IHN5bmNlZCBieSBLeXVuZ21pbiBQYXJrLAogICAgYW5kIEknbSBub3Qgc3VyZSBleGFjdGx5IHdoYXQgdGhlIGNvbW1vbiBhbmNlc3RvciBpcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiMWQwZGIxODA1YzMzOTUxNDk3NzdlNTA3YjZkYTUzNDEwYWJhYzRlCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIE9jdCAyMSAxNzoyNTo0NyAyMDA4IC0wNTAwCgogICAgYm9vdG06IEFkZGVkIENPTkZJR19CT09UTV97TElOVVgsIE5FVEJTRCwgUlRFTVN9CgogICAgQWRkZWQgdGhlIGFiaWxpdHkgdG8gY29uZmlnIG91dCBib290bSBzdXBwb3J0IGZvciBMaW51eCwgTmV0QlNELCBSVEVNUwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNWE5ODEyN2Q4MWE2ZWVmYzVhNzhhNzA0ZGY2MTliZmUzNjJlZWI4NwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBPY3QgMjEgMTc6MjU6NDYgMjAwOCAtMDUwMAoKICAgIGJvb3RtOiBzdXBwb3J0IHN1YmNvbW1hbmRzIGluIGxpbnV4IHBwYyBib290bQoKICAgIEFkZCBzdXBwb3J0IGZvciAnYmR0JywgJ2NtZGxpbmUnLCAncHJlcCcgdG8gdGhlIGxpbnV4IFBQQyBib290bS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDQ5YzNhODYxZDExNzM1ODM4ZjFmMWIxMTk5OWNlNDMzMDA2ZGM5MTkKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgT2N0IDIxIDE3OjI1OjQ1IDIwMDggLTA1MDAKCiAgICBib290bTogQWRkIHN1YmNvbW1hbmRzCgogICAgQWRkIHRoZSBhYmlsaXR5IHRvIGJyZWFrIHRoZSBzdGVwcyBvZiB0aGUgYm9vdG0gY29tbWFuZCBpbnRvIHNldmVyYWwKICAgIHN1YmNvbW1hbmRzOiBzdGFydCwgbG9hZG9zLCByYW1kaXNrLCBmZHQsIGJkdCwgY21kbGluZSwgcHJlcCwgZ28uCgogICAgVGhpcyBhbGxvd3MgdXMgdG8gZG8gdGhpbmdzIGxpa2UgbWFuaXB1bGF0ZSBkZXZpY2UgdHJlZXMgYmVmb3JlCiAgICB0aGV5IGFyZSBwYXNzZWQgdG8gYSBib290aW5nIGtlcm5lbCBvciBzZXR1cCBtZW1vcnkgZm9yIGEgc2Vjb25kYXJ5CiAgICBjb3JlIGluIG11bHRpY29yZSBzaXR1YXRpb25zLgoKICAgIE5vdCBhbGwgT1MgdHlwZXMgc3VwcG9ydCBhbGwgc3ViY29tbWFuZHMgKGN1cnJlbnRseSBvbmx5IHN0YXJ0LCBsb2Fkb3MsCiAgICByYW1kaXNrLCBmZHQsIGFuZCBnbyBhcmUgc3VwcG9ydGVkKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGJlMDgzMTU5MzM1MzdmMDYxYmMxY2U2MWYzM2EyOWM1NjQ1OGJiYWQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgT2N0IDIxIDE3OjI1OjQ0IDIwMDggLTA1MDAKCiAgICBib290bTogTW92ZSB0byB1c2luZyBhIGZ1bmN0aW9uIHBvaW50ZXIgdGFibGUgZm9yIHRoZSBib290IG9zIGZ1bmN0aW9uCgogICAgVGhpcyByZW1vdmVzIGEgYml0IG9mIGNvZGUgYW5kIG1ha2VzIGl0IGVhc2llciBmb3IgdGhlIHVwY29taW5nIHN1YiBib290bQogICAgY29tbWFuZCBzdXBwb3J0IHRvIGNhbGwgaW50byB0aGUgcHJvcGVyIE9TIHNwZWNpZmljIGhhbmRsZXIuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYTM2OWY0YTQ5MmZhMjgwNWQ4Nzc3NWQyNzM4MGYwZWVhY2EzNWFhNgpBdXRob3I6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzc0BnbWFpbC5jb20+CkRhdGU6CU1vbiBTZXAgMjkgMjM6MDM6MTQgMjAwOCArMTAwMAoKICAgIGkzODY6IFJlbmFtZWQgc2hvd19ib290X3Byb2dyZXNzIGluIGFzc2VtYmxlciBjb2RlCgogICAgUmVuYW1lZCBzaG93X2Jvb3RfcHJvZ3Jlc3MgaW4gYXNzZW1ibGVyIGluaXQgcGhhc2UgdG8KICAgIHNob3dfYm9vdF9wcm9ncmVzc19hc20gdG8gYXZvaWQgbGluayBjb25mbGljdHMgd2l0aCBDIHZlcnNpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFlbWUgUnVzcyA8Z3JhZW1lLnJ1c3NAZ21haWwuY29tPgoKY29tbWl0IDQ0NDJmNDViMGUxY2JhZDM1YWEyMmQ0Y2FkMjJiOTBhNTdlM2YzMmQKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglNb24gT2N0IDI3IDE2OjQyOjAwIDIwMDggLTA1MDAKCiAgICA4NXh4OiBVcGRhdGUgTVBDODV4eF9QT1JERVZTUl9JT19TRUwgbWFzawoKICAgIFRoZSBNUEM4NTcyIGhhcyBhIDQtYml0IHdpZGUgUE9SREVWU1IgSU9fU0VMIGZpZWxkLiBPdGhlciBNUEM4NXh4CiAgICBwcm9jZXNzb3JzIGhhdmUgYSAzLWJpdCB3aWRlIElPX1NFTCBmaWVsZCBidXQgaGF2ZSB0aGUgbW9zdAogICAgc2lnbmlmaWNhbnQgYml0IGlzIHdpcmVkIHRvIDAgc28gdGhpcyBjaGFuZ2Ugc2hvdWxkIG5vdCBhZmZlY3QKICAgIHRoZW0uCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCBjZDQyNTE2MjQyMDVjYjk3MTA0ZjZlMzI2NzlkYzc3NTQ5MzRmNzExCkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBPY3QgMjcgMTY6MDk6NDIgMjAwOCAtMDUwMAoKICAgIHBvd2VycGM6IGZpeCBwY2kgd2luZG93IGluaXRpYWxpemF0aW9uIHRvIHdvcmsgd2l0aCA+IDRHQiBEUkFNCgogICAgVGhlIGV4aXN0aW5nIGNvZGUgaGFzIGEgZmV3IGVycm9ycyB0aGF0IG5lZWQgdG8gYmUgZml4ZWQgaW4KICAgIG9yZGVyIHRvIHN1cHBvcnQgbGFyZ2UgUkFNIHNpemVzLiAgRml4IHRob3NlLCBhbmQgYWRkIGEKICAgIGNvbW1lbnQgdG8gbWFrZSBpdCBjbGVhcmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMjE5NTQyYTFhNjZjYTAxN2IxMjg2MDkyMDcxNGE5ODU5YjE4YTVkNwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBPY3QgMjcgMTM6MTY6MjAgMjAwOCAtMDUwMAoKICAgIHBjaS9mc2xfcGNpX2luaXQ6IFJlbW92ZWQgYSBidW5jaCBwb2ludGxlc3MgdHJhaWxpbmcgYmFja3NsYXNoZXMuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA2YjU5ZTAzZTAyMzdhNDBhMjMwNWVhMzg1ZGVmZGZkOTIwMDA5NzhiCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglNb24gU2VwIDEgMTY6MjE6MjIgMjAwOCArMDIwMAoKICAgIGxjZDogTGV0IHRoZSBib2FyZCBjb2RlIHNob3cgYm9hcmQtc3BlY2lmaWMgaW5mbwoKICAgIFRoZSBpbmZvcm1hdGlvbiBkaXNwbGF5ZWQgd2hlbiBDT05GSUdfTENEX0lORk8gaXMgc2V0IGlzIGluaGVyZW50bHkKICAgIGJvYXJkLXNwZWNpZmljLCBzbyBpdCBzaG91bGQgYmUgZG9uZSBieSB0aGUgYm9hcmQgY29kZS4gVGhlIGN1cnJlbnQgY29kZQogICAgZGVhbGluZyB3aXRoIHRoaXMgb25seSBoYW5kbGVzIHR3byBjYXNlcywgYW5kIGlzIGFscmVhZHkgYSBob3JyaWJsZSBtZXNzCiAgICBvZiAjaWZkZWZmZXJ5LgoKICAgIFllcywgdGhpcyBkdXBsaWNhdGVzIHNvbWUgY29kZSwgYnV0IGl0IGFsc28gYWxsb3dzIGJvYXJkcyB0byBwcmludCBtb3JlCiAgICBib2FyZC1zcGVjaWZpYyBpbmZvcm1hdGlvbjsgdGhpcyB1c2VkIHRvIGJlIHZlcnkgZGlmZmljdWx0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCA2ZjkzZDJiOGZjYTUwNDIwMGE1NzU4ZjdjNmRkMmQ2ODUyOTAwNzY1CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglNb24gU2VwIDEgMTY6MjE6MjEgMjAwOCArMDIwMAoKICAgIGxjZDogU2V0IGxjZF9pc19lbmFibGVkIGJlZm9yZSBjbGVhcmluZyB0aGUgc2NyZWVuCgogICAgVGhpcyBhbGxvd3MgdGhlIGxvZ28vaW5mbyByZW5kZXJpbmcgcm91dGluZXMgdG8gdXNlIHRoZSByZWd1bGFyCiAgICBsY2RfcHV0Yy9sY2RfcHV0cy9sY2RfcHJpbnRmIGNhbGxzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCAxNWIxN2FiNTJiN2MxNWQ0NmQ5ZmM2MzFjYzA2MDkyZTFlNzY0ZGUyCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglNb24gU2VwIDEgMTY6MjE6MjAgMjAwOCArMDIwMAoKICAgIGxjZDogSW1wbGVtZW50IGxjZF9wcmludGYoKQoKICAgIGxjZF9wcmludGYoKSBoYXMgYSBwcm90b3R5cGUgaW4gaW5jbHVkZS9sY2QuaCBidXQgbm8gaW1wbGVtZW50YXRpb24uIEZpeAogICAgdGhpcyBieSBib3Jyb3dpbmcgdGhlIGxjZF9wcmludGYoKSBpbXBsZW1lbnRhdGlvbiBmcm9tIHRoZSBjb2dlbnQgYm9hcmQKICAgIGNvZGUgKHdoaWNoIGFwcGVhcnMgdG8gdXNlIGl0cyBvd24gTENEIGZyYW1ld29yay4pCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IDcwZGJjNTRjMGE1Yzc5OGJjZjgyYWUyYTFlMjI3NDA0ZjQxMmU4OTIKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CU1vbiBTZXAgMSAxNjoyMToxOSAyMDA4ICswMjAwCgogICAgYXRtZWxfbGNkZmI6IFN0cmFpZ2h0ZW4gb3V0IGZ1bmt5IHZsX3N5bmMgbG9naWMKCiAgICBJZiB0aGUgYm9hcmQgX2RpZG4ndF8gcmVxdWVzdCBJTlZMSU5FX0lOVkVSVEVELCB3ZSBzZXQgSU5WTElORV9JTlZFUlRFRCwKICAgIG90aGVyd2lzZSB3ZSBkb24ndC4gV1RGPwoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCAyM2JiMjhmMGY3NmI0NmM0YjU3MzM3NGIwYmIzYjNmMjNkODVlZjU1CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglNb24gU2VwIDEgMTY6MjE6MTggMjAwOCArMDIwMAoKICAgIGF0bWVsX2xjZGZiOiBFbGltaW5hdGUgdW5uZWVkZWQgI2luY2x1ZGUgPGFzbS9hcmNoL2hhcmR3YXJlLmg+CgogICAgYXRtZWxfbGNkZmIgZG9lc24ndCBhY3R1YWxseSBuZWVkIGFueXRoaW5nIGZyb20gYXNtL2FyY2gvaGFyZHdhcmUuaC4gSXQKICAgIGluY2x1ZGVzIGEgZmlsZSB0aGF0IGRvZXMsIGFzbS9hcmNoL2dwaW8uaCwgYnV0IHRoaXMgZmlsZSBkb2Vzbid0CiAgICBpbmNsdWRlIDxhc20vYXJjaC9oYXJkd2FyZS5oPiBsaWtlIGl0J3Mgc3VwcG9zZWQgdG8uCgogICAgQWRkIHRoZSBtaXNzaW5nIGluY2x1ZGUgdG8gYXNtL2FyY2gvZ3Bpby5oIGFuZCByZW1vdmUgdGhlIHdvcmthcm91bmQKICAgIGZyb20gdGhlIGF0bWVsX2xjZGZiIGRyaXZlci4gVGhpcyBtYWtlcyB0aGUgZHJpdmVyIGNvbXBpbGUgb24gYXZyMzIuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IGMyMDgzZTBlMTFhMDNlZjhiZTJlOWYwZWQ4NzIwZmRjMjA4MzJmM2UKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgT2N0IDIyIDE0OjM4OjU1IDIwMDggLTA1MDAKCiAgICA4Nnh4OiBDb252ZXJ0IGFsbCBmc2xfcGNpX2luaXQgdXNlcnMgdG8gbmV3IEFQSXMKCiAgICBDb252ZXJ0ZWQgTVBDODYxMEhDUEQsIE1QQzg2NDFIUENOLCBhbmQgU0JDODY0MUQgdG8gdXNlCiAgICBmc2xfcGNpX3NldHVwX2luYm91bmRfd2luZG93cygpIGFuZCBmdF9mc2xfcGNpX3NldHVwKCkuCgogICAgV2l0aCB0aGVzZSBjaGFuZ2VzIHRoZSBib2FyZCBjb2RlIGlzIGEgYml0IHNtYWxsZXIgYW5kIHdlIGdldCBkbWEtcmFuZ2VzCiAgICBzZXQgaW4gdGhlIGRldmljZSB0cmVlIGZvciB0aGVzZSBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJldyBGbGVtaW5nLUFGTEVNSU5HIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmRiYTBkZWE5OGMwZGVlMTc5OWZmZDZmZDZlYjU0MTY0NWRiYmQ5OApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBPY3QgMjEgMDg6Mjg6MzMgMjAwOCAtMDUwMAoKICAgIDg1eHg6IENvbnZlcnQgYWxsIGZzbF9wY2lfaW5pdCB1c2VycyB0byBuZXcgQVBJcwoKICAgIENvbnZlcnRlZCBBVFVNODU0OCwgTVBDODUzNkRTLCBNUEM4NTQ0RFMsIE1QQzg1NDhDRFMsIE1QQzg1NjhNRFMsCiAgICBNUEM4NTcyRFMsIFRRTTg1eHgsIGFuZCBTQkM4NTQ4IHRvIHVzZSBmc2xfcGNpX3NldHVwX2luYm91bmRfd2luZG93cygpCiAgICBhbmQgZnRfZnNsX3BjaV9zZXR1cCgpLgoKICAgIFdpdGggdGhlc2UgY2hhbmdlcyB0aGUgYm9hcmQgY29kZSBpcyBhIGJpdCBzbWFsbGVyIGFuZCB3ZSBnZXQgZG1hLXJhbmdlcwogICAgc2V0IGluIHRoZSBkZXZpY2UgdHJlZSBmb3IgdGhlc2UgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgRmxlbWluZy1BRkxFTUlORyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhMmFhYjQ2MDcyN2U1ZjY3NDM1M2E4M2E4MTAwMGVmNzk0YmZmY2FlCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE9jdCAyMyAwMDowMTowNiAyMDA4IC0wNTAwCgogICAgcGNpL2ZzbF9wY2lfaW5pdDogQWRkZWQgZmR0IGhlbHBlciBmb3Igc2V0dGluZyB1cCBidXMtcmFuZ2VzICYgZG1hLXJhbmdlcwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgRmxlbWluZy1BRkxFTUlORyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiOWExZmE5Nzg3YTNhNzk1NzNmNWY5MzJhNGY4YWEyMTZiY2IxNzg1CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIE9jdCAyMiAxNDowNjoyNCAyMDA4IC0wNTAwCgogICAgcGNpL2ZzbF9wY2lfaW5pdDogQWRkIGEgY29tbW9uIFBDSSBpbmJvdW5kIHNldHVwIGZ1bmN0aW9uCgogICAgQWRkIGEgY29tbW9uIHNldHVwIGZ1bmN0aW9uIHRoYXQgZGV0ZXJtaW5lcyB0aGUgcGNpX3JlZ2lvbihzKSBiYXNlZAogICAgb24gaG93IG11Y2ggbWVtb3J5IHdlIGhhdmUgaW4gdGhlIHN5c3RlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmV3IEZsZW1pbmctQUZMRU1JTkcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjEyZWEwMTAxOGE0NTkyMzRkNTRlZDU3ZWM2YTVhMjQ0Y2U3NTY3OApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBPY3QgMjEgMTA6MTM6MTQgMjAwOCAtMDUwMAoKICAgIHBjaS9mc2xfcGNpX2luaXQ6IEVuYWJsZSBsYXJnZXIgYWRkcmVzcyBhbmQgc2V0dGluZyBpbmJvdW5kIHdpbmRvd3MgcHJvcGVybHkKCiAgICAqIFBDSSBJbmJvdW5kIHdpbmRvdyB3YXMgc2V0dXAgaW5jb3JyZWN0bHkuICBUaGUgUENJIGFkZHJlc3MgYW5kIHN5c3RlbQogICAgICBhZGRyZXNzIHdlcmUgc3dhcHBlZC4gIFRoZSBQQ0kgYWRkcmVzcyBzaG91bGQgYmUgc2V0dGluZyBwaXdhci9waXdiZWFyCiAgICAgIGFuZCB0aGUgc3lzdGVtIGFkZHJlc3Mgc2hvdWxkIGJlIHNldHRpbmcgcGl0YXIuCgogICAgKiBSZW1vdmVkIG1hc2tpbmcgb2YgYWRkcmVzc2VzIHRvIGFsbG93IGZvciBzeXN0ZW0gYWRkcmVzcyB0byBzdXBwb3J0CiAgICAgIHN5c3RlbSBhZGRyZXNzICYgUENJIGFkZHJlc3MgPjMyLWJpdHMKCiAgICAqIFNldCBQSVdCRUFSICYgUE9URUFSIHRvIGFsbG93IGZvciBmdWxsIDY0LWJpdCBQQ0kgYWRkcmVzc2VzCgogICAgKiBSZXNwZWN0IHRoZSBQQ0lfUkVHSU9OX1BSRUZFVENIIGZvciBpbmJvdW5kIHdpbmRvd3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmV3IEZsZW1pbmctQUZMRU1JTkcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGFiNDUxYzQ2Yjg0NmYyYmJkNzEyMmIyOWZmZGQ5YTRhMDRkYTIyOApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBPY3QgMjIgMjM6MzM6NTYgMjAwOCAtMDUwMAoKICAgIGZkdDogQWRkZWQgaGVscGVyIHRvIHNldCBQQ0kgZG1hLXJhbmdlcyBwcm9wZXJ0eQoKICAgIEFkZGVkIGZkdF9wY2lfZG1hX3JhbmdlcygpIHRoYXQgcGFyc2VzIHRoZSBwY2lfcmVnaW9uIGluZm8gZnJvbSB0aGUKICAgIHN0cnVjdCBwY2lfY29udHJvbGxlciBhbmQgcG9wdWxhdGVzIHRoZSBkbWEtcmFuZ2VzIGJhc2VkIG9uIGl0LgoKICAgIFRoZSBtYXggIyBvZiB3aW5kd3MvZG1hLXJhbmdlcyB3ZSBzdXBwb3J0IGlzIDMgc2luY2Ugb24gZW1iZWRkZWQKICAgIFBvd2VyUEMgYmFzZWQgc3lzdGVtcyB0aGlzIGlzIHRoZSBtYXggbnVtYmVyIG9mIHdpbmRvd3MuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJldyBGbGVtaW5nLUFGTEVNSU5HIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNiZWQyYWFmMmQ1MGZkMTMyNzNjMTRkMTdkNGZkNDBlZjQyZTBkMGYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgT2N0IDIzIDAwOjA1OjQ3IDIwMDggLTA1MDAKCiAgICBmZHQ6IEFkZCBmZHRfZ2V0cHJvcF91MzJfZGVmYXVsdCBoZWxwZXJzCgogICAgQWRkIGhlbHBlciBmdW5jdGlvbnMgdG8gcmV0dXJuIGZpbmQgYSBub2RlIGFuZCByZXR1cm4gaXQncyBwcm9wZXJ0eQogICAgb3IgYSBkZWZhdWx0IHZhbHVlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgRmxlbWluZy1BRkxFTUlORyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDhiYTkzZjY4YTFiYWU4OWUwMzM1MjdjZTY3YjQxYjRhODdhYTViN2YKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgT2N0IDIxIDE4OjA2OjE1IDIwMDggLTA1MDAKCiAgICA4Nnh4OiBFbmFibGUgNjQtYml0IFBDSSByZXNvdXJjZXMgb24gYWxsIEZyZWVzY2FsZSBib2FyZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmV3IEZsZW1pbmctQUZMRU1JTkcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDE1MWNiYWNjZjQ1MDQ4MjFlY2ZkZTAyMTcyOTliZDc0MDA4NmJiNgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBPY3QgMjEgMTE6MzM6NTggMjAwOCAtMDUwMAoKICAgIDg1eHg6IEVuYWJsZSA2NC1iaXQgUENJIHJlc291cmNlcyBvbiBhbGwgRnJlZXNjYWxlIGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgRmxlbWluZy1BRkxFTUlORyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzMGU3NmQ1ZTNiYzRjNTIwOGVlNjM1ODVmZTEyYjQwOWQ5MzA4Y2Q4CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIE9jdCAyMSAwODozNjowOCAyMDA4IC0wNTAwCgogICAgcGNpOiBBbGxvdyBmb3IgUENJIGFkZHJlc3NlcyB0byBiZSA2NC1iaXQKCiAgICBQQ0kgYnVzIGlzIGluaGVyZW50bHkgNjQtYml0LiAgV2hpbGUgbm90IGFsbCBzeXN0ZW0gcmVxdWlyZSBhY2Nlc3MgdG8KICAgIHRoZSBmdWxsIDY0LWJpdCBQQ0kgYWRkcmVzcyByYW5nZSBzb21lIGRvLglUaGlzIGFsbG93cyB0aG9zZSBzeXN0ZW1zCiAgICB0byBlbmFibGUgdGhlIGZ1bGwgUENJIGFkZHJlc3Mgd2lkdGggdmlhIENPTkZJR19TWVNfUENJXzY0QklULgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgRmxlbWluZy1BRkxFTUlORyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGFlNWY5NDNiYThlZGU0NDhhNGIxYTE0NWZkODkxMTg1NjcwMWVjYzUKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDIzIDIxOjE4OjUzIDIwMDggKzA4MDAKCiAgICA4NXh4OiBGaXggdGhlIGluY29ycmVjdCByZWdpc3RlciB1c2VkIGZvciBERFIgZXJyYXR1bTEKCiAgICBUaGUgODU3MiBERFIgZXJyYXR1bTE6CiAgICBERFIgY29udHJvbGxlciBtYXkgZW50ZXIgYW4gaWxsZWdhbCBzdGF0ZSB3aGVuIG9wZXJhdGluZwogICAgaW4gMzItYml0IGJ1cyBtb2RlIHdpdGggNC1iZWF0IGJ1cnN0cy4KCiAgICBEZXNjcmlwdGlvbjoKICAgIFdoZW4gb3BlcmF0aW5nIHdpdGggYSAzMi1iaXQgYnVzLCBpdCBpcyByZWNvbW1lbmRlZCB0aGF0CiAgICBERFJfU0RSQU1fQ0ZHWzhfQkVdIGlzIGNsZWFyZWQgd2hlbiBERFIyIG1lbW9yaWVzIGFyZSB1c2VkLgogICAgVGhpcyBmb3JjZXMgdGhlIEREUiBjb250cm9sbGVyIHRvIHVzZSA0LWJlYXQgYnVyc3RzIHdoZW4KICAgIGNvbW11bmljYXRpbmcgdG8gdGhlIERSQU1zLiBIb3dldmVyLCBhbiBpc3N1ZSBleGlzdHMgdGhhdAogICAgY291bGQgbGVhZCB0byBkYXRhIGNvcnJ1cHRpb24gd2hlbiB0aGUgRERSIGNvbnRyb2xsZXIgaXMKICAgIGluIDMyLWJpdCBidXMgbW9kZSB3aGlsZSB1c2luZyA0LWJlYXQgYnVyc3RzLgoKICAgIFByb2plY3RlZCBJbXBhY3Q6CiAgICBJZiB0aGUgRERSIGNvbnRyb2xsZXIgaXMgb3BlcmF0aW5nIGluIDMyLWJpdCBidXMgbW9kZSB3aXRoCiAgICA0LWJlYXQgYnVyc3RzLCB0aGVuIHRoZSBjb250cm9sbGVyIG1heSBlbnRlciBpbnRvIGEgYmFkIHN0YXRlLgogICAgQWxsIHN1YnNlcXVlbnQgcmVhZHMgZnJvbSBtZW1vcnkgaXMgY29ycnVwdGVkLgogICAgRm91ci1iZWF0IGJ1cnN0cyB3aXRoIGEgMzItYml0IGJ1cyBvbmx5IGlzIHVzZWQgd2l0aCBERFIyIG1lbW9yaWVzLgogICAgVGhlcmVmb3JlLCB0aGlzIGVycmF0dW0gZG9lcyBub3QgYWZmZWN0IEREUjMgbW9kZS4KCiAgICBXb3JrIEFyb3VuZHM6CiAgICBUbyB3b3JrIGFyb3VuZCB0aGlzIGlzc3VlLCBzb2Z0d2FyZSBtdXN0IHNldCBERUJVR18xWzMxXSBpbgogICAgRERSIG1lbW9yeSBtYXBwZWQgc3BhY2UgKENDU1JCQVIgb2Zmc2V0ICsgMHgyZjAwIGZvciBERFJfMQogICAgYW5kIENDU1JCQVIgb2Zmc2V0ICsgMHg2ZjAwIGZvciBERFJfMikuCgogICAgQ3VycmVubHR5LCB0aGUgY29kZSBpcyB1c2luZyBpbmNvcnJlY3QgcmVnaXN0ZXIgRERSX1NEUkFNX0NGR18yCiAgICBhcyBjb25kaXRpb24sIGJ1dCBpdCBzaG91bGQgYmUgRERSX1NEUkFNX0NGRyByZWdpc3Rlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ1YjY5MzA5MGVkMDhkMjRjMTg0OTFkZjlkOGZjNzM4N2IyOTA2ZjMKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDIzIDIxOjE3OjE5IDIwMDggKzA4MDAKCiAgICA4NXh4OiByZW1vdmUgdW51c2VkIGNvbmZpZyBkZWZpbml0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZjA2MGMzYmY4MjgzMjMzMWE1MDlmMmU1ZDI0NDI1MzllN2FhZDA5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE9jdCAyMyAwMTo0NzozOCAyMDA4IC0wNTAwCgogICAgODV4eDogQWRkIGJhc2ljIGU1MDBtYyBjb3JlIHN1cHBvcnQKCiAgICBJbnRyb2R1Y2UgQ09ORklHX0U1MDBNQyB0byBkZWFsIHdpdGggdGhlIG1pbm9yIGRpZmZlcmVuY2VzIGJldHdlZW4KICAgIGU1MDB2MiBhbmQgZTUwMG1jLgoKICAgICogQ2VydGFpbiBmaWVsZHMgb2YgSElEMC8xIGRvbid0IGV4aXN0IGFueW1vcmUgb24gZTUwMG1jCiAgICAqIENhY2hlIGxpbmUgc2l6ZSBpcyA2NC1ieXRlcyBvbiBlNTAwbWMKICAgICogcmVzZXQgdmFsdWUgb2YgUElSIGlzIGRpZmZlcmVudAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYTM4YTViNmVkZDMwZjI5ZmQ1ZmRiMWQ3ZjY3NDUyMTkwNmMwZTY3NwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBPY3QgMjMgMDE6NDc6MzcgMjAwOCAtMDUwMAoKICAgIDg1eHg6IFVzZSBDT05GSUdfU1lTX0NBQ0hFTElORV9TSVpFIGluc3RlYWQgb2YgbWFnaWMgbnVtYmVyCgogICAgVXNpbmcgQ09ORklHX1NZU19DQUNIRUxJTkVfU0laRSBpbnN0ZWFkIG9mIDMxIG1lYW5zIHdlIGNhbiBoYW5kbGUKICAgIGU1MDBtYydzIDY0LWJ5dGUgY2FjaGVsaW5lIHByb3Blcmx5IHdoZW4gaXQgZ2V0cyBhZGRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDVkZWI4MDIyYzM3NDlmYWFjMzBlOWFkOTY5NDY5MWUyNDQyYjVjOTMKQXV0aG9yOiBHZW9yZyBTY2hhcmR0IDxzY2hhcmR0QHRlYW0tY3RlY2guZGU+CkRhdGU6CUZyaSBPY3QgMjQgMTM6NTE6NTIgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogTmV3IGJvYXJkIGF2bmV0IGZ4MTIgbWluaW1vZHVsCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBhdm5ldCBmeDEyIG1pbmltb2R1bC4KICAgIEl0IG5lZWRzIHRoZSAicHBjNHh4OiBHZW5lcmljIGFyY2hpdGVjdHVyZSBmb3IgeGlsaW54IHBwYzQwNSIKICAgIHBhdGNoIGZyb20gUmljYXJkby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZW9yZyBTY2hhcmR0IDxzY2hhcmR0QHRlYW0tY3RlY2guZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQHVhbS5lcz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxZjRkNTMyNjBlYzZmOGYxMjJhZWQ3NWNjZTdjNzU3ZDk3YTU1MWUwCkF1dGhvcjogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CkRhdGU6CVR1ZSBPY3QgMjEgMTg6Mjk6NDYgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogR2VuZXJpYyBhcmNoaXRlY3R1cmUgZm9yIHhpbGlueCBwcGM0MDUodjMpCgogICAgQXMgInBwYzQ0eDogVW5pZmljYXRpb24gb2YgdmlydGV4NSBwcDQ0MCBib2FyZHMiIGRpZCBmb3IgdGhlIHhpbGlueAogICAgcHBjNDQwIGJvYXJkcywgdGhpcyBwYXRjaCBwcmVzZW50cyBhIGNvbW1vbiBhcmNoaXRlY3R1cmUgZm9yIGFsbCB0aGUKICAgIHhpbGlueCBwcGM0MDUgYm9hcmRzLgoKICAgIEFueSBjdXN0b20geGlsaW54IHBwYzQwNSBib2FyZCBjYW4gYmUgYWRkZWQgdmVyeSBlYXNpbHkgd2l0aCBubyBjb2RlCiAgICBkdXBsaWNpdHkuCgogICAgVGhpcyBwYXRjaCBhbHNvIGFkZHMgYSBzaW1wbGUgZ2VuZXJpYyBib2FyZCwgdGhhdCBjYW4gYmUgdXNlZCBvbiBhbG1vc3QKICAgIGFueSBkZXNpZ24gd2l0aCB4aWxpbnggcHBjNDA1IHJlcGxhY2luZyB0aGUgZmlsZSBwcGM0MDUtZ2VuZXJpYy94cGFyYW1ldGVycy5oCgogICAgVGhpcyBwYXRjaCBpcyBwcmVwYXJlZCB0byB3b3JrIHdpdGggdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIEVESyAoMTAuMSkKCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQHVhbS5lcz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0ODVjMDBhNTdmYWI4NmY3MmEzNzY5NDgwYzY2YmYxY2EyMmUxNDU5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgT2N0IDI0IDA4OjU2OjA5IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IERpc2FibGUgRERSMiBhdXRvY2FsaWJyYXRpb24gb24gS2lsYXVlYSBmb3Igbm93CgogICAgU2luY2UgdGhlIG5ldyBhdXRvY2FsaWJyYXRpb24gc3RpbGwgaGFzIHNvbWUgcHJvYmxlbXMgb24gc29tZSBLaWxhdWVhCiAgICBib2FyZHMgd2l0aCAyMDBNSHogRERSMiBmcmVxdWVuY3kgd2UgZGlzYWJsZSB0aGUgYXV0b2NhbGlicmF0aW9uIGFuZAogICAgdXNlIHRoZSBoYXJkY29kZWQgdmFsdWVzIGFzIGRvbmUgYmVmb3JlLiBUaGlzIHNlZW1zIHRvIHdvcmsgcmVsaWFibHkKICAgIG9uIGFsbCBrbm93biBERFIyIGZyZXF1ZW5jaWVzLgoKICAgIEFmdGVyIHRoZSBhdXRvY2FsaWJyYXRpb24gaXNzdWUgaXMgZml4ZWQgd2Ugd2lsbCBlbmFibGUgaXQgYWdhaW4uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGYxNzdmNDI1MGM3Mjk3MjdiMTYyOWZhOGQ4ZDY1NTZjOTk5ZTliOGMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVdlZCBBcHIgOSAwMjowMjowNyAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGZpeCB1cCBVQVJUIHN0YXR1cyBiaXQgaGFuZGxpbmcKCiAgICBTb21lIEJsYWNrZmluIFVBUlRzIGFyZSByZWFkLXRvLWNsZWFyIHdoaWxlIG90aGVycyBhcmUgd3JpdGUtdG8tY2xlYXIuCiAgICBUaGlzIGNhbiBjYXVzZSBwcm9ibGVtcyB3aGVuIHdlIHBvbGwgdGhlIExTUiBhbmQgdGhlbiBsYXRlciB0cnkgYW5kIGhhbmRsZQogICAgYW55IGVycm9ycyBkZXRlY3RlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYWUwOTEwMjk4ZjMxZjViYjNkMzNhNjRiODQ2N2M2MGVhM2M1ZDZkMApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IE9jdCAxMSAyMDo0MjoxNyAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGJmNTYxLWV6a2l0OiBkcm9wIHJlZHVuZGFudCBjb2RlCgogICAgQ29tbW9uIEJsYWNrZmluIGNvZGUgYWxyZWFkeSBhbm5vdW5jZXMgQ1BVIGluZm9ybWF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBlMmVlYTk4YmZmMTM2OWY3N2E5ZjU5YTVmZDBiZDQ5MjhiYzMzMzJlCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgT2N0IDExIDIwOjQzOjEwIDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogYmY1NjEtZXpraXQ6IGRyb3AgcG9pbnRsZXNzIFVTQiBjb2RlCgogICAgVGhlIFVTQi9MQU4gcmVnaXN0ZXIgc2V0dGluZ3MgYXJlIG5vdCBhY3R1YWxseSB1c2VkL25lZWRlZCBpbiBvcmRlciB0bwogICAgZHJpdmUgdGhpbmdzIGZyb20gVS1Cb290LCBzbyBkcm9wIHRoZSBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBjMjNiZmY2M2ZiMDNjYjlkYmNkMjY1MjI4NDFlNTNmOWIzNGZhMWFiCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgT2N0IDExIDIwOjQ3OjU4IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogbGlua2VyIHNjcmlwdHM6IGZvcmNlIHN0YXJ0Lm8gYW5kIHNldCBpbml0Y29kZSBib3VuZGFyaWVzCgogICAgTWFrZSBzdXJlIHRoYXQgdGhlIHN0YXJ0Lm8gb2JqZWN0IGlzIGFsd2F5cyB0aGUgZmlyc3Qgb2JqZWN0IGluIG91ciBsaW5rZXIKICAgIHNjcmlwdCByZWdhcmRsZXNzIG9mIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MsIGFuZCBhZGQgc29tZSBsaW5rZXIgc3ltYm9scwogICAgc28gdGhlIGxkciB1dGlsaXR5IGNhbiBwcm9wZXJseSBsb2NhdGUgdGhlIGluaXRjb2RlIHdoZW4gZ2VuZXJhdGluZyBhIExEUi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYmQzM2U1YzYxM2NmNzBlM2NiNTFhNzNmZGQ2NTNmZTgzYjk0MmJiMApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJU2F0IE9jdCAxMSAyMToxOTozOSAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IHNtYWxsIGNwdSBpbml0IG9wdGltaXphdGlvbiB3aGlsZSBzZXR0aW5nIGludGVycnVwdCBtYXNrCgogICAgVXNlIHRoZSBzdGkgaW5zdHJ1Y3Rpb24gdG8gc2V0IHRoZSBpbml0aWFsIGludGVycnVwdCBtYXNrIHJhdGhlciB0aGFuCiAgICBiYW5naW5nIG9uIHRoZSBjb3JlIElNQVNLIE1NUiB0byBzYXZlIGJvdGggc3BhY2UgYW5kIHRpbWUuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDk2MDkyMjI5MWM5NTk0YWNiNTc1Y2VjN2U0N2Q3YmVkOWI1ODE4MmMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBPY3QgMTEgMjE6MTg6MTAgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBzZXQgaW5pdGlhbCBzdGFjayBjb3JyZWN0bHkgYWNjb3JkaW5nIHRvIEJsYWNrZmluIEFCSQoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAyNWNkMzNkODJlYTUyMWI3YmQ5MGNhODU4Zjg5MTlmYWUxZTk3MzJiCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTdW4gQXByIDIwIDAzOjExOjUzIDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogbWFrZSBiYXVkIGNhbGN1bGF0aW9uIG1vcmUgYWNjdXJhdGUKCiAgICBXZSBzaG91bGQgdXNlIHRoZSBhbGdvcml0aG0gaW4gdGhlIExpbnV4IGtlcm5lbCBzbyB0aGF0IHRoZSBVQVJUIGRpdmlzb3IKICAgIGNhbGN1bGF0aW9uIGlzIG1vcmUgYWNjdXJhdGUuICBJdCBhbHNvIGZpeGVzIHByb2JsZW1zIG9uIHNvbWUgcGlja3kgVUFSVHMKICAgIHRoYXQgaGF2ZSBzYW1wbGluZyBhbm9tYWxpZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDBiYTFkYTExNmU1ZWRjYjBjNWFlNGE3NTg1ZDczZjY1NDg0MDBhMDYKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBPY3QgNiAwNDoyMTo0MSAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGRlY29kZSBod2VycmNhdXNlL2V4Y2F1c2Ugd2hlbiBjcmFzaGluZwoKICAgIEhhdmluZyB0byBkZWNvZGUgaHdlcnJjYXVzZS9leGNhdXNlIHZhbHVlcyBpcyBhIHBhaW4sIHNvIGF1dG9tYXRlIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAyZGU5NWJiMjBjNDg4ZjIwMjk4ZGY2ODgxYjcwMGE1YTc1N2VlNzgwCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gT2N0IDYgMDQ6MjA6NTQgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBmaXggcmVnaXN0ZXIgZHVtcCBtZXNzYWdlcwoKICAgIE1ha2Ugc3VyZSB3ZSByZXBvcnQgUkVUSS9JUEVORCBjb3JyZWN0bHkuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDcxMzM5OTllNmY2MmE5YTAxZjZhOGZmZTIzNGI4NTMyYjNhZDFlNGIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBPY3QgNiAwNDoxOTozNCAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGRvbid0IGJvdGhlciBkaXNwbGF5aW5nIHJlYm9vdCBtc2cgd2hlbiBjcmFzaGluZwoKICAgIFRoZSBoYW5nIGZ1bmN0aW9uIGFscmVhZHkgdGVsbHMgeW91IHRvIHJlYm9vdCwgc28gbm8gcG9pbnQgaW4gc2hvd2luZyBpdAogICAgdHdpY2UuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDcwYzRjMDMyZWExMTJjYzQyYWExY2U5NTljMzNmYzQ4MjVlYWVmOTUKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVN1biBKdW4gMSAwMToyMzo0OCAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGVuYWJsZSBzdXBwb3J0IGZvciBuZXN0ZWQgaW50ZXJydXB0cwoKICAgIER1cmluZyBjcHUgaW5pdCwgbWFrZSBzdXJlIHdlIGluaXRpYWxpemUgdGhlIENFQyBwcm9wZXJseSBzbyB0aGF0CiAgICBpbnRlcnJ1cHRzIGNhbiBmaXJlIGFuZCBiZSBoYW5kbGVkIHdoaWxlIFUtQm9vdCBpcyBydW5uaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAzOTc4MjcyN2UxODU4NjBmYWE0ODg0YzJiMDRlODRjYjMzZDFjNmNmCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gT2N0IDYgMDM6NTU6MjUgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBpbml0IE5BTkQgYmVmb3JlIHJlbG9jYXRpbmcgZW52CgogICAgSWYgYm9vdGluZyBvdXQgb2YgTkFORCwgd2UgbmVlZCB0byBtYWtlIHN1cmUgd2UgaW5pdGlhbGl6ZSBpdCBwcm9wZXJseQogICAgYmVmb3JlIGF0dGVtcHRpbmcgdG8gcmVsb2NhdGUgdGhlIGVudmlyb25tZW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAwZjlhODgxOTQxNmJhNDBhNTNkZTUwYWYxNDg4NDdhMGU1MDhmODRkCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUaHUgQXVnIDcgMTg6NDA6MTMgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBjaGVjayBjYWNoZSBiaXRzLCBub3QgY3BsYiBiaXRzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDJjMWVhOWUzNzBjYjcyZGQ2YTVhYTMyMzM4ZTg3YThhMWY3N2JkNzYKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVRodSBBdWcgNyAxNzo1Mjo1OSAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGRyb3AgdW51c2VkIGNhY2hlIGZsdXNoIGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNTBmMGQyMTE5MTJhNjQ4ZTMxYWE5MTIzYjQ2NjVhMDQ0NGJiOGNhOQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IEF1ZyA3IDE1OjIxOjQ3IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogdW5pZnkgY2FjaGUgaGFuZGxpbmcgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAzYzg3OTg5ODM0MDNjYjY4YTgyN2Q3YTBkMDliMTEzNDUyNGExYjdkCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gT2N0IDYgMDM6Mzk6MDcgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBvbmx5IGluaXRpYWxpemUgdGhlIFJUQyB3aGVuIGFjdHVhbGx5IHVzZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNjIxZTU3OWI4MTJkZDFhMmU2Nzc3ZjdjYmY2ZTU1ZTczNjUwNTgyMwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIE9jdCA2IDAzOjQ0OjMzIDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogZml4IFNXUlNUIHJlZ2lzdGVyIGRlZmluaXRpb24KCiAgICBUaGUgU1dSU1QgcmVnaXN0ZXIgaXMgYSAxNmJpdCwgbm90IDMyYml0LCByZWdpc3Rlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMDYxMjFjNGUyZDE4Mzg4N2RjZDdhNGNhMmRjZDM5NWIyMTNlYTE1YgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IEF1ZyA3IDE4OjU0OjU3IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogYnVpbGQgd2l0aCAtZm9taXQtZnJhbWUtcG9pbnRlcgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBhZGJmZWViN2IzMmY3MzdhOTczOGRhYTU4MzM1MGQyYmI5ZWQwMTdhCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUaHUgQXVnIDcgMTc6NTA6MjYgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBkb2N1bWVudCBzb21lIG9mIHRoZSBibGFja2ZpbiBkaXJlY3RvcmllcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBlNDMzNzk2OGU0MzY5OGE2OGJhNjA4MzY5ZjQ2ZDRhNDExNDExMWNhCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUaHUgQXVnIDcgMTU6MTY6NTYgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBvbmx5IGVuYWJsZSBoYXJkd2FyZSBlcnJvciBpcnEgYnkgZGVmYXVsdAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAyYjY2ZjA4ZjI1N2VmNmEwNjc4NWYyN2IzYzZkYzJhNGNmYzljYWM0CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUaHUgQXVnIDcgMTM6MzY6NDMgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiBwdW50IG9sZCB1bnVzZWQgbWVtX2luaXQuaCBoZWFkZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYmNjMTIxYTAxNjA4MDQyMDY2YTE5YWI1YmZmNWJjZmI4MDViZjQwNgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IEF1ZyA3IDEzOjE4OjU1IDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogZGVsZXRlIHVudXNlZCBwYWdlX2Rlc2NyaXB0b3JfdGFibGVfc2l6ZSBkZWZpbmUKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMzBmYjlkMjRhZTE2ZTViMGVkMzllNWI3Y2M4NTk4MTE2NWNhOThiYwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IEF1ZyA3IDEzOjE3OjAzIDIwMDggLTA0MDAKCiAgICBCbGFja2ZpbjogZml4IHR5cG8gaW4gYm9vdCBtb2RlIGNvbW1lbnQgYW5kIGFkZCBOQU5EIGRlZmluZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAyZTVjYmU1NDYxYzVjNGM2NjY1ZTMxOGNmZTk1MGE1YTE1MGQ5OTljCkF1dGhvcjogQmVuIE1hYW4gPG1vb0Bjb3c+CkRhdGU6CVRodSBBdWcgNyAxMzoxNDoyMSAyMDA4IC0wNDAwCgogICAgQmxhY2tmaW46IGZpeCBwb3J0IG11eCBkZWZpbmVzIGZvciBCRjU0eAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAwNjU2ZWYyYmEyNzQ5MTBkMzEzNjRmZTAyMmY2YzdkYjAwNTE2NjBkCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUaHUgQXVnIDcgMTM6MDk6NTAgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiB1cGRhdGUgYW5vbWFseSBsaXN0cwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA1MGNhOTU0MDI4NzZjZjdiYWM0ZTJkNGY3ODU1ZjYxNmEwMzg3NjNmCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUaHUgQXVnIDcgMTM6MDg6NTQgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiB1bmlmeSBEU1BJRC9EQkdTVEFUIE1NUiBkZWZpbml0aW9ucwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBkOWQ4YzdjNjk2ZGVjMzcwY2E3MTRjMDNiZWI2ZTc5ZDRjOTBiZDVlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyMSAxNTo1Mzo1MSAyMDA4ICswMjAwCgogICAgRml4IHN0cm1oeigpOiBhdm9pZCBwcmludGluZyBuZWdhdGl2ZSBmcmFjdGlvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDRhN2Y2Yjc1MGQ4ZGU1NDNmZGY4ZTU4YWNkODY3NDUwMTAwNTQ1NzEKQXV0aG9yOiBSaWNoYXJkIFJldGFudWJ1biA8UmljaGFyZFJldGFudWJ1bkBydWdnZWRjb20uY29tPgpEYXRlOglGcmkgT2N0IDE3IDA4OjU1OjUxIDIwMDggLTA0MDAKCiAgICBtcGM4M3h4OiBSZW1vdmVkICNpZmRlZiBDT05GSUdfTVBDODM0WCBkZXBlbmRlbmN5IG9uIHVwbWNvbmZpZyBmdW5jdGlvbgoKICAgIFRoaXMgaXMgZG9uZSB0byBhbGxvdyBvdGhlciA4M1hYIGJhc2VkIHBsYXRmb3JtcyB3aGljaCBhbHNvIGhhdmUgVVBNCiAgICAoZS5nLiA4MzYwKSB0byBjb25maWd1cmUgYW5kIHVzZSB0aGVpciBVUE0gaW4gdS1ib290LgoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dlZENvbS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNiZjFiZTNjMGNmYjExMjliNjhjYzE0NzQxMTllNWYzMjM1MzY0ODgKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJVHVlIE9jdCAxNCAyMjo1ODo1MyAyMDA4ICswNDAwCgogICAgbXBjODN4eDogYWRkIHN1cHBvcnQgZm9yIHN3aXRjaGluZyBiZXR3ZWVuIFVTQiBIb3N0L0Z1bmN0aW9uIGZvciBNUEM4MzdYRU1EUwoKICAgIFdpdGggdGhpcyBwYXRjaCB1LWJvb3QgY2FuIGZpeHVwIHRoZSBkcl9tb2RlIGFuZCBwaHlfdHlwZSBwcm9wZXJ0aWVzCiAgICBmb3IgdGhlIER1YWwtUm9sZSBVU0IgY29udHJvbGxlci4KCiAgICBXaGlsZSBhdCBpdCwgYWxzbyByZW1vdmUgI2lmZGVmcyBhcm91bmQgaW5jbHVkZXMsIHRoZXkgYXJlIG5vdCBuZWVkZWQuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIzMzc5ZjNmZDEzOTY5OTM0YzAwMDk3YzA1NzU0ZTdhODk5MGZkMzkKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJV2VkIE9jdCA4IDIwOjUyOjU0IDIwMDggKzA0MDAKCiAgICBtcGM4M3h4OiBhZGQgRUxCQyBOQU5EIHN1cHBvcnQgZm9yIHRoZSBNUEM4MzdYRU1EUyBib2FyZHMKCiAgICBUaG91Z2ggTkFORCBjaGlwIGlzIHJlcGxhY2VhYmxlIG9uIHRoZSBNUEM4MzdYRS1NRFMgYm9hcmRzLCB0aGUKICAgIGN1cnJlbnQgc2V0dGluZ3MgZG9uJ3Qgd29yayB3aXRoIHRoZSBkZWZhdWx0IGNoaXAgb24gdGhlIGJvYXJkLgogICAgTmV2ZXJ0aGVsZXNzIEZyZWVzY2FsZSdzIFUtQm9vdCBzZXRzIHRoZSBvcHRpb24gcmVnaXN0ZXIgY29ycmVjdGx5LAogICAgc28gSSBqdXN0IGR1bXBlZCB0aGUgcmVnaXN0ZXIgZnJvbSB0aGUgd29ya2luZyB1LWJvb3QuIE15IGd1ZXNzIGlzCiAgICB0aGF0IHRoZSBvbGQgc2V0dGluZ3Mgd2VyZSBhcHBsaWNhYmxlIGZvciBzb21lIHBpbG90IGJvYXJkcywgbm90CiAgICBmb3VuZCBpbiB0aGUgcHJvZHVjdGlvbi4KCiAgICBUaGlzIHBhdGNoIGFsc28gZW5hYmxlcyBGU0wgRUxCQyBkcml2ZXIgc28gdGhhdCB3ZSBjb3VsZCBhY2Nlc3MKICAgIHRoZSBOQU5EIHN0b3JhZ2UgaW4gdGhlIHUtYm9vdC4KCiAgICBUaGUgTkFORCBzdXBwb3J0IGNvc3RzIGFib3V0IDQ1S0IsIHNvIHRoZSB1LWJvb3Qgbm8gbG9uZ2VyIGZpdHMKICAgIGludG8gdHdvIDEyOEtCIE5PUiBmbGFzaCBzZWN0b3JzLCB0aHVzIHdlIGFsc28gaGF2ZSB0byBhZGp1c3QKICAgIGVudmlyb25tZW50IGxvY2F0aW9uOiBhZGQgYW5vdGhlciAxMjhLQiB0byB0aGUgbW9uaXRvciBsZW5ndGguCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CgogICAgSXQgaXMgZHVlIHRvIGhhcmR3YXJlIGRlc2lnbiBhbmQgbG9naWMgZGVmZWN0LCB0aGF0IGlzIHRoZQogICAgSS9PWzA6N10gb2YgTkFORCBjaGlwIGlzIGNvbm5lY3RlZCB0byBMQURbNzowXSwgc28gd2hlbgogICAgdGhlIE5BTkQgY2hpcCBjb25uZWN0ZWQgdG8gbkxDUzMsICB5b3UgaGF2ZSB0byBzZXQgdXAgdGhlCiAgICBPUjNbQkNUTERdID0gJzEnIGZvciBub3JtYWwgb3BlcmF0aW9uLCBvdGhlcndpc2UgaXQgd2lsbCBoYXZlCiAgICBidXMgY29udGVudGlvbiBkdWUgdG8gdGhlIHBpbiA0OC8yNSBvZiBVNjAgaXMgZW5hYmxlZC4KCiAgICBTZXR1cCB0aGUgT1IzW0JDVExEXSA9ICcxJyAsIHRoYXQgbWVhbmluZyB0aGUgTEJDVEwgaXMgbm90CiAgICBhc3NlcnRlZCB1cG9uIGFjY2VzcyB0byB0aGUgTkFORCBjaGlwLCBrZWVwIHRoZSBkZWZhdWx0IHN0YXRlLgoKICAgIEFja2VkLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwMGY3YmJhZTkyZTNiMTNmMmIzN2FlYjFkZWY5YmIxMjQ0NTUyMWI3CkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CVRodSBPY3QgMiAxOToxNzozMyAyMDA4ICswNDAwCgogICAgbXBjODN4eDogZml4IFBDSSBzY2FuIGhhbmcgb24gdGhlIHN0YW5kYWxvbmUgTVBDODM3eEUtTURTIGJvYXJkcwoKICAgIFRoZSBNUEM4Mzd4RS1NRFMgYm9hcmQncyBDUExEIGNhbiBhdXRvLWRldGVjdCBpZiB0aGUgYm9hcmQgaXMgb24gdGhlIFBJQiwKICAgIHN0YW5kYWxvbmUgb3IgYWN0aW5nIGFzIGEgUENJIGFnZW50LiBVc2VyJ3MgR3VpZGUgc2F5czoKCiAgICAtIFdoZW4gdGhlIENQTEQgcmVjb2duaXplcyBpdHMgbG9jYXRpb24gb24gdGhlIFBJQiBpdCBhdXRvbWF0aWNhbGx5CiAgICAgIGNvbmZpZ3VyZXMgUkNXIHRvIHRoZSBQQ0kgSG9zdC4KICAgIC0gSWYgdGhlIENQTEQgZmFpbHMgdG8gcmVjb2duaXplIGl0cyBsb2NhdGlvbiB0aGVuIGl0IGlzIGF1dG9tYXRpY2FsbHkKICAgICAgY29uZmlndXJlZCBhcyBhbiBBZ2VudCBhbmQgdGhlIFBDSSBpcyBjb25maWd1cmVkIHRvIGFuIGV4dGVybmFsIGFyYml0ZXIuCgogICAgVGhpcyBzb3VuZHMgZ29vZC4gVGhvdWdoIGluIHRoZSBzdGFuZGFsb25lIHNldHVwIHRoZSBDUExEIHNldHMgUENJX0hPU1QKICAgIGZsYWcgKGl0J3Mgb2ssIHdlIGNhbid0IGFjdCBhcyBQQ0kgYWdlbnRzIHNpbmNlIHdlIHJlY2VpdmUgQ0xLSU4sIG5vdAogICAgUENJQ0xLKSwgYnV0IHRoZSBDUExEIGRvZXNuJ3Qgc2V0IHRoZSBBUkJJVEVSX0VOQUJMRSBmbGFnLCBhbmQgd2l0aG91dAogICAgYW55IGFyYml0ZXIgYmFkIHRoaW5ncyB3aWxsIGhhcHBlbiAoaGVyZSB0aGUgYm9hcmQgaGFuZ3MgZHVyaW5nIGFueSBjb25maWcKICAgIHNwYWNlIHJlYWRzKS4KCiAgICBJbiB0aGlzIHNpdHVhdGlvbiB3ZSBtdXN0IGRpc2FibGUgdGhlIFBDSS4gQW5kIGluIGNhc2Ugb2YgYW55Ym9keSByZWFsbHkKICAgIHdhbnQgdG8gdXNlIGFuIGV4dGVybmFsIGFyYml0ZXIsIHdlIHByb3ZpZGUgInBjaV9leHRlcm5hbF9hcmlidGVyIgogICAgZW52aXJvbm1lbnQgdmFyaWFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFkYTgzYTYzZDhlMWI0YmRkZWI4MjU4MWIxNzQ1YTA5YWFjM2UyZDMKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJVGh1IE9jdCAyIDE4OjMyOjI1IDIwMDggKzA0MDAKCiAgICBtcGM4M3h4OiBhZGQgU0dNSUkgcmlzZXIgbW9kdWxlIHN1cHBvcnQgZm9yIHRoZSBNUEM4Mzc4RS1NRFMgYm9hcmRzCgogICAgVGhpcyBpbnZvbHZlcyBjb25maWd1cmluZyB0aGUgU2VyRGVzIGFuZCBmaXhpbmcgdXAgdGhlIGZsYWdzIGFuZAogICAgUEhZIGFkZHJlc3NlcyBmb3IgdGhlIFRTRUNzLgoKICAgIEZvciBMaW51eCB3ZSBhbHNvIGZpeCB1cCB0aGUgZGV2aWNlIHRyZWUuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU2ZDljODkxNmRlOWMyNGYyYzUyZDBiMDFjZjAwZDJlNzRhMDRjZDgKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJVGh1IE9jdCAyIDE4OjMxOjU5IDIwMDggKzA0MDAKCiAgICBtcGM4M3h4OiBhZGQgVFNFQ3MnIEhSQ1dIIG1hc2tzIGZvciBNUEM4Mzd4IHByb2Nlc3NvcnMKCiAgICBXZSdsbCB1c2UgdGhlc2UgbWFza3MgdG8gcGFyc2UgVFNFQyBtb2RlcyBvdXQgb2YgSFJDV0guCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZmOWNjNjYwOGI0ZTFjZWZkZTU2YzBmYjk5YWUxYzk1YzQyNTc1ZmYKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJVGh1IE9jdCAyIDE4OjMxOjU2IDIwMDggKzA0MDAKCiAgICBtcGM4M3h4OiBzZXJkZXM6IGFkZCBmb3Jnb3R0ZW4gc2hpZnRzIGZvciByZmNrcwoKICAgIFRoZSByZmNrcyBzaG91bGQgYmUgc2hpZnRlZCBieSAyOCBiaXRzIGxlZnQuIFdlIGRpZG4ndCBub3RpY2UgdGhlIGJ1ZwogICAgYmVjYXVzZSB3ZSB3ZXJlIHVzaW5nIG9ubHkgMTAwTUh6IGNsb2NrcyAoZm9yIHdoaWNoIHJmY2tzID09IDApLgoKICAgIFRob3VnaCwgZm9yIFNHTUlJIHdlJ2xsIG5lZWQgMTI1TUh6IGNsb2Nrcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTVjNTMxOTg0ZGNmOTMzZTRjZDEzYTE4N2E3ZTA4ZTg3M2I3Y2VkMQpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglUaHUgT2N0IDIgMTg6MzE6NTMgMjAwOCArMDQwMAoKICAgIG1wYzgzeHg6IGZpeCBzZXJkZXMgc2V0dXAgZm9yIHRoZSBNUEM4Mzc4RSBib2FyZHMKCiAgICBNUEM4Mzd4RSBzcGVjcyBzYXlzIHRoYXQgU2VyRGVzMSBoYXM6CgogICAg4oCUIFR3byBsYW5lcyBydW5uaW5nIHgxIFNHTUlJIGF0IDEuMjUgR2JwczsKICAgIOKAlCBUd28gbGFuZXMgcnVubmluZyB4MSBTQVRBIGF0IDEuNSBvciAzLjAgR2Jwcy4KCiAgICBBbmQgZm9yIFNlckRlczI6CgogICAg4oCUIFR3byBsYW5lcyBydW5uaW5nIHgxIFBDSSBFeHByZXNzIGF0IDIuNSBHYnBzOwogICAg4oCUIE9uZSBsYW5lIHJ1bm5pbmcgeDIgUENJIEV4cHJlc3MgYXQgMi41IEdicHM7CiAgICDigJQgVHdvIGxhbmVzIHJ1bm5pbmcgeDEgU0FUQSBhdCAxLjUgb3IgMy4wIEdicHMuCgogICAgVGhlIHNwZWMgYWxzbyBleHBsaWNpdGx5IHN0YXRlcyB0aGF0IFBFWCBvcHRpb25zIGFyZSBub3QgdmFsaWQgZm9yCiAgICB0aGUgU0QxLgoKICAgIE5ldmVydGhlbGVzcyBNUEM4Mzc4IFJEQiBhbmQgTURTIGJvYXJkcyBjb25maWd1cmUgdGhlIFNEMSBmb3IgUEVYLAogICAgd2hpY2ggaXMgd3JvbmcgdG8gZG8uCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVjMmZmMzIzYTk0ZTI3ZTQ4MWY3MGM0NDgzOGQ0M2ZjZDg0NGRkNDYKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJV2VkIFNlcCAxMCAxODoxMjozNyAyMDA4ICswNDAwCgogICAgbXBjODN4eDogbXBjODM2MGVtZHM6IHJld29yayBMQkMgU0RSQU0gc2V0dXAKCiAgICBDdXJyZW50bHkgNjRNIG9mIExCQyBTRFJBTSBhcmUgbWFwcGVkIGF0IDB4RjAwMDAwMDAgd2hpY2ggbWFrZXMKICAgIGl0IGRpZmZpY3VsdCB0byB1c2UgKGIvYyB0aGVuIHRoZSBtZW1vcnkgaXMgZGlzY29udGludW91cyBhbmQKICAgIHRoZXJlIGlzIHF1aXRlIGJpZyBtZW1vcnkgaG9sZSBiZXR3ZWVuIHRoZSBERFIvU0RSQU0gcmVnaW9ucykuCgogICAgVGhpcyBwYXRjaCByZXdvcmtzIExCQyBTRFJBTSBzZXR1cCBzbyB0aGF0IG5vdyB3ZSBkeW5hbWljYWxseQogICAgcGxhY2UgdGhlIExCQyBTRFJBTSBuZWFyIHRoZSBERFIgKG9yIGF0IDB4MCBpZiB0aGVyZSBpc24ndCBhbnkKICAgIEREUiBtZW1vcnkpLgoKICAgIFdpdGggdGhpcyBwYXRjaCB3ZSdyZSBhYmxlIHRvOgoKICAgIC0gQm9vdCB3aXRob3V0IGV4dGVybmFsIEREUiBtZW1vcnk7CiAgICAtIFVzZSBtb3N0ICJERFIgKyBTRFJBTSIgc2V0dXBzIHdpdGhvdXQgbmVlZCB0byBzdXBwb3J0IGZvcgogICAgICBzcGFyc2UvZGlzY29udGludW91cyBtZW1vcnkgbW9kZWwgaW4gdGhlIHNvZnR3YXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZWYwODE5ZTkyMGIwNWIzNGI1NmQ4YjQyZTFlNDNkOWI4OWE1MmQ2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAeHBlcnQuZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyMSAxMToyMzo1NiAyMDA4ICswMjAwCgogICAgRkRUOiBkb24ndCB1c2UgcHJpdmF0ZSBrZXJuZWwgaGVhZGVyIGZpbGVzCgogICAgT24gc29tZSBzeXN0ZW1zIChmb3IgZXhhbXBsZSBGZWRvcmEgQ29yZSA0KSBVLUJvb3QgYnVpbGRzIHdpdGggdGhlCiAgICBmb2xsb3dpbmcgd2FucmluZ3Mgb25seToKCiAgICAuLi4KICAgIEluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS93ZC9naXQvdS1ib290L2luY2x1ZGUvbGliZmR0X2Vudi5oOjMzLAoJCSAgICAgZnJvbSBmZHQuYzo1MToKCQkgL3Vzci9pbmNsdWRlL2FzbS9ieXRlb3JkZXIuaDo2OjI6IHdhcm5pbmc6ICN3YXJuaW5nIHVzaW5nIHByaXZhdGUga2VybmVsIGhlYWRlcjsgaW5jbHVkZSA8ZW5kaWFuLmg+IGluc3RlYWQhCgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGlzIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmNGQxNGM1NTUwNGNlNDAyODczMjFiZDYzZWUyNjllMzIzM2VlNGFlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gT2N0IDEzIDE1OjE1OjMxIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEFkZCAxLjAgJiAxLjA2NiBHSHogdG8gY2FueW9ubGFuZHMgYm9vdHN0cmFwIGNvbW1hbmQgZm9yIFBMTCBzZXR1cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0M2NiY2U2OWQ0OGQwNTI1NzRkNzFmNTA3MjRiZTU0NmQ5MGE0NmE0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gT2N0IDEzIDEwOjQ1OjE0IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IENvcnJlY3RseSBzZXR1cCByYW5nZXMgcHJvcGVydHkgaW4gZWJjIG5vZGUKCiAgICBQcmV2aW91c2x5IG9ubHkgdGhlIE5PUiBmbGFzaCBtYXBwaW5nIHdhcyB3cml0dGVuIGludG8gdGhlIHJhbmdlcwogICAgcHJvcGVydHkgb2YgdGhlIGViYyBub2RlLiBUaGlzIHBhdGNoIG5vdyB3cml0ZXMgYWxsIGVuYWJsZWQgY2hpcAogICAgc2VsZWN0IGFyZWFzIGludG8gdGhlIHJhbmdlcyBwcm9wZXJ0eS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDdiMjZkNTgzMjhmMTM3NDcxZWE5N2RlMzgyYmZhNjNmNzIzOTkzMQpBdXRob3I6IERpcmsgRWliYWNoIDxlaWJhY2hAZ2RzeXMuZGU+CkRhdGU6CVdlZCBPY3QgOCAxNTozNzo1MCAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBBZGQgR0RTeXMgbmVvIDQwNUVQIGJvYXJkIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEVpYmFjaCA8ZWliYWNoQGdkc3lzLmRlPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGMxMWRhMTk0NTQ1ZDJmNGJiYjU0YmUxYmI1ZTUwNGUyMGNlOGMxNmMKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglXZWQgT2N0IDEgMTQ6NDY6MTMgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIGNvbmZpZ3MgZm9yIE5ldHN0YWwgYm9hcmRzCgogICAgSSByZW9yZ2FuaXplZCBteSBjb25maWcgZmlsZXMsIHB1dHRpbmcgdGhlIGNvbW1vbiBzdHVmZiBpbnRvIG5ldHN0YWwtY29tbW9uLmgKICAgIChnb3QgdGhlIGlkZWEgYnkgbG9va2luZyBhIGFtY2MtY29tbW9uLmggZnJvbSBTdGVmYW4pLgoKICAgIEFkZGVkIHN0dWZmIHRvIGJvb3QgdGhlIG5ldyBwb3dlcnBjIGxpbnV4IHZpYSBORlMgKG9ubHkgdGVzdGVkIHdpdGggSENVNCkuCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjOWMxMWQ3NTFlNDI0MmNmMjljM2MzYzI5MGQ5NzFmNmQwY2IxZDE1CkF1dGhvcjogQWRhbSBHcmFoYW0gPGFncmFoYW1AYW1jYy5jb20+CkRhdGU6CVdlZCBPY3QgOCAxMDoxMzoxOSAyMDA4IC0wNzAwCgogICAgcHBjNHh4OiBBZGQgcm91dGluZSB0byByZXRyaWV2ZSBDUFUgbnVtYmVyCgogICAgUHJvdmlkZSBhIHdlYWsgZGVmaW5lZCByb3V0aW5lIHRvIHJldHJpZXZlIHRoZSBDUFUgbnVtYmVyIGZvcgogICAgcmVmZXJlbmNlIGJvYXJkcyB0aGF0IGhhdmUgbXVsdGlwbGUgQ1BVJ3MuCURlZmF1bHQgYmVoYXZpb3IKICAgIGlzIHRoZSBleGlzdGluZyBzaW5nbGUgQ1BVIHByaW50IG91dHB1dC4gIFJlZmVyZW5jZSBib2FyZHMgd2l0aAogICAgbXVsdGlwbGUgQ1BVJ3MgbmVlZCB0byBwcm92aWRlIGEgYm9hcmQgc3BlY2lmaWMgcm91dGluZS4KICAgIFNlZSBib2FyZC9hbWNjL2FyY2hlcy9hcmNoZXMuYyBmb3IgYW4gZXhhbXBsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBZGFtIEdyYWhhbSA8YWdyYWhhbUBhbWNjLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFZpY3RvciBHYWxsYXJkbyA8dmdhbGxhcmRvQGFtY2MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDU5MjE3YmFlNDBlOTA5ODJhYjU0MDBkODQ5YzA4YWY2ODNhY2UwMzYKQXV0aG9yOiBBZGFtIEdyYWhhbSA8YWdyYWhhbUBhbWNjLmNvbT4KRGF0ZToJV2VkIE9jdCA4IDEwOjEzOjE0IDIwMDggLTA3MDAKCiAgICBwcGM0eHg6IEFkZCBzdGF0aWMgc3VwcG9ydCBmb3IgNDR4IElCTSBTRFJBTSBDb250cm9sbGVyCgogICAgVGhpcyBwYXRjaCBhZGQgdGhlIGNhcGFiaWxpdHkgdG8gY29uZmlndXJlIGEgUFBDNDQwIGJhc2VkIElCTSBTRFJBTQogICAgQ29udHJvbGxlciB3aXRoIHN0YXRpYywgY29tcGlsZWQtaW4sIHZhbHVlcy4gUFBDNDQwIG1lbW9yeSBzdWJzeXN0ZW0KICAgIGluY2x1ZGVzIGEgTWVtb3J5IFF1ZXVlIGNvcmUuCgogICAgU2lnbmVkLW9mZi1ieTogQWRhbSBHcmFoYW0gPGFncmFoYW1AYW1jYy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBWaWN0b3IgR2FsbGFyZG8gPHZnYWxsYXJkb0BhbWNjLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmMDlmMDlkMzg5OTAxN2FhYWEyYjAzMWJiYTYzYzI3MWU5YzQ4ZTRkCkF1dGhvcjogQWRhbSBHcmFoYW0gPGFncmFoYW1AYW1jYy5jb20+CkRhdGU6CVdlZCBPY3QgOCAxMDoxMjo1MyAyMDA4IC0wNzAwCgogICAgcHBjNHh4OiBBZGQgQU1DQyBBcmNoZXMgYm9hcmQgc3VwcG9ydCAoZHVhbCA0NjBHVCkKCiAgICBUaGUgQXJjaGVzIEV2YWx1YXRpb24gYm9hcmQgaXMgYmFzZWQgb24gdGhlIEFNQ0MgNDYwR1QgU29DIGNoaXAuCiAgICBUaGlzIGJvYXJkIGlzIGEgZHVhbCBwcm9jZXNzb3IgYm9hcmQgd2l0aCBlYWNoIHByb2Nlc3NvciBwcm92aWRpbmcKICAgIGluZGVwZW5kZW50IHJlc291cmNlcyBmb3IgUmFwaWQgSU8sIEdpZ2FiaXQgRXRoZXJuZXQsIGFuZCBzZXJpYWwKICAgIGNvbW11bmljYXRpb25zLiBFYWNoIDQ2MEdUIGhhcyBpdCdzIG93biA1MTJNQiBERFIyIG1lbW9yeSwgMzJNQiBOT1IKICAgIEZMQVNILCBVQVJULCBFRVBST00gYW5kIHRlbXBlcmF0dXJlIHNlbnNvciwgYWxvbmcgd2l0aCBhIHNoYXJlZCBkZWJ1ZwogICAgcG9ydC4gVGhlIHR3byA0NjBHVCdzIHdpbGwgY29tbXVuaWNhdGUgd2l0aCBlYWNoIG90aGVyIHZpYSBzaGFyZWQKICAgIG1lbW9yeSwgR2lnYWJpdCBFdGhlcm5ldCBhbmQgeDEgUENJLUV4cHJlc3MuCgogICAgU2lnbmVkLW9mZi1ieTogQWRhbSBHcmFoYW0gPGFncmFoYW1AYW1jYy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBWaWN0b3IgR2FsbGFyZG8gPHZnYWxsYXJkb0BhbWNjLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwNTViMTJmMmZmZDdjMzRlZWE3ZTk4M2EwNTg4YjI0ZjJlNjllMGUzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAeHBlcnQuZGVueC5kZT4KRGF0ZToJU3VuIE9jdCAxOSAyMTo1NDozMCAyMDA4ICswMjAwCgogICAgVFFNODI2MDogZW52aXJvbm1lbnQgaW4gZmxhc2ggaW5zdGVhZCBFRVBST00sIGJhdWRyYXRlIDExNWsKCiAgICBTZXZlcmFsIGN1c3RvbWVycyBoYXZlIHJlcG9ydGVkIHByb2JsZW1zIHdpdGggdGhlIGVudmlyb25tZW50IGluCiAgICBFRVBST00sIGluY2x1ZGluZyBjb3JydXB0ZWQgY29udGVudCBhZnRlciBib2FyZCByZXNldC4gUHJvYmFibHkgdGhlCiAgICBjb2RlIHRvIHByZXZlbnQgSTJDIEVuZ2UgQ29uZGl0aW9ucyBpcyBub3Qgd29ya2luZyBzdWZmaWNpZW50bHkuCgogICAgV2UgbW92ZSB0aGUgZW52aXJvbm1lbnQgdG8gZmxhc2ggbm93LCB3aGljaCBhbGxvd3MgdG8gaGF2ZSBhIGJhY2t1cAogICAgY29weSBwbHVzIGdpdmVzIG11Y2ggZmFzdGVyIGJvb3QgdGltZXMuCgogICAgQWxzbywgY2hhbmdlIHRoZSBkZWZhdWx0IGNvbnNvbGUgaW5pdGlhbGl6YXRpb24gdG8gMTE1MjAwIGJwcyBhcyB1c2VkCiAgICBvbiBtb3N0IG90aGVyIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDE4MzY4ODExOTBiM2Q4YTY5MThiMGQ2NGIzOWZlMzJiYmJkZjg1ZDgKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglTdW4gT2N0IDE5IDEyOjQ5OjE5IDIwMDggLTA1MDAKCiAgICA4NXh4OiBGaXggY29tcGlsZSB3YXJuaW5nIGluIG1wYzg1MzZkcy5jCgogICAgbXBjODUzNmRzLmM6IEluIGZ1bmN0aW9uICdpc19zYXRhX3N1cHBvcnRlZCc6CiAgICBtcGM4NTM2ZHMuYzo2MTU6IHdhcm5pbmc6IHVudXNlZCB2YXJpYWJsZSAnZGV2ZGlzcicKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDhlZDQ0ZDkxYzgxMjJkMDAzNjg1MjNiMGI3NDY2OTFjODk1ZDNiM2MKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gT2N0IDE5IDAyOjM1OjUwIDIwMDggKzAyMDAKCiAgICBDbGVhbnVwOiBmaXggIk1IeiIgc3BlbGxpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDA4ZWY4OWVjZDE3NDk2OWIzNTQ0ZjNmMGM3Y2QxZGUzYzU3ZjczN2IKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gT2N0IDE5IDAyOjM1OjQ5IDIwMDggKzAyMDAKCiAgICBVc2Ugc3RybWh6KCkgdG8gZm9ybWF0IGNsb2NrIGZyZXF1ZW5jaWVzCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBkNTBjN2Q0YmUxNTBiMjI1MmMwZDJlMTZjZmNmNjk2NDNiZGQ2ZGM5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE9jdCAxOSAwMjozNTo0OCAyMDA4ICswMjAwCgogICAgc3RybWh6KCk6IFJvdW5kIG51bWJlcnMgd2hlbiBwcmludGluZyBjbG9jayBmcmVxdWVuY2llcwoKICAgIFJvdW5kIGNsb2NrIGZyZXF1ZW5jaWVzIGZvciBwcmludGluZy4KCiAgICBNYW55IGJvYXJkcyBwcmludGVkIG9mZiBjbG9jayBmcmVxdWVuY2llcyBsaWtlIDM5OSBNSHogaW5zdGVhZCBvZiB0aGUKICAgIGV4YWN0IDQwMCBNSHogYmVjYXVzZSBudW1iZXJlcyB3ZXJlIG5vdCByb3VuZGVkLiBUaGlzIGlzIGZpeGVkIG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDY4MWMwMmQwNWIyOWM2ZDQ2MDkzNTI1MDUyYzc0YjljNGRkYzhiMDgKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gT2N0IDIwIDE1OjE2OjQ3IDIwMDggLTA1MDAKCiAgICA4NXh4OiBwcm9wZXJseSBkb2N1bWVudCBNUEM4NXh4X1BPUkRFVlNSMl9TRUNfQ0ZHCgogICAgQ29tbWl0IGY3ZDE5MGIxIGNvcnJlY3RlZCB0aGUgdmFsdWUgb2YgTVBDODV4eF9QT1JERVZTUjJfU0VDX0NGRywgYnV0IGZvcmdvdAogICAgdG8gYWRkIGEgY29tbWVudCB0aGF0IHRoZSBjb3JyZWN0IHZhbHVlIGRpc2FncmVlcyB3aXRoIHRoZSA4NTQ0IHJlZmVyZW5jZQogICAgbWFudWFsLiAgVGhlIGNoYW5nZWxvZyBmb3IgdGhhdCBjb21taXQgaXMgYWxzbyB3cm9uZywgYXMgaXQgc2F5cyAiYml0IDI4IgogICAgd2hlbiBpdCBzaG91bGQgYmUgImJpdCAyNCIuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzNjBmZTcxZTgyYjgzZTI2NGM5NjRjOTQ0N2M1MzdlOWExZjY0M2M4CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgMTcgMTg6MjQ6MDYgMjAwOCArMDIwMAoKICAgIG1nY29nZTogYWRkIHJlZHVuZGFudCBlbnZpcm9ubWVudCBzZWN0b3IKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA1M2ViZjBjNDcwYzg3ZDVmOWZhNzY0NjJlNWY0MDY0ZDI2YTliMTZhCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgMTcgMTg6MjM6MjcgMjAwOCArMDIwMAoKICAgIG1nc3V2ZDogdXBkYXRlIHNpemUgb2YgZW52aXJvbm1lbnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCAyZTI2ZDgzN2YxMTQ2MGMwZTZkZWRlN2Q2NTQyNGEzMWUwMTgzZDA5CkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAxMCAxMTo0MTowMCAyMDA4ICswODAwCgogICAgRW5hYmxlZCB0aGUgRnJlZXNjYWxlIFNHTUlJIHJpc2VyIGNhcmQgb24gODUzNkRTCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3ZTE4M2NhZDBjNWFiNjQxNWRjYTk1ZDZhYzI5MGVhOTE4YjI4YzU1CkF1dGhvcjogTGl1IFl1IDx5dS5saXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAxMCAxMTo0MDo1OSAyMDA4ICswODAwCgogICAgRW5hYmxlZCB0aGUgRnJlZXNjYWxlIFNHTUlJIHJpc2VyIGNhcmQgb24gODU3MkRTCgogICAgVGhpcyBwYXRjaCBiYXNlZCBvbiBBbmR5J3Mgd29yay4KICAgIEluY2x1ZGluZyBjb21tYW5kICdwaXhpc19zZXRfc2dtaWknIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogTGl1IFl1IDx5dS5saXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZmYxODhiYWY5NDI3YzM1NzQ1MzU2NDM5NDM1YWNmMzg2NGQ0YzY1CkF1dGhvcjogTGl1IFl1IDx5dS5saXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAxMCAxMTo0MDo1OCAyMDA4ICswODAwCgogICAgTWFrZSBwaXhpc19zZXRfc2dtaWkgbW9yZSBnZW5lcmFsIHRvIHN1cHBvcnQgTVBDODV4eCBib2FyZHMuCgogICAgVGhlIHBpeGlzIHNnbWlpIGNvbW1hbmQgZGVwZW5kIG9uIHRoZSBGUEdBIHN1cHBvcnQgb24gdGhlIGJvYXJkLCBzb21lIDg1eHgKICAgIGJvYXJkcyBzdXBwb3J0IFNHTUlJIHJpc2VyIGNhcmQgYnV0IGRpZCBub3Qgc3VwcG9ydCB0aGlzIGNvbW1hbmQsIGRlZmluZQogICAgQ09ORklHX1BJWElTX1NHTUlJX0NNRCBmb3IgdGhvc2UgYm9hcmRzIHdoaWNoIHN1cHBvcnQgdGhlIHNnbWlpIGNvbW1hbmQuCgogICAgTm90IGxpa2UgODU0NCwgODU3MiBoYXMgNCBlVHNlYyBzbyB0aGF0IHRoZSBvdGhlciB0d28ncyBwaXhpcyBiaXRzCiAgICBhcmUgbm90IHN1cHBvcnRlZCBieSA4NTQ0LiBUaGVyZWZvciwgZGVmaW5lIFBJWElTX1ZTUEVFRDJfTUFTSyBhbmQKICAgIFBJWElTX1ZDRkdFTjFfTUFTSyBpbiBoZWFkZXIgZmlsZSBmb3IgYm90aCBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogTGl1IFl1IDx5dS5saXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1ZTk4MWQ2ODNkMjM2MzIwNGM3Njc3Mzk0MWMyZTljMjA0NGM4MDhmCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE9jdCA4IDIzOjM4OjAyIDIwMDggLTA1MDAKCiAgICBBZGQgY3B1Lzh4eHggdG8gVEFHU19TVUJESVJTCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlMWY3ZDIyYjhiNTJmYzA4YzRkMTdhNmE3ZGIxZTY2NDI4MWFlZDYzCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCA5IDAxOjI1OjU1IDIwMDggLTA1MDAKCiAgICBmc2xfbGF3IGNsZWFyIGVuYWJsZSBiZWZvcmUgY2hhbmdpbmcuCgogICAgRGVidWcgc2Vzc2lvbnMgbWF5IGhhdmUgbGVmdCBlbmFibGVkIGxhd3MuCiAgICBDaGFuZ2luZyBsYXdiYXIgd2l0aCBhbiB1bmtvd24gZW5hYmxlZCB0Z3RpZCBjb3VsZCBjYXVzZSBwcm9ibGVtcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg2YmU1MTBmN2I1NDQzZTdlOTM3ZjY5NmJmYmUwMzdmZGM3NDBiMTUKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDkgMDA6Mjk6MjcgMjAwOCAtMDUwMAoKICAgIG1wYzg1NzIgYWRkaXRpb25hbCBlbmQtcG9pbnQgbW9kZQoKICAgIG1wYzg1NzIgc3VwcG9ydHMgYWxsIHBjaWUgY29udHJvbGxlcnMgYXMgZW5kLXBvaW50cyB3aXRoIGNmZ19ob3N0X2FnZW50PTAuCiAgICBJbmNsdWRlIGhvc3RfYWdlbnQgPT0gMCBkZWNvZGUgZm9yIGVuZC1wb2ludCBkZXRlcm1pbmF0aW9uLgoKICAgIFRoaXMgaXMgbm90IG5lZWRlZCBmb3IgdGhlIGRzIHJlZmVyZW5jZSBib2FyZCBzaW5jZSBwY2llMyB3aWxsIGJlIGEgaG9zdAogICAgaW4gb3JkZXIgdG8gY29ubmVjdCB0byB0aGUgdWxpIGNoaXAuICBJbmNsdWRlIGl0IGhlcmUgYXMgYSByZWZlcmVuY2UgZm9yCiAgICBvdGhlciBtcGM4NTcyIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY4NTZiM2QwMjIxYTgzODU4MGU2YmIwNmY2MTQyNWZkNzUyOWJhOTMKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgT2N0IDggMjM6Mzc6NTkgMjAwOCAtMDUwMAoKICAgIDg1eHggaWYgTlVNX0NQVVM+MSwgcHJpbnQgY3B1IG51bWJlcgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjdmZWNjM2UyNTA1MGEwMzZjOWY1MGYwZDJiODViYzMxOTlhOTZlMApBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBPY3QgOCAyMzozODowMSAyMDA4IC0wNTAwCgogICAgcGl4aXMgZG8gbm90IHByaW50IGxvbmcgaGVscCBpZiBub3QgY29uZmlndXJlZAoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGUxN2YwMmE4YTc4ZDg1MjI1YTRkODA1ZjZhMWVhOTVhMGE0NjBiNQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCA3IDA4OjA5OjUwIDIwMDggLTA1MDAKCiAgICBIYXZlIHUtYm9vdCBwYXNzIHN0YXNoaW5nIHBhcmFtZXRlcnMgaW50byBkZXZpY2UgdHJlZQoKICAgIFNvbWUgY29yZXMgZG9uJ3Qgc3VwcG9ydCBldGhlcm5ldCBzdGFzaGluZyBhdCBhbGwsIGFuZCBzb21lCiAgICBpbnN0YW5jZXMgaGF2ZSBlcnJhdGEuICBBZGRzIDMgcHJvcGVydGllcyB0byBnaWFuZmFyIG5vZGVzCiAgICB3aGljaCBzdXBwb3J0IHN0YXNoaW5nLiAgRm9yIG5vdywganVzdCBhZGQgdGhpcyBzdXBwb3J0IHRvCiAgICA4NXh4IFNvQ3MuCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGMyMTYxN2ZkMjY1YjdjMTI2YzZlMmYyZDhhMjNjZGIwMGQ0ZmFkZTcKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDMgMTI6Mzc6NTcgMjAwOCAtMDQwMAoKICAgIEFkZCBERFIgb3B0aW9ucyBzZXR0aW5nIG9uIE1QQzg2NDFIUENOIGJvYXJkCgogICAgKiBBZGQgYm9hcmQgc3BlY2lmaWMgcGFyYW1ldGVyIHRhYmxlIHRvIGNob29zZSBjb3JyZWN0IGNwbywgY2xrX2FkanVzdCwKICAgIHdyaXRlX2RhdGFfZGVsYXkgYmFzZWQgb24gYm9hcmQgZGRyIGZyZXF1ZW5jeSBhbmQgbl9yYW5rcy4KCiAgICAqIFNldCBvZHRfcmRfY2ZnIGFuZCBvZHRfd3JfY2ZnIGJhc2VkIG9uIHRoZSBkaW1tIyBhbmQgQ1MjLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGNhMDY2MDdkNjBkMGE2Mzc4ODEyZWY1OGZkMWVhYjJhN2Y3NzExMQpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMyAxMjozNzo0MSAyMDA4IC0wNDAwCgogICAgQWRkIGRkciBpbnRlcmxlYXZpbmcgc3VwcHBvcnQgZm9yIE1QQzg1NzJEUyBib2FyZAoKICAgICogQWRkIGJvYXJkIHNwZWNpZmljIHBhcmFtZXRlciB0YWJsZSB0byBjaG9vc2UgY29ycmVjdCBjcG8sIGNsa19hZGp1c3QsCiAgICB3cml0ZV9kYXRhX2RlbGF5LCAyVCBiYXNlZCBvbiBib2FyZCBkZHIgZnJlcXVlbmN5IGFuZCBuX3JhbmtzLgoKICAgICogU2V0IG9kdF9yZF9jZmcgYW5kIG9kdF93cl9jZmcgYmFzZWQgb24gdGhlIGRpbW0jIGFuZCBDUyMuCgogICAgKiBTZXQgbWVtb3J5IGNvbnRyb2xsZXIgaW50ZXJsZWF2aW5nIG1vZGUgdG8gYmFuayBpbnRlcmxlYXZpbmcsIGFuZCBkaXNhYmxlCiAgICBiYW5rKGNoaXAgc2VsZWN0KSBpbnRlcmxlYXZpbmcgbW9kZSBieSBkZWZhdWx0LCBiZWNhdXNlIHRoZSBkZWZhdWx0IG9uLWJvYXJkCiAgICBERFIgRElNTXMgYXJlIDJ4NTEyTUIgc2luZ2xlLXJhbmsuCgogICAgKiBDaGFuZ2UgQ09ORklHX0lDUzMwN19SRUZDTEtfSFogZnJvbSAzMzMzMzMzMyB0byAzMzMzMzAwMC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFmMjkzYjQxN2FjNmFiOGUzMTdjYTJiNzcwMzc3Y2E5M2VkZjIzNzAKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDMgMTI6Mzc6MjYgMjAwOCAtMDQwMAoKICAgIEFkZCBkZWJ1ZyBpbmZvcm1hdGlvbiBmb3IgRERSIGNvbnRyb2xsZXIgcmVnaXN0ZXJzCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjOWZmZDgzOWIxYWRhNTAyYzg2Zjg4ZWRhZjE1MzQ0MjZiNjY4OGNlCkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAzIDEyOjM3OjEwIDIwMDggLTA0MDAKCiAgICBDaGVjayBERFIgaW50ZXJsZWF2aW5nIG1vZGUKCiAgICAqIENoZWNrIEREUiBpbnRlcmxlYXZpbmcgbW9kZSBmcm9tIGVudmlyb25tZW50IGJ5IHJlYWRpbmcgbWVtY3RsX2ludGx2X2N0bCBhbmQKICAgIGJhX2ludGx2X2N0bC4KICAgICogUHJpbnQgRERSIGludGVybGVhdmluZyBtb2RlIGluZm9ybWF0aW9uCiAgICAqIEFkZCBkb2MvUkVBRE1FLmZzbC1kZHIgdG8gZGVzY3JpYmUgdGhlIGludGVybGVhdmluZyBzZXR0aW5nCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZmI0OTEwOGU0Zjg2YzIyMjRlMWYzMDEyNDMyOGIwZGU2NmVmNzJlCkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAzIDEyOjM2OjU1IDIwMDggLTA0MDAKCiAgICBQYXNzIGRpbW0gcGFyYW1ldGVycyB0byBwb3B1bGF0ZSBwb3B1bGF0ZSBjb250cm9sbGVyIG9wdGlvbnMKCiAgICBCZWNhdXNlIHNvbWUgZGltbSBwYXJhbWV0ZXJzIGxpa2Ugbl9yYW5rcyBuZWVkcyB0byBiZSB1c2VkIHdpdGggdGhlIGJvYXJkCiAgICBmcmVxdWVuY3kgdG8gY2hvb3NlIHRoZSBib2FyZCBwYXJhbWV0ZXJzIGxpa2UgY2xrX2FkanVzdCBldGMuIGluIHRoZQogICAgYm9hcmRfc3BlY2lmaWNfcGFyYW1lc3RlcnMgdGFibGUgb2YgdGhlIGJvYXJkIGRkciBmaWxlLCB3ZSBuZWVkIHRvIHBhc3MKICAgIHRoZSBkaW1tIHBhcmFtZXRlcnMgdG8gdGhlIGJvYXJkIGZpbGUuCgogICAgKiBtb3ZlIGRkciBkaW1tIHBhcmFtZXRlcnMgaGVhZGVyIGZpbGUgZnJvbSAvY3B1IHRvIC9pbmNsdWRlIGRpcmVjdG9yeS4KICAgICogYWRkIGRkciBkaW1tIHBhcmFtZXRlcnMgdG8gcG9wdWxhdGUgYm9hcmQgc3BlY2lmaWMgb3B0aW9ucy4KICAgICogRml4IGZzbF9kZHJfYm9hcmRfb3B0aW9ucygpIGZvciBhbGwgdGhlIDh4eHggYm9hcmRzIHdoaWNoIGNhbGwgdGhpcyBmdW5jdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRiYmJiM2FiZWZmMzI1ODU1Y2FlNzZlMzNkNjlkNTY2NTYzMTQ0M2YKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDMgMTI6MzY6MzkgMjAwOCAtMDQwMAoKICAgIE1ha2UgRERSIGludGVybGVhdmluZyBtb2RlIHdvcmsgY29ycmVjdGx5CgogICAgRml4IHNvbWUgYnVnczoKICAgICAgMS4gQ29ycmVjdGx5IHNldCBpbnRsdl9jdGwgaW4gY3NfY29uZmlnLgogICAgICAyLiBDb3JyZWN0bHkgc2V0IHNhLCBlYSBpbiBjc19ibmRzIHdoZW4gYmFuayBpbnRlcmxlYXZpbmcgbW9kZSBpcyBlbmFibGVkLgogICAgICAzLiBTZXQgYmFzZV9hZGRyZXNzIGFuZCB0b3RhbCBtZW1vcnkgZm9yIGVhY2ggZGRyIGNvbnRyb2xsZXIgaW4gbWVtb3J5CgkgY29udHJvbGxlciBpbnRlcmxlYXZpbmcgbW9kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFjOWFhNzZiZjkwMTMwNjllMjQyNThmNDZmNDY4N2M5Zjk4YTAyZDYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gU2VwIDIyIDIzOjQwOjQyIDIwMDggLTA1MDAKCiAgICA4NXh4OiBFbmFibGUgaW50ZXJydXB0IGFuZCBzZXRleHByIGNvbW1hbmRzIG9uIEZyZWVzY2FsZSA4NXh4IGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgN2MwZDRhNzUwOGQyNTJkMmQ3YzEzN2VlYjM3NjgxNDEzMmRkYTMwZgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBTZXAgMjIgMTQ6MTE6MTEgMjAwOCAtMDUwMAoKICAgIDg1eHg6IEltcHJvdmUgZmxhc2ggcmVtYXBwaW5nIG9uIE1QQzg1NzJEUyAmIE1QQzg1MzZEUwoKICAgIENoYW5naW5nIHRoZSBmbGFzaCBmcm9tIGNhY2hlYWJsZSB0byBjYWNoZS1pbmhpYml0ZWQgd2FzIHRha2luZyBhIHNpZ25pZmljYW50CiAgICBhbW91bnQgb2YgdGltZSBkdWUgdG8gdGhlIGZhY3QgdGhhdCB3ZSB3ZXJlIGl0ZXJhdGluZyBvdmVyIHRoZSBmdWxsIDI1Nk0gb2YKICAgIGZsYXNoLiAgSW5zdGVhZCB3ZSBjYW4ganVzdCBmbHVzaCB0aGUgTDEgZC1jYWNoZSBhbmQgaW52YWxpZGF0ZSB0aGUgaS1jYWNoZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDU0ZTA5MWQzYjYwM2EzMzMyYzYxOTE5OWNhODNhMDdlOTU5NjBkYTQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gU2VwIDIyIDE0OjExOjEwIDIwMDggLTA1MDAKCiAgICA4NXh4OiBFeHBvcnQgaW52YWxpZGF0ZV97aSxkfWNhY2hlIGFuZCBhZGQgZmx1c2hfZGNhY2hlCgogICAgQWRkZWQgdGhlIGFiaWxpdHkgZm9yIEMgY29kZSB0byBpbnZhbGlkYXRlIHRoZSBpL2QtY2FjaGUncyBhbmQKICAgIHRvIGZsdXNoIHRoZSBkLWNhY2hlLiAgVGhpcyBhbGxvd3MgdXMgdG8gbW9yZSBlZmZpY2llbnQgY2hhbmdlIG1hcHBpbmdzCiAgICBmcm9tIGNhY2hlLWFibGUgdG8gY2FjaGUtaW5oaWJpdGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNjI1MGYwZjYyOTdjNWJhOWFlY2RlYTYyOTA3OTlhOTVjNWQ0YjFkYQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglGcmkgT2N0IDE3IDE2OjExOjUyIDIwMDggKzAyMDAKCiAgICBtZ2NvZ2UsIG1nc3V2ZDogZXh0cmFjdCBtb3JlIGNvbW1vbiBjb2RlCgogICAgaW4gZnRfYmxvYl91cGRhdGUgKCkgZm9yIGJvdGggYm9hcmRzIHdhcyBhbiB1bm5lY2Nlc3NhcnkKICAgIHJlcGV0aXRpb24gb2YgY29kZSwgd2hpY2ggdGhpcyBwYXRjaCBtb3ZlcyBpbiBhIGNvbW1vbgogICAgZnVuY3Rpb24gZm9yIHRoaXMgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDllMjk5MTkyY2E5ODUwY2Y3MjU0NTYzODgwNDJhNWFhNWE2ZjNlYzcKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJRnJpIE9jdCAxNyAxMjoxNTo1NSAyMDA4ICswMjAwCgogICAgbWdjb2dlLCBtZ3N1dmQ6IHVzZSBpbl8qL291dF8qIGFjY2Vzb3JzCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgYTIxY2E5NWY4YjlkY2EyMjcxNDk1MmIzNDhlNDkwNWFjMTU3YjVjZApBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglGcmkgT2N0IDE3IDEzOjUyOjUxIDIwMDggKzAyMDAKCiAgICBtZ3N1dmQ6IGZpeCBjb21waWxlciB3YXJuaW5nIHdoZW4gdXNpbmcgc29mdF9pMmMgZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgY2FjOWNmNzg3NWMyYTAxZDYzNDIyODIwZWQ0NzMyYTliZGY1YWI3YgpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglGcmkgT2N0IDE3IDEyOjE1OjA1IDIwMDggKzAyMDAKCiAgICBtZ3N1dmQ6IGZpeCBjb2Rpbmcgc3R5bGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA1ZjRjMzEzN2Y0ZjA1MTc4NzcwN2M1NDgxMzM4MjNmMTY1NmViNTA4CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgMTcgMTI6MTM6MzAgMjAwOCArMDIwMAoKICAgIG1nY29nZTogU2Vjb25kIEZsYXNoIG9uIENTNSBub3Qgb24gQ1MxCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgNzZkYTE5ZGY1YjhlMTg2ZDI2OWYyOTE5MDY5NmJkMzFmYjZjODM2YgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBPY3QgMTYgMjE6NTI6MDggMjAwOCAtMDUwMAoKICAgIEFkZGVkIGFyY2hfbG1iX3Jlc2VydmUgdG8gYWxsb3cgYXJjaCBzcGVjaWZpYyBtZW1vcnkgcmVnaW9ucyBwcm90ZWN0aW9uCgogICAgRWFjaCBhcmNoaXRlY3R1cmUgaGFzIGRpZmZlcmVudCB3YXlzIG9mIGRldGVybWluZSB3aGF0IHJlZ2lvbnMgb2YgbWVtb3J5CiAgICBtaWdodCBub3QgYmUgdmFsaWQgdG8gZ2V0IG92ZXJ3cml0dGVuIHdoZW4gd2UgYm9vdC4gIFRoaXMgcHJvdmlkZXMgYQogICAgaG9vayB0byBhbGxvdyB0aGVtIHRvIHJlc2VydmUgYW55IHJlZ2lvbnMgdGhleSBjYXJlIGFib3V0LglDdXJyZW50bHkKICAgIG9ubHkgcHBjLCBtNjhrIGFuZCBzcGFyYyBuZWVkL3VzZSB0aGlzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZTAyZDRhOTkwNGM4ZjM2Mzk1OTk0YzBjODE0NjlkNTUyYjgyZjVlYQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglUaHUgT2N0IDE2IDE2OjMyOjM1IDIwMDggKzAyMDAKCiAgICBtZ2NvZ2U6IGFkZGVkIENPTkZJR19GSVQgdG8gc3VwcG9ydCB0aGUgbmV3IHUtYm9vdCBpbWFnZSBmb3JtYXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA2ZDBmNmJjZjMzN2M1MjYxYzA4ZmFiZTEyOTgyMTc4YzJjNDg5ZDc2CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVGh1IE9jdCAxNiAxNTowMToxNSAyMDA4ICswMjAwCgogICAgcmVuYW1lIENGR18gbWFjcm9zIHRvIENPTkZJR19TWVMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDcxZWRjMjcxODE2ZWM4MmNmMDU1MGRkNjk4MGJlMmRhM2NjMmFkOWUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gT2N0IDEzIDE0OjEyOjU1IDIwMDggLTA1MDAKCiAgICA3NHh4Lzd4eC84Nnh4OiBSZW5hbWUgZmx1c2hfZGF0YV9jYWNoZSB0byBmbHVzaF9kY2FjaGUgdG8gbWF0Y2ggODV4eCB2ZXJzaW9uCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBiNzk5Y2I0YzBlZWJiMDc2MmU5MWU5NjUzZDhiOWNjOWE5ODQ0MGUzCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIFNlcCAyMyAxMDowNTowMiAyMDA4IC0wNTAwCgogICAgRXhwb3NlIGNvbW1hbmQgdGFibGUgc2VhcmNoIGZvciBzdWItY29tbWFuZHMKCiAgICBTdWItY29tbWFuZCBjYW4gYmVuZWZpdCBmcm9tIHVzaW5nIHRoZSBzYW1lIHRhYmxlIGFuZCBzZWFyY2ggZnVuY3Rpb25zCiAgICB0aGF0IHRvcCBsZXZlbCBjb21tYW5kcyBoYXZlLiAgRXhwb3NlIHRoaXMgZnVuY3Rpb25hbGl0eSBieSByZWZhY3RvcmluZwogICAgZmluZF9jbWQoKSBhbmQgaW50cm9kdWNpbmcgZmluZF9jbWRfdGJsKCkgdGhhdCBzdWItY29tbWFuZCBwcm9jZXNzaW5nCiAgICBjYW4gY2FsbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGY3ZTUxYjI3NTA4NDQ2ZjhjYWUzOTI3OTc1ODE3MTM3OTc5YWQ1ZTgKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAxNSAwOTo0MTozMyAyMDA4ICswMjAwCgogICAgbWdzdXZkLCBtZ2NvZ2U6IGFkZGVkIEJPT1RDT1VOVCBmZWF0dXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDhmNjRkYTdmODNiNTUzODg5YmMwODQwMGM5NzA0Nzk5ODM4MmU5ZDIKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAxNSAwOTo0MTowMCAyMDA4ICswMjAwCgogICAgbWdjb2dlLCBtZ3N1dmQ6IGFkZGVkIHN1cHBvcnQgZm9yIHRoZSBJVk0gRUVwcm9tLgoKICAgIFRoZSBFRXByb20gY29udGFpbnMgc29tZSBNYW51ZmFjdHVyZXJpbmZvcm1hdGlvbiwKICAgIHdoaWNoIGFyZSByZWFkIGZyb20gdS1ib290IGF0IGJvb3QgdGltZSwgYW5kIHNhdmVkCiAgICBpbiBzYW1lIGh1c2ggc2hlbGwgdmFyaWFibGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDgxNDczZjY3ODEwYzRjOWI3ZWZhZWQ4ZGVlMjU4ZWQ2YmM0Yzc5ODMKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAxNSAwOTo0MDoyOCAyMDA4ICswMjAwCgogICAgaHVzaDogYWRkIHNob3d2YXIgY29tbWFuZCBmb3IgaHVzaCBzaGVsbC4KCiAgICBUaGlzIG5ldyBjb21tYW5kIHNob3dzIHRoZSBsb2NhbCB2YXJpYWJsZXMgZGVmaW5lZCBpbgogICAgdGhlIGh1c2ggc2hlbGw6CgogICAgPT4gaGVscCBzaG93dmFyCiAgICBzaG93dmFyCgktIHByaW50IHZhbHVlcyBvZiBhbGwgaHVzaHNoZWxsIHZhcmlhYmxlcwogICAgc2hvd3ZhciBuYW1lIC4uLgoJLSBwcmludCB2YWx1ZSBvZiBodXNoc2hlbGwgdmFyaWFibGUgJ25hbWUnCgogICAgQWxzbyBtYWtlIHRoZSBzZXRfbG9jYWxfdmFyKCkgYW5kIHVuc2V0X2xvY2FsX3ZhciAoKQogICAgbm8gbG9uZ2VyIHN0YXRpYywgc28gaXQgaXMgcG9zc2libGUgdG8gZGVmaW5lIGxvY2FsCiAgICBodXNoIHNoZWxsIHZhcmlhYmxlcyBhdCBib290IHRpbWUuIElmIENPTkZJR19IVVNIX0lOSVRfVkFSCiAgICBpcyBkZWZpbmVkLCB1LWJvb3QgY2FsbHMgaHVzaF9pbml0X3ZhciAoKSwgd2hlcmUKICAgIGJvYXJkc3BlY2lmaWMgY29kZSBjYW4gZGVmaW5lIGxvY2FsIGh1c2ggc2hlbGwKICAgIHZhcmlhYmxlcyBhdCBib290dGltZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA2N2IyM2EzMjI4NDhkODI4YTVlNDVjMDU2N2I3Mjc2MmJmZGU3YWJmCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMTUgMDk6Mzk6NDcgMjAwOCArMDIwMAoKICAgIEkyQzogYWRkaW5nIG5ldyAiaTJjIGJ1cyIgQ29tbWFuZCB0byB0aGUgSTJDIFN1YnN5c3RlbS4KCiAgICBXaXRoIHRoaXMgQ29tbWFuZCBpdCBpcyBwb3NzaWJsZSB0byBhZGQgbmV3IEkyQyBCdXNzZXMsCiAgICB3aGljaCBhcmUgYmVoaW5kIDEgLi4gbiBJMkMgTXV4ZXMuIERldGFpbHMgc2VlIFJFQURNRS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBjMjQ4NTM2NDRkZGQyZGQyZTQyNDZiNTg1NGE5M2U2MjU0YTE0MDkyCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMTUgMDk6Mzk6MDggMjAwOCArMDIwMAoKICAgIG1nY29nZSwgbWdzdXZkOiBhZGQgYm9hcmQgc3BlY2lmaWMgSTJDIGRlYmxvY2tpbmcgbWVjaGFuaXNtLgoKICAgIEFzIGRvY3VtZW50ZWQgaW4gZG9jL0kyQ19FZGdlX0NvbmRpdGlvbnMsIGFkZGluZyBhCiAgICBib2FyZCBzcGVjaWZpYyBkZWJsb2NraW5nIG1lY2hhbmlzbSB2aWEgQ0ZHX0kyQ19JTklUX0JPQVJECiAgICBmb3IgdGhlIG1nY29nZSBhbmQgbWdzdXZkIGJvYXJkLgoKICAgIFRoaXMgY29kZSB3YXMgb3JpZ2luYWxseSB3cml0dGVuIGJ5IEtleW1pbGUgaW4gYXNzb2NpYXRpb24KICAgIHdpdGggQW5hdGVjaCBhbmQgQXRtZWwgaW4gMTk5OC4gVGhlIENvZGUgdG9nZ2VscyB0aGUgU0NMCiAgICB1bnRpbCB0aGUgU0NBIGxpbmUgZ29lcyB0byBISUdIIChtYXguIDE2IHRpbWVzKS4KICAgIEFuZCBhZnRlciB0aGlzLCBhIHN0YXJ0IGNvbmRpdGlvbiBpcyBzZW50LgoKICAgIFRoaXMgaXMgYW5vdGhlciBhcHByb2FjaCB0byBkZWJsb2NrIHRoZSBJMkMgQnVzLiBUaGUKICAgIHNvZnQgSTJDIGRyaXZlciBhY3R1YWxseSBzZW5kcyA5IGNsb2NrcyB3aXRoIFNEQSBIaWdoLAogICAgYW5kIHRoZW4gYSBzdG9wIGF0IHRoZSBlbmQsIHRvIGRlYmxvY2sgdGhlIEkyQyBCdXMuCgogICAgTWF5YmUgd2Ugc2hvdWxkIHVzZSB0aGUgYXBwcm9hY2ggZnJvbSBLZXltaWxlIGFzCiAgICB0aGUgbmV3IHN0YW5kYXJkPwoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDRjYTEwN2VmZmViZmJhYmFjMTA1N2MzOTYzMjEwNWRhY2VmOTU5NTcKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAxNSAwOTozODozOCAyMDA4ICswMjAwCgogICAgc29mdF9pMmM6IEFkZCBDRkdfSTJDX0lOSVRfQk9BUkQgb3B0aW9uCgogICAgVGhpcyBwYXRjaCBhZGRzIHRoZSBvcHRpb24gZm9yIGEgYm9hcmRzcGVjaWZpYwogICAgSTJDIGRlYmxvY2tpbmcgbWVjaGFuaXNtIGZvciB0aGUgc29mdCBpMmMgZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGU1ZTRlZGQ5ZjFmNzYyMTBhMDljMzRlZTgzNWY2Y2ZmNjBmZGJiZDEKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAxNSAwOTozODowNyAyMDA4ICswMjAwCgogICAgbWdjb2dlLCBtZ3N1dmQ6IGFkZCBEVFQgKExNNzUpIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgOGU0NDJkZjQzOGFiNjc3MDU3NTcxZTNhYzAxODQ2YmZmNzcxOWJjZQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglXZWQgT2N0IDE1IDA5OjM3OjM0IDIwMDggKzAyMDAKCiAgICBsbTc1OiBNYWtlIHRoZSBMTTc1IE1VTFRJX0JVUyBjb21wYXRpYmxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDEyZjE2NzgxMjdjMWRmMmIyODc4YmE5M2M4ODk0OGJlZGMwNjA3NzUKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAxNSAwOTozNzowNCAyMDA4ICswMjAwCgogICAgbG03NTogZml4IENvZGluZ3N0eWxlIGlzc3Vlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBmMjIwMjQ1MGM3NWJhNjkzNGIzNTYwMjQxMDE1MDBkZGNkZTZlMmE2CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMTUgMDk6MzY6MzMgMjAwOCArMDIwMAoKICAgIG1nY29nZSwgbWdzdXZkOiBhZGRlZCBFRXByb20gc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA5NjYxYmY5ZDEyMGY3NjAyMzhiMmEwNzNiODRmMmJhZjA1MDEwMDU3CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMTUgMDk6MzY6MDMgMjAwOCArMDIwMAoKICAgIG1nY29nZSwgbWdzdXZkOiBhZGQgSTJDIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgOThhZWQzNzk1ODZhMTU1MjkyZWZiZjMyMDkzNTY4MzY1ODRiNjAxYwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglXZWQgT2N0IDE1IDA5OjM1OjI2IDIwMDggKzAyMDAKCiAgICBzb2Z0X2kyYzogcHJldmVudCBjb21waWxlciB3YXJuaW5ncyBpZiBkcml2ZXIgZG9lcyBub3QgdXNlIENQVSBQaW5zLgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIGZvbGxvd2luZyB3YXJuaW5ncywgd2hlbiB1c2luZwogICAgdGhlIHNvZnRfaTJjIGRyaXZlciB1c2luZyBubyBDUFUgcGlucyBvbiBNUEM4Mnh4IG9yIE1QQzh4eAogICAgc3lzdGVtczoKCiAgICBzb2Z0X2kyYy5jOiBJbiBmdW5jdGlvbiAnc2VuZF9yZXNldCc6CiAgICBzb2Z0X2kyYy5jOjkzOiB3YXJuaW5nOiB1bnVzZWQgdmFyaWFibGUgJ2ltbXInCiAgICBzb2Z0X2kyYy5jOiBJbiBmdW5jdGlvbiAnc2VuZF9zdGFydCc6CiAgICBzb2Z0X2kyYy5jOjEyNDogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdpbW1yJwogICAgc29mdF9pMmMuYzogSW4gZnVuY3Rpb24gJ3NlbmRfc3RvcCc6CiAgICBzb2Z0X2kyYy5jOjE0Njogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdpbW1yJwogICAgc29mdF9pMmMuYzogSW4gZnVuY3Rpb24gJ3NlbmRfYWNrJzoKICAgIHNvZnRfaTJjLmM6MTcxOiB3YXJuaW5nOiB1bnVzZWQgdmFyaWFibGUgJ2ltbXInCiAgICBzb2Z0X2kyYy5jOiBJbiBmdW5jdGlvbiAnd3JpdGVfYnl0ZSc6CiAgICBzb2Z0X2kyYy5jOjE5Njogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdpbW1yJwogICAgc29mdF9pMmMuYzogSW4gZnVuY3Rpb24gJ3JlYWRfYnl0ZSc6CiAgICBzb2Z0X2kyYy5jOjI0NDogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdpbW1yJwoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDc5OWI3ODRhYTAwY2IwM2EzNTI4NDdhYjlmOWFjZGRlNzliNzJkMjEKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAxNSAwOTozNDo0NSAyMDA4ICswMjAwCgogICAgaTJjOiBhZGQgQ09ORklHX0kyQ19NVUxUSV9CVVMgZm9yIHNvZnRfaTJjIGFuZCBtcGM4MjYwIGkyYyBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgMDgwOWVhMmY0MzQwYWIyMDQ3NDAwYzdkM2QzMDQ3Zjk3OTg3ZDBmZApBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglXZWQgT2N0IDE1IDA5OjM0OjA1IDIwMDggKzAyMDAKCiAgICBtZ2NvZ2U6IGZpeCBDb2RpbmcgU3R5bGUgaXNzdWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGU0M2EyN2M0OTcxMjIwM2ZlODg0OGExNzcxNDMzMDYyM2VkZmIyZWIKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAxNSAwOTozMzozMCAyMDA4ICswMjAwCgogICAgSTJDOiBhZGQgbmV3IGNvbW1hbmQgaTJjIHJlc2V0LgoKICAgIElmIEkyQyBCdXMgaXMgYmxvY2tlZCAoc2VlIGRvYy9JMkNfRWRnZV9Db25kaXRpb25zKSwKICAgIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBnZXQgb3V0IG9mIHRoaXMsIHVudGlsIHRoZQogICAgY29tcGxldGUgSGFyZHdhcmUgZ2V0cyBhIHJlc2V0LiBUaGlzIG5ldyBjb21tYW5kbwogICAgY2FsbHMgYWdhaW4gaTJjX2luaXQgKGFuZCB0aGF0IGNhbGxzIGkyY19pbml0X2JvYXJkCiAgICBpZiBkZWZpbmVkKSwgd2hpY2ggd2lsbCBkZWJsb2NrIHRoZSBJMkMgQnVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4NmU5Y2RmOGM0MTVjMWE5NzI1ZTlkYWU1MjM3YmExZTdiZDlmNjg2CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMTUgMDk6MzI6MjUgMjAwOCArMDIwMAoKICAgIG1nc3V2ZCwgbWdjb2dlOiBtb3ZlIHRoaXMgMiBib2FyZHMgaW4gb25lIGRpci4KCiAgICBUaGVyZSBhcmUgc29tZSBtb3JlIGV4dGVuc2lvbnMsIHdoaWNoIGFyZSBmb3IgYm90aCBib2FyZHMKICAgIGFuZCBzb21lIG1vcmUgYm9hcmRzIGZyb20gdGhpcyBtYW51ZmFjdHVyZXIgd2lsbCBmb2xsb3cgc29vbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMWM2ZmU2ZWFjNzVkNjk1ZmRlNjc3YWY4MzMwYzBkYmU3NWZiNmEyYgpBdXRob3I6IERpcmsgRWliYWNoIDxlaWJhY2hAZ2RzeXMuZGU+CkRhdGU6CVdlZCBPY3QgOCAxMzo0NDoyNyAyMDA4ICswMjAwCgogICAgaHdtb246IEFkZCBMTTYzIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIE5hdGlvbmFsIExNNjMgdGVtcGVyYXR1cmUKICAgIHNlbnNvciB3aXRoIGludGVncmF0ZWQgZmFuIGNvbnRyb2wuIEl0J3MgdXNlZCBvbiB0aGUgR0RTeXMKICAgIE5lbyBib2FyZCAoNDA1RVApIHdoaWNoIHdpbGwgYmUgc3VibWl0dGVkIGxhdGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgRWliYWNoIDxlaWJhY2hAZ2RzeXMuZGU+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDdiYTg5MGJmMmYyYjkyODMxNDIwMjQzYzA1ODk1MWFhODMxMTE5ZmQKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxrbXBhcmtAaW5mcmFkZWFkLm9yZz4KRGF0ZToJV2VkIE9jdCA4IDExOjAxOjE3IDIwMDggKzA5MDAKCiAgICBBZGQgUmVkIEJsYWNrIFRyZWUgc3VwcG9ydAoKICAgIE5vdyBpdCdzIHVzZWQgYXQgVUJJIG1vZHVsZS4gT2YgY291cnNlIG90aGVyIG1vZHVsZXMgY2FuIHVzZSBpdC4KICAgIElmIHlvdSB3YW50IHRvIHVzZSBpdCwgcGxlYXNlIGRlZmluZSBDT05GSUdfUkJUUkVFCgogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCBmYmQ4NWFkNjVkZDljOThmMzZlZDNmYjEyZmU0MWYzODFiN2Q0Nzk0CkF1dGhvcjogcmljaGFyZHJldGFudWJ1biA8cmljaGFyZHJldGFudWJ1bkBydWdnZWRjb20uY29tPgpEYXRlOglNb24gT2N0IDYgMTY6MTA6NTMgMjAwOCAtMDQwMAoKICAgIENPTkZJR19FRklfUEFSVElUSU9OOiBBZGRlZCBzdXBwb3J0IGZvciBFRkkgcGFydGl0aW9uIGluIGNtZF9leHQyZnMuYwoKICAgIEFkZGVkIHN1cHBvcnQgZm9yIENPTkZJR19FRklfUEFSVElUSU9OIHRvIGV4dDIgY29tbWFuZHMuCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNoYXJkIFJldGFudWJ1biA8UmljaGFyZFJldGFudWJ1bkBSdWdnZ2VkQ29tLmNvbT4KCmNvbW1pdCAwN2YzZDc4OWI5YmViN2NlMzI3OGM5NzRmNGQ1YzhmNTFiNmFiNTY3CkF1dGhvcjogcmljaGFyZHJldGFudWJ1biA8cmljaGFyZHJldGFudWJ1bkBydWdnZWRjb20uY29tPgpEYXRlOglGcmkgU2VwIDI2IDExOjEzOjIyIDIwMDggLTA0MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgQ09ORklHX0VGSV9QQVJUSVRJT04gKEdVSUQgUGFydGl0aW9uIFRhYmxlKQoKICAgIFRoZSBHVUlEIChHbG9iYWxseSBVbmlxdWUgSWRlbnRpZmllcikgUGFydGl0aW9uIFRhYmxlIChHUFQpIGlzIGEgcGFydAogICAgb2YgRUZJLiBTZWUgaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9HVUlEX1BhcnRpdGlvbl9UYWJsZQoKICAgIEJhc2VkIG9uIGxpbnV4L2ZzL3BhcnRpdGlvbnMvZWZpLltjaF0KCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNoYXJkIFJldGFudWJ1biA8UmljaGFyZFJldGFudWJ1bkBSdWdnZ2VkQ29tLmNvbT4KCmNvbW1pdCBmYmM4N2RjMDU0NmRmZjcwOWIzOGYzNThlMmM1ZDVlMzljNGNhMzc0CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE9jdCAxIDE1OjI2OjMyIDIwMDggKzAyMDAKCiAgICBGSVQ6IG91dHB1dCBpbWFnZSBsb2FkIGFkZHJlc3MgZm9yIHR5cGUgJ2Zpcm13YXJlJywgZml4IG1lc3NhZ2Ugd2hpbGUgdGhlcmUKCiAgICBOb3cgdGhhdCB0aGUgYXV0by11cGRhdGUgZmVhdHVyZSB1c2VzIHRoZSAnZmlybXdhcmUnIHR5cGUgZm9yIHVwZGF0ZXMsIGl0IGlzCiAgICB1c2VmdWwgdG8gaW5zcGVjdCB0aGUgbG9hZCBhZGRyZXNzIG9mIHN1Y2ggaW1hZ2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgNGJhZTkwOTA0YjY5Y2UzZGViOWY3YzMzNGVmMTJlZDc0ZTE4YTI3NQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBPY3QgMSAxNToyNjozMSAyMDA4ICswMjAwCgogICAgQXV0b21hdGljIHNvZnR3YXJlIHVwZGF0ZSBmcm9tIFRGVFAgc2VydmVyCgogICAgVGhlIGF1dG8tdXBkYXRlIGZlYXR1cmUgYWxsb3dzIHRvIGF1dG9tYXRpY2FsbHkgZG93bmxvYWQgc29mdHdhcmUgdXBkYXRlcwogICAgZnJvbSBhIFRGVFAgc2VydmVyIGFuZCBzdG9yZSB0aGVtIGluIEZsYXNoIG1lbW9yeSBkdXJpbmcgYm9vdC4gVXBkYXRlcyBhcmUKICAgIGNvbnRhaW5lZCBpbiBhIEZJVCBmaWxlIGFuZCBwcm90ZWN0ZWQgd2l0aCBTSEEtMSBjaGVja3N1bS4KCiAgICBNb3JlIGRldGFpbGVkIGRlc2NyaXB0aW9uIGNhbiBiZSBmb3VuZCBpbiBkb2MvUkVBRE1FLnVwZGF0ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBDenViYWsgPHJjekBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDNmMGNmNTFkYWJhY2MyNzI0NzMxYzUwNzlhNjBlYTk4OTEwM2JiOGYKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgT2N0IDEgMTU6MjY6MjcgMjAwOCArMDIwMAoKICAgIGZsYXNoOiBmYWN0b3Igb3V0IGFkanVzdGluZyBvZiBGbGFzaCBhZGRyZXNzIHRvIHRoZSBlbmQgb2Ygc2VjdG9yCgogICAgVGhlIHVwY29taW5nIGF1dG9tYXRpYyB1cGRhdGUgZmVhdHVyZSBuZWVkcyB0aGUgYWJpbGl0eSB0byBhZGp1c3QgYW4KICAgIGFkZHJlc3Mgd2l0aGluIEZsYXNoIHRvIHRoZSBlbmQgb2YgaXRzIHJlc3BlY3RpdmUgc2VjdG9yLiBGYWN0b3Igb3V0CiAgICB0aGlzIGZ1bmN0aW9uYWxpdHkgdG8gYSBuZXcgZnVuY3Rpb24gZmxhc2hfc2VjdF9yb3VuZGIoKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBDenViYWsgPHJjekBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGU4M2NjMDYzNzVhYzJiZWEwODMwYzZlZDBmOWQ4ZmRjM2MxYjI3ZDUKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgT2N0IDEgMTU6MjY6MjkgMjAwOCArMDIwMAoKICAgIG5ldDogTWFrZSBURlRQIHNlcnZlciB0aW1lb3V0IGNvbmZpZ3VyYWJsZQoKICAgIFRoZXJlIGFyZSB0d28gYXNwZWN0cyBvZiBhIFRGVFAgdHJhbnNmZXIgaW52b2x2aW5nIHRpbWVvdXRzOgogICAgMS4gdGltZW91dCB3YWl0aW5nIGZvciBpbml0aWFsIHNlcnZlciByZXBseSBhZnRlciBzZW5kaW5nIFJSUQogICAgMi4gdGltZW91dHMgd2hpbGUgdHJhbnNmZXJyaW5nIGFjdHVhbCBkYXRhIGZyb20gdGhlIHNlcnZlcgoKICAgIFNpbmNlIHRoZSB1cGNvbWluZyBhdXRvLXVwZGF0ZSBmZWF0dXJlIGF0dGVtcHRzIGEgVEZUUCBkb3dubG9hZCBkdXJpbmcgZWFjaAogICAgYm9vdCwgaXQgaXMgdW5kZXNpcmFibGUgdG8gaGF2ZSBhIGxvbmcgZGVsYXkgd2hlbiB0aGUgVEZUUCBzZXJ2ZXIgaXMgbm90CiAgICBhdmFpbGFibGUuIFRodXMsIHRoaXMgY29tbWl0IG1ha2VzIHRoZSBzZXJ2ZXIgdGltZW91dCAoMS4pIGNvbmZpZ3VyYWJsZSBieSB0d28KICAgIGdsb2JhbCB2YXJpYWJsZXM6CgogICAgVGZ0cFJSUVRpbWVvdXRNU2VjcwogICAgVGZ0cFJSUVRpbWVvdXRDb3VudE1heAoKICAgIFRmdHBSUlFUaW1lb3V0TVNlY3Mgb3ZlcnJpZGVzIGRlZmF1bHQgdGltZW91dCB3aGVuIHRyeWluZyB0byBjb25uZWN0IHRvIGEgVEZUUAogICAgc2VydmVyLCBUZnRwUlJRVGltZW91dENvdW50TWF4IG92ZXJyaWRlcyBkZWZhdWx0IG51bWJlciBvZiBjb25uZWN0aW9uIHJldHJpZXMuCiAgICBUaGUgdG90YWwgZGVsYXkgd2hlbiB0cnlpbmcgdG8gZG93bmxvYWQgYSBmaWxlIGZyb20gYSBub24tZXhpc3RpbmcgVEZUUCBzZXJ2ZXIKICAgIGlzIFRmdHBSUlFUaW1lb3V0TVNlY3MgeCBUZnRwUlJRVGltZW91dENvdW50TWF4IG1pbGxpc2Vjb25kcy4KCiAgICBUaW1lb3V0cyBkdXJpbmcgZmlsZSB0cmFuc2ZlcnMgKDIuKSBhcmUgdW5hZmZlY3RlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBDenViYWsgPHJjekBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA0OWYzYmRiYmE4MDcxZjU2ZDk1MGE5NDk4YjZjZGI5OThiMzUzNDBhCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE9jdCAxIDE1OjI2OjI4IDIwMDggKzAyMDAKCiAgICBuZXQ6IGV4cHJlc3MgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIE5ldFNldFRpbWVvdXQoKSBpbiBtaWxsaXNlY29uZHMKCiAgICBFbmZvcmNlIG1pbGxpc2Vjb25kIHNlbWFudGljcyBvZiB0aGUgZmlyc3QgYXJndW1lbnQgdG8gTmV0U2V0VGltZW91dCgpIC0tCiAgICB0aGUgY2hhbmdlIGlzIHRyYW5zcGFyZW50IGZvciB3ZWxsLWJlaGF2aW5nIGJvYXJkcyAoQ0ZHX0haID09IDEwMDAgYW5kCiAgICBnZXRfdGltZXIoKSBjb3VudGlpbmcgaW4gbWlsbGlzZWNvbmRzKS4KCiAgICBSYXRpb25hbGUgZm9yIHRoaXMgcGF0Y2ggaXMgdG8gZW5hYmxlIG1pbGxpc2Vjb25kIGdyYW51bGFyaXR5IGZvcgogICAgbmV0d29yay1yZWxhdGVkIHRpbWVvdXRzLCB3aGljaCBpcyBuZWVkZWQgZm9yIHRoZSB1cGNvbWluZyBhdXRvbWF0aWMKICAgIHNvZnR3YXJlIHVwZGF0ZSBmZWF0dXJlLgoKICAgIFN1bW1hcnkgb2YgY2hhbmdlczoKICAgIC0gZG8gbm90IHNjYWxlIHRoZSBmaXJzdCBhcmd1bWVudCB0byBOZXRTZXRUaW1lb3V0KCkgYnkgQ0ZHX0haCiAgICAtIGNoYW5nZSB0aW1lb3V0IHZhbHVlcyB1c2VkIGluIHRoZSBuZXR3b3JraW5nIGNvZGUgdG8gbWlsbGlzZWNvbmRzCgogICAgU2lnbmVkLW9mZi1ieTogUmFmYWwgQ3p1YmFrIDxyY3pAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgYzY4YTA1ZmVlYjg4ZGU5ZmNmMTU4ZTY3ZmY2NDIzYzRjYzk4OGY4OApBdXRob3I6IHJpY2hhcmRyZXRhbnVidW4gPHJpY2hhcmRyZXRhbnVidW5AcnVnZ2VkY29tLmNvbT4KRGF0ZToJTW9uIFNlcCAyOSAxODoyODoyMyAyMDA4IC0wNDAwCgogICAgQWRkcyB0d28gbW9yZSBldGhlcm5ldCBpbnRlcmZhY2UgdG8gODN4eAoKICAgIEFkZGVkIGFzIGEgY29udmVuaWVuY2UgZm9yIG90aGVyIHBsYXRmb3JtcyB0aGF0IHVzZXMgTVBDODM2MCAoaGFzIDggVUNDKS4KICAgIFNpeCBldGggaW50ZXJmYWNlIGlzIGNob3NlbiBiZWNhdXNlIHRoZSBwbGF0Zm9ybSBJIGFtIHVzaW5nIGNvbWJpbmVzCiAgICBVQ0MxJjIgYW5kIFVDQzMmNCBhcyAxMDAwIEV0aCBhbmQgdGhlIG90aGVyIGZvdXIgVUNDcyBhcyAxMC8xMDAgRXRoLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2hhcmQgUmV0YW51YnVuIDxSaWNoYXJkUmV0YW51YnVuQFJ1Z2dnZWRDb20uY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA0MTQxMGVlZTQ3MmIwZjQyZTAzYTc3Zjk2MWJiYzU1ZWY1OGYzYzAxCkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIFNlcCAyNCAxMTo0MjoxMiAyMDA4IC0wNTAwCgogICAgQ2hhbmdlIFVFQyBQSFkgaW50ZXJmYWNlIHRvIFJHTUlJIG9uIE1QQzg1NjhNRFMKCiAgICBDaGFuZ2UgVUVDIHBoeSBpbnRlcmZhY2UgZnJvbSBHTUlJIHRvIFJHTUlJIG9uIE1QQzg1NjhNRFMgYm9hcmQKCiAgICBCZWNhdXNlIG9uIE1QQzg1NjhNRFMsIEdNSUkgaW50ZXJmYWNlIGlzIG9ubHkgcmVjb21tZW5kZWQgZm9yIDEwMDBNYnBzIHNwZWVkLAogICAgYnV0IFJHTUlJIGludGVyZmFjZSBjYW4gd29yayBhdCAxMC8xMDAvMTAwME1icHMsIGFuZCBSR01JSSBpbnRlcmZhY2Ugd29ya3MgbW9yZSBzdGFibGUuCgogICAgTm93IGJvdGggVUVDMSBhbmQgVUVDMiBjYW4gd29yayBwcm9wZXJseSB1bmRlciB1LWJvb3QuCgogICAgSXQgaXMgYWxzbyBpbiBjb25zaXN0ZW50IHdpdGggdGhlIGtlcm5lbCBzZXR0aW5nIGZvciA4NTY4IFVFQyBwaHkgaW50ZXJmYWNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGI1OWIxNmNhMjRiYzdlNzdlYzExMzAyMWE2ZDc3YjliMzJmY2YxOTIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDE4IDIxOjMwOjMxIDIwMDggKzAyMDAKCiAgICBQcmVwYXJlIHYyMDA4LjEwIHJlbGVhc2U6IHVwZGF0ZSBDSEFOR0VMT0cgJiBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZjdhMzVhNjBjZjQ1NDkxODcxYTVjMjhlOWFkMjRkYjAwNTQ4Nzg1NwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglGcmkgT2N0IDE3IDE4OjI0OjA2IDIwMDggKzAyMDAKCiAgICBtZ2NvZ2U6IGFkZCByZWR1bmRhbnQgZW52aXJvbm1lbnQgc2VjdG9yCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGMyNTM3ZWU4NTk1NGFmOWQwMzZiMThiNjQ0ZjNlMThkODM3YmY0YTUKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJRnJpIE9jdCAxNyAxODoyMzoyNyAyMDA4ICswMjAwCgogICAgbWdzdXZkOiB1cGRhdGUgc2l6ZSBvZiBlbnZpcm9ubWVudAoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGZhN2IxYzA3ZTkzNzFhZWE4Zjg3ZWU2ZDNjMmVhNTU2NGJkOGNjOGQKQXV0aG9yOiBMZXBjaGEgU3VjaGl0IDxTdWNoaXQuTGVwY2hhQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMTYgMTM6Mzg6MDAgMjAwOCAtMDUwMAoKICAgIDgzeHggTkFORCBib290OiB3YWl0IGZvciBMVEVTUltDQ10KCiAgICBBdCBsZWFzdCBzb21lIHJldmlzaW9ucyBvZiB0aGUgODMxMywgYW5kIHBvc3NpYmx5IG90aGVyIGNoaXBzLCBkbyBub3QKICAgIHdhaXQgZm9yIGFsbCBwYWdlcyBvZiB0aGUgaW5pdGlhbCA0SyBOQU5EIHJlZ2lvbiB0byBiZSBsb2FkZWQgYmVmb3JlCiAgICBiZWdpbm5pbmcgZXhlY3V0aW9uOyB0aHVzLCB3ZSB3YWl0IGZvciBpdCBiZWZvcmUgYnJhbmNoaW5nIG91dCBvZiB0aGUKICAgIGZpcnN0IE5BTkQgcGFnZS4KCiAgICBUaGlzIGZpeGVzIHdhcm0gcmVzZXQgcHJvYmxlbXMgd2hlbiBib290aW5nIGZyb20gTkFORCBvbiA4MzEzZXJkYi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJmMjllMGVhMGFmMDNkNTkzYzY0NjE0MTM2YWNjNzIzYTdhMDIyYTIKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CkRhdGU6CUZyaSBPY3QgMTcgMTI6NTQ6MTggMjAwOCArMDIwMAoKICAgIHBwYzR4eDogUFBDNDR4IE1RIGluaXRpYWxpemF0aW9uCgogICAgU2V0IHRoZSBNUSBSZWFkIFBhc3NpbmcgJiBNQ0lGIEN5Y2xlIGxpbWl0cyB0byB0aGUgcmVjb21tZW5kZWQgYnkgQU1DQwogICAgdmFsdWVzLiBUaGlzIGZpeGVzIHRoZSBvY2Nhc2lvbmFsIDQ0MFNQZSBoYXJkIGxvY2tpbmcgaXNzdWVzIHdoZW4gdGhlIDQ0MFNQZSdzCiAgICBkZWRpY2F0ZWQgRE1BIGVuZ2luZXMgYXJlIHVzZWQgKGUuZy4gYnkgdGhlIGgvdyBhY2NlbGVyYXRlZCBSQUlEIGRyaXZlcikuCgogICAgUHJldmlvdXNseSB0aGUgYXBwcm9wcmlhdGUgaW5pdGlhbGl6YXRpb24gaGFkIGJlZW4gbWFkZSBpbiBMaW51eCwgYnkgdGhlCiAgICBwcGM0NDBzcGUgQURNQSBkcml2ZXIsIHdoaWNoIGlzIHdyb25nIGJlY2F1c2UgbW9kaWZ5aW5nIHRoZSBNUSBjb25maWd1cmF0aW9uCiAgICByZWdpc3RlcnMgYWZ0ZXIgbm9ybWFsIG9wZXJhdGlvbiBoYXMgYmVndW4gaXMgbm90IHN1cHBvcnRlZCBhbmQgY291bGQKICAgIGhhdmUgdW5wcmVkaWN0YWJsZSByZXN1bHRzLgoKICAgIENvbW1lbnQgZnJvbSBTdGVmYW46IFRoaXMgcGF0Y2ggZG9lc24ndCBjaGFuZ2UgdGhlIHJlc3VsdGluZyB2YWx1ZSBvZiB0aGUKICAgIE1RIHJlZ2lzdGVycy4gSXQgZXhwbGljaXRseSBzZXRzL2NsZWFycyBhbGwgYml0cyB0byB0aGUgZGVzaXJlZCBzdGF0ZSB3aGljaAogICAgYmV0dGVyIGRvY3VtZW50cyB0aGUgcmVzdWx0aW5nIHJlZ2lzdGVyIHZhbHVlIGluc3RlYWQgb2YgcmVseWluZyBvbiBwcmUtc2V0CiAgICBkZWZhdWx0IHZhbHVlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWMwODFjMmMxOTAxNDhiMzc0ZTg2YTc5NWZiNmIxYzQ5Y2FlYjU0OQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE9jdCAxNyAxMjo1MTo0NiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBQUEM0NHggTVEgaW5pdGlhbGl6YXRpb24KCiAgICBTZXQgdGhlIE1RIFJlYWQgUGFzc2luZyAmIE1DSUYgQ3ljbGUgbGltaXRzIHRvIHRoZSByZWNvbW1lbmRlZCBieSBBTUNDCiAgICB2YWx1ZXMuIFRoaXMgZml4ZXMgdGhlIG9jY2FzaW9uYWwgNDQwU1BlIGhhcmQgbG9ja2luZyBpc3N1ZXMgd2hlbiB0aGUgNDQwU1BlJ3MKICAgIGRlZGljYXRlZCBETUEgZW5naW5lcyBhcmUgdXNlZCAoZS5nLiBieSB0aGUgaC93IGFjY2VsZXJhdGVkIFJBSUQgZHJpdmVyKS4KCiAgICBQcmV2aW91c2x5IHRoZSBhcHByb3ByaWF0ZSBpbml0aWFsaXphdGlvbiBoYWQgYmVlbiBtYWRlIGluIExpbnV4LCBieSB0aGUKICAgIHBwYzQ0MHNwZSBBRE1BIGRyaXZlciwgd2hpY2ggaXMgd3JvbmcgYmVjYXVzZSBtb2RpZnlpbmcgdGhlIE1RIGNvbmZpZ3VyYXRpb24KICAgIHJlZ2lzdGVycyBhZnRlciBub3JtYWwgb3BlcmF0aW9uIGhhcyBiZWd1biBpcyBub3Qgc3VwcG9ydGVkIGFuZCBjb3VsZAogICAgaGF2ZSB1bnByZWRpY3RhYmxlIHJlc3VsdHMuCgogICAgQ29tbWVudCBmcm9tIFN0ZWZhbjogVGhpcyBwYXRjaCBkb2Vzbid0IGNoYW5nZSB0aGUgcmVzdWx0aW5nIHZhbHVlIG9mIHRoZQogICAgTVEgcmVnaXN0ZXJzLiBJdCBleHBsaWNpdGx5IHNldHMvY2xlYXJzIGFsbCBiaXRzIHRvIHRoZSBkZXNpcmVkIHN0YXRlIHdoaWNoCiAgICBiZXR0ZXIgZG9jdW1lbnRzIHRoZSByZXN1bHRpbmcgcmVnaXN0ZXIgdmFsdWUgaW5zdGVhZCBvZiByZWx5aW5nIG9uIHByZS1zZXQKICAgIGRlZmF1bHQgdmFsdWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmN2QxOTBiMWMwYjNhYjdmYzUzMDc0YWQyODYyZjdkZTk5ZGUzN2ZmCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE9jdCAxNiAyMTo1ODo1MCAyMDA4IC0wNTAwCgogICAgODV4eDogVXNpbmcgcHJvcGVyIEkyQyBzb3VyY2UgY2xvY2sgZGl2aWRlciBmb3IgTVBDODU0NAoKICAgIFRoZSBNUEM4NTQ0IFJNIGluY29ycmVjdCBzaG93cyB0aGUgU0VDX0NGRyBiaXQgaW4gUE9SREVWU1IyIGFzIGJlaW5nCiAgICBiaXQgMjYsIGluc3RlYWQgaXQgc2hvdWxkIGJlIGJpdCAyOC4gIFRoaXMgY2F1c2VkIGluIGluY29ycmVjdAogICAgaW50ZXJwcmV0YXRpb24gb2YgdGhlIGkyY19jbGsgd2hpY2ggaXMgdGhlIHNhbWUgYXMgdGhlIFNFQyBjbGsgb24KICAgIE1QQzg1NDQuICBUaGUgU0VDIGNsayBpcyBjb250cm9sbGVkIGJ5IGNmZ19zZWNfZnJlcSB0aGF0IGlzIHJlcG9ydGVkCiAgICBpbiBQT1JERVZTUjIuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA0MjY1M2I4MjZhZGIzMTlhMWRmMDZlMjRlZjI2MDk2YjJhNWQ5ZDJhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE9jdCAxNiAyMTo1ODo0OSAyMDA4IC0wNTAwCgogICAgUmV2ZXJ0ICI4NXh4OiBVc2luZyBwcm9wZXIgSTJDIHNvdXJjZSBjbG9jayBkaXZpZGVyIGZvciBNUEM4NTQ0IgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZGZmZDI0NDZmYjA0MWYzOGVmMDM0YjBmY2Y0MWU1MWU1ZTQ4OTE1OS4KCiAgICBUaGUgZml4IGludHJvZHVjZWQgYnkgdGhpcyBwYXRjaCBpcyBub3QgY29ycmVjdC4gIFRoZSBwcm9ibGVtIGlzCiAgICB0aGF0IHRoZSBkb2N1bWVudGF0aW9uIGlzIG5vdCBjb3JyZWN0IGZvciB0aGUgTVBDODU0NCB3aXRoIHJlZ2FyZHMKICAgIHRvIHdoaWNoIGJpdCBpbiBQT1JERVZTUjIgaXMgZm9yIHRoZSBTRUNfQ0ZHLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMjE3OWM0NzY2YmZmZWVjZTk4ZTVlOTIwNDA2MjlhOTZjOTdlMjMwYwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBPY3QgMTUgMTA6MTk6NDEgMjAwOCAtMDUwMAoKICAgIDg1eHg6IEZpeCBjb21waWxlIHdhcm5pbmcKCiAgICBtcGM4NTM2ZHMuYzogSW4gZnVuY3Rpb24gJ2lzX3NhdGFfc3VwcG9ydGVkJzoKICAgIG1wYzg1MzZkcy5jOjYxNDogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdkZXZkaXNyJwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgOTAyOWI2OGYzZjgxYjMwMTMwNDRmMTY3ZWEwMjVlODM2ZTZjOGMwZQpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBPY3QgMTUgMTA6NDA6MjQgMjAwOCArMDgwMAoKICAgIEZpeCB0aGUgZnVuY3Rpb24gY29uZmxpY3QgaW4geDg2ZW11IHdoZW4gREVCVUcgaXMgb24KCiAgICBUaGUgZnVuY3Rpb24gcGFyc2VfbGluZSgpIGluIGNvbW1vbi9tYWluLmMgd2FzIGV4cG9zZWQgZ2xvYmFsbHkgYnkgY29tbWl0CiAgICA2NjM2YjYyYTZlZmM3ZjE0ZTZlNzg4Nzg4NjMxYWU3YTdmY2E0NTM3LCBSZXN1bHQgaW4gY29uZmxpY3Qgd2l0aCB0aGUgc2FtZQogICAgbmFtZSBmdW5jaXRvbiBpbiBkcml2ZXJzL2Jpb3NfZW11bGF0b3IveDg2ZW11L2RlYnVnLmMgd2hlbiBkZWZpbmUgdGhlIERFQlVHLgogICAgVGhpcyBwYXRjaCBmaXggdGhpcyBieSByZW5hbWluZyB0aGUgZnVuY3Rpb24gaW4gdGhlIGRlYnVnLmMgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI0ZGJhY2Y2OWE2NjlhMTc0ODcwNTQ1NTJmYzI3NjExNDlkZDY3NjcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgT2N0IDE1IDE1OjUwOjQ1IDIwMDggKzAyMDAKCiAgICBDb2RpbmcgU3R5bGUgY2xlYW51cCwgdXBkYXRlIENIQU5HRUxPRywgcHJlcGFyZSAyMDA4LjEwLXJjMwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMzc0YjkwMzgyOTNkMDFkODc0NGE0NmFmOWI3ODU0YTZmZDk5YjIyOApBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglXZWQgT2N0IDE1IDA5OjUxOjE5IDIwMDggKzAyMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZyBpbiBsaWJfcHBjL2JvYXJkLmMKCiAgICBGaXggY29tcGlsZXIgd2FybmluZyBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCAwZjhjYmMxOAoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA5NzI0NTU1NzU1YTZmMTA2NjYzNjQ4MWI0MWY3MDk0ZTBjZTkzYTY5CkF1dGhvcjogU2VsdmFtdXRodWt1bWFyIDxzZWx2YS5tdXRodWt1bWFyQGUtY29uaW5mb3RlY2guY29tPgpEYXRlOglUaHUgT2N0IDkgMTA6Mjk6MTQgMjAwOCArMDUzMAoKICAgIG1wYzgzeHg6IHdhaXQgdGlsbCBVUE0gY29tcGxldGVzIHRoZSB3cml0ZSB0byBhcnJheQoKICAgIFJlZmVyZW5jZSBtYW51YWwgc3RhdGVzIHRoYXQgTXhNUltNQURdIGluY3JlbWVudCBpcyB0aGUgaW5kaWNhdGlvbgogICAgb2Ygd3JpdGUgdG8gVVBNIGFycmF5IGlzIGNvbXBsZXRlLiBIb25vdXIgdGhhdC4gQWxzbywgbWFrZSB0aGUgZHVtbXkKICAgIHdyaXRlIGV4cGxpY2l0LgoKICAgIGFsc28gZml4IHRoZSBjb21tZW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IFNlbHZhbXV0aHVrdW1hciA8c2VsdmEubXV0aHVrdW1hckBlLWNvbmluZm90ZWNoLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDNlMmRiYjE4ZTg1OGUyZjdhNmFhYTQzN2YyOTBmMzY5MGQwMmQ1MQpBdXRob3I6IFNlbHZhbXV0aHVrdW1hciA8c2VsdmEubXV0aHVrdW1hckBlLWNvbmluZm90ZWNoLmNvbT4KRGF0ZToJV2VkIE9jdCA4IDE4OjEyOjIwIDIwMDggLTA1MDAKCiAgICBSZW1vdmUgdW53YW50ZWQgJzsnIGF0IGVuZCBvZiBkZWZpbmUuCgogICAgQ3VycmVudGx5IHRoaXMgaXMgbm90IGNyZWF0aW5nIGFueSBwcm9ibGVtLiBCdXQgaXQgd2lsbCByZXN1bHQKICAgIGluIGNvbXBpbGF0aW9uIGVycm9yIHdoZW4gdXNlZCBhcyBiZWxvdy4KCiAgICBwcmludGYoIkNGR19TRFJBTV9DRkcyIC0gJTA4eFxuIiwgQ0ZHX1NEUkFNX0NGRzIpOwoKICAgIFNpZ25lZC1vZmYtYnk6IFNlbHZhbXV0aHVrdW1hciA8c2VsdmEubXV0aHVrdW1hckBlLWNvbmluZm90ZWNoLmNvbT4KCiAgICBjb250aW51YXRpb24gb2YgdGhlIHRoZW1lIGJhc2VkIG9uIGdpdCBncmVwICJeI2RlZmluZSBDRkdfLio7JCIgaW5jbHVkZS8KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIyOTM0YTU2NjUwZTlhNmM1NDQzMmY5Y2U2ZGMzNjc1Nzk2NzM4NWUKQXV0aG9yOiBIdWdvIFZpbGxlbmV1dmUgPGh1Z28udmlsbGVuZXV2ZUBseXJ0ZWNoLmNvbT4KRGF0ZToJTW9uIE9jdCA2IDEwOjUzOjU5IDIwMDggLTA0MDAKCiAgICBBUk0gRGFWaW5jaTogQWRkIG1haW50YWluZXIgaW5mb3JtYXRpb24gZm9yIFNGRlNEUiBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIdWdvIFZpbGxlbmV1dmUgPGh1Z28udmlsbGVuZXV2ZUBseXJ0ZWNoLmNvbT4KCmNvbW1pdCAxMmM2NjcwZjg3M2VkNjMyYzI2NGE2ZjNlOGJmMTI5N2Q1YzNkZGJjCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVNhdCBPY3QgNCAxOToyNjoxNiAyMDA4ICswMjAwCgogICAgYXBpOiBmaXggdHlwZSBtaXNtYXRjaAoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSB0eXBlIG1pc21hdGNoIGFuZCB0aHVzIHJlbW92ZXMgYSBjb21waWxlcgogICAgd2FybmluZyB3aGVuIGNvbXBpbGluZyB3aXRoIENPTkZJR19BUEkgb24gcG93ZXJwYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA5YmMyZTRlZWUzYmNiOGU2Mzg0N2Q3YTczM2UwYzYwNzgwN2Q2MTQxCkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJV2VkIE9jdCAxIDEyOjI1OjA0IDIwMDggLTA1MDAKCiAgICBjbWRfaTJjOiBGaXggaGVscCBmb3IgQ09ORklHX0kyQ19DTURfVFJFRSAmJiAhQ09ORklHX0kyQ19NVUxUSV9CVVMKCiAgICBPcmlnaW5hbCBjb2RlIGRpc3BsYXllZDoKICAgICA9PiBoZWxwIGkyYwogICAgIGkyYyBpMmMgc3BlZWQgW3NwZWVkXSAtIHNob3cgb3Igc2V0IEkyQyBidXMgc3BlZWQKICAgICBpMmMgbWQgY2hpcCBhZGRyZXNzWy4wLCAuMSwgLjJdIFsjIG9mIG9iamVjdHNdIC0gcmVhZCBmcm9tIEkyQyBkZXZpY2UKICAgICAuLi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IGEwYjFiNjEwZTk4MGUyNTNkNGMyNTE5ZWUxNWJkMDkzN2MzZjhiZTEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgT2N0IDE0IDIyOjEzOjQxIDIwMDggKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAwZjhjYmMxODI5ZDljN2Q5NjE2ZmQyOWIzNjZhOTlkMDM3ZmFjZGNkCkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAxMCAxMTo0MTowMSAyMDA4ICswODAwCgogICAgRG8gbm90IGluaXQgU0FUQSB3aGVuIGRpc2FibGVkIG9uIDg1MzZEUy4KCiAgICBTR01JSSBhbmQgU0FUQSBzaGFyZSB0aGUgc2VyZGVzIG9uIE1QQzg1MzYgQ1BVLCBXaGVuIFNBVEEgZGlzYWJsZWQgYW5kIHRoZQogICAgZHJpdmVyIHN0aWxsIHRyeSB0byBhY2Nlc3MgdGhlIFNBVEEgcmVnaXN0ZXJzLCB0aGUgY3B1IHdpbGwgaGFuZ3VwLgogICAgVGhpcyBwYXRjaCB0cnkgdG8gZml4IHRoaXMgYnkgcmVhZGluZyB0aGUgc2VyZGVzIHN0YXR1cyBiZWZvcmUgdGhlIFNBVEEKICAgIGluaXRpYWxpemUuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOWRiYzM2Njc0NDk2MDAxMzk2NWZjZTg4NTEwMzViNjE0MWYzYjNhZQpBdXRob3I6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgpEYXRlOglGcmkgT2N0IDEwIDEwOjIzOjIyIDIwMDggKzAyMDAKCiAgICBUaGUgUElQRV9JTlRFUlJVUFQgZmxhZyBpcyB1c2VkIHdyb25nCgogICAgQXQgYSBsb3Qgb2YgcGxhY2VzIGluIHRoZSBjb2RlIHRoZSBQSVBFX0lOVEVSUlVQVCBmbGFncyBhbmQgZnJpZW5kcwogICAgYXJlIHVzZWQgd3JvbmcuIFRoZSB3cm9uZyBiaXRzIGFyZSBjb21wYXJlZCB0byB0aGlzIGZsYWcgcmVzdWx0aW5nCiAgICBpbiB3cm9uZyBjb25kaXRpb25zLiBBbHNvIHRoZXJlIGFyZSBtYWNyb3MgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IKICAgIFBJUEVfKiBmbGFncy4KICAgIFRoaXMgcGF0Y2ggdHJpZXMgdG8gZml4IHRoZW0gYWxsLCBob3dldmVyLCBJIHdhcyBub3QgYWJsZSB0byB0ZXN0IHRoZQogICAgY2hhbmdlcywgYmVjYXVzZSBJIGRvIG5vdCBoYXZlIGFueSBvZiB0aGVzZSBib2FyZHMuCgogICAgUmV2aWV3IHJlcXVpcmVkIQoKICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCA0ODg2NzIwODQ0NGNiMmE4MmUyYWY5YzMyNDllOTBiN2VkNGExNzUxCkF1dGhvcjogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CkRhdGU6CUZyaSBPY3QgMTAgMTA6MjM6MjEgMjAwOCArMDIwMAoKICAgIGZpeCBVU0IgaW5pdGlhbGlzYXRpb24gcHJvY2VkdXJlCgogICAgVGhlIG1heCBwYWNrZXQgc2l6ZSBpcyBlbmNvZGVkIGFzIDAsMSwyLDMgZm9yIDgsMTYsMzIsNjQgYnl0ZXMuCiAgICBBdCBzb21lIHBsYWNlcyBkaXJlY3RseSA4LDE2LDMyLDY0IHdhcyB1c2VkIGluc3RlYWQgb2YgdGhlIGVuY29kZWQKICAgIHZhbHVlLiBNYWRlIGEgZW51bSBmb3IgdGhlIG9wdGlvbnMgdG8gbWFrZSB0aGlzIG1vcmUgY2xlYXIgYW5kIHRvIGhlbHAKICAgIHByZXZlbnRpbmcgc2ltaWxhciBlcnJvcnMgaW4gdGhlIGZ1dHVyZS4KCiAgICBBZnRlciBmaXhpbmcgdGhpcyBidWcgaXQgYmVjYW1lIGNsZWFyIHRoYXQgYW5vdGhlciBidWcgZXhpc3RlZCB3aGVyZQogICAgdGhlICdwaXBlJyBpcyBhbmQtZWQgd2l0aCBQSVBFXyogZmxhZ3MsIHdoZXJlIGl0IHNob3VsZCBoYXZlIGJlZW4KICAgICd1c2JfcGlwZXR5cGUocGlwZSknLCBvciBldmVuIGJldHRlciB1c2JfcGlwZWludChwaXBlKS4KCiAgICBBbHNvIHJlbW92ZWQgdGhlIHRyaXBsZSAnZ2V0X2RldmljZV9kZXNjcmlwdG9yJyBzZXF1ZW5jZSwgaXQgaGFzIG5vIHVzZSwKICAgIGFuZCBXaW5kb3dzIG5vciBMaW51eCBiZWhhdmVzIHRoYXQgd2F5LgogICAgVGhlcmUgaXMgYWxzbyBhIHBvbGwgZ29pbmcgb24gd2l0aCBhIHRpbWVvdXQgd2hlbiB1c2JfY29udHJvbF9tc2coKSBmYWlscy4KICAgIEhvd2V2ZXIsIHRoZSBwb2xsIGlzIHVzZWxlc3MsIGJlY2F1c2UgdGhlIGZsYWcgd2lsbCBuZXZlciBiZSBzZXQgb24gYSBlcnJvciwKICAgIGJlY2F1c2UgdGhlcmUgaXMgbm8gY29kZSB0aGF0IHJ1bnMgaW4gYSBwYXJhbGxlbCB0aGF0IGNhbiBzZXQgdGhpcyBmbGFnLgogICAgQ2hhbmdlZCB0aGlzIHRvIHNvbWV0aGluZyBtb3JlIGxvZ2ljYWwuCgogICAgVGVzdGVkIG9uIEFUOTFTQU05MjYxZWsgYW5kIGNvbXBhcmVkIHRoZSBmbG93IG9uIHRoZSBVU0IgYnVzIHRvIHdoYXQKICAgIExpbnV4IGlzIGRvaW5nLiBUaGVyZSBpcyBubyBkaWZmZXJlbmNlIGFueW1vcmUgaW4gdGhlIGVhcmx5IGluaXRpYWxpc2F0aW9uCiAgICBzZXF1ZW5jZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgZWM0ZDhjMWMxZDk0YTc5MGMxNDczYWU4YWFjZTI4MmI4MTdjMzEyMwpBdXRob3I6IE5pa2l0YSBWLiBZb3VzaGNoZW5rbyA8eW91c2hAY3MubXN1LnN1PgpEYXRlOglGcmkgT2N0IDMgMDA6MDM6NTUgMjAwOCArMDQwMAoKICAgIGZzbF9kaXU6IGZpeCBhbGlnbm1lbnQgZXJyb3IgdGhhdCBjYXVzZWQgbWFsbG9jIGNvcnJ1cHRpb24KCiAgICBXaGVuIGFsaWduaW5nIG1hbGxvYygpZWQgc2NyZWVuX2Jhc2UsIGludmFsaWQgb2Zmc2V0IHdhcyBhZGRlZC4KICAgIFRoaXMgbm90IG9ubHkgY2F1c2VkIG1pc2FsaWduZWQgcmVzdWx0ICh3aGljaCBkaWQgbm90IGNhdXNlIGhhcmR3YXJlCiAgICBtaXNiZWhhdmlvdXIpLCBidXQgLSB3b3JzZSAtIGNhdXNlZCBzY3JlZW5fYmFzZSArIHNtZW1fbGVuIHRvCiAgICBiZSBvdXQgb2YgbWFsbG9jKCllZCBzcGFjZSwgd2hpY2ggaW4gdHVybiBjYXVzZWQgYnJlYWthZ2Ugb2YKICAgIGZ1dGhlciBtYWxsb2MoKS9mcmVlKCkgb3BlcmF0aW9uLgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgc2NyZWVuX2Jhc2UgYWxpZ25tZW50LgoKICAgIEFsc28gdGhpcyBwYXRjaCBtYWtlcyBtZW1zZXQoKSB0aGF0IGNsZWFucyBmcmFtZWJ1ZmZlciB0byBiZSBleGVjdXRlZAogICAgb24gZmlyc3QgaW5pdGlhbGl6YXRpb24gb2YgZGl1LCBub3Qgb25seSBvbiByZS1pbml0aWFsaXphdGlvbi4gSXQgbG9va3MKICAgIGNvcnJlY3QgdG8gY2xlYW4gdGhlIGZyYW1lYnVmZmVyIGluc3RlYWQgb2YgZGlzcGxheWluZyByYW5kb20gZ2FyYmFnZTsKICAgIEkgYmVsaWV2ZSB0aGF0IHdhcyBkaXNhYmxlZCBvbmx5IGJlY2F1c2UgdGhhdCBtZW1zZXQgY2F1c2VkIGJyZWFrYWdlCiAgICBvZiBtYWxsb2MvZnJlZSBkZXNjcmliZWQgYWJvdmUgLSB3aGljaCBubyBsb25nZXIgaGFwcGVucyB3aXRoIHRoZSBmaXgKICAgIGRlc2NyaWJlZCBhYm92ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtpdGEgVi4gWW91c2hjaGVua28gPHlvdXNoQGRlYmlhbi5vcmc+Cgpjb21taXQgM2QwZWEzMTEwZjM0MzFiNmMyYWVlODgyNzg0ZjM5Zjk3YjIwYmNlOQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglXZWQgU2VwIDI0IDEwOjI5OjM3IDIwMDggKzAyMDAKCiAgICBhcGk6IEZpeCBidWlsZGluZyB3aXRoIENPTkZJR19BUEkKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGJ1aWxkaW5nIHdpdGggQ09ORklHX0FQSSBhbmQgQ09ORklHX1VTQl9TVE9SQUdFLgoKICAgIFVTQl9NQVhfU1RPUl9ERVYgaXMgZGVmaW5lZCBpbiBpbmNsdWRlL3VzYi5oLCBidXQKICAgIG5lZWRlZCBpbiBhcGkvYXBpX3N0b3JhZ2UuYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBhYmJiOTA2NjZkNWVmMmY1MDBlYmJlZGJiODBmZjYwYWRjNTZiMDQzCkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJVHVlIFNlcCAyMyAxMjozOTo0MCAyMDA4IC0wNTAwCgogICAgUmVtb3ZlIHVudXNlZCBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfRU5BQkxFIHJlZmVyZW5jZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IDgxZTYxMjAxNGM0MGM5MjJlYzM1NDg4ZDE3YzUwNGQ0ZTkyODZmMDYKQXV0aG9yOiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgpEYXRlOglUdWUgU2VwIDIzIDEyOjM4OjQyIDIwMDggLTA1MDAKCiAgICBSZW1vdmUgQ0ZHX0VFUFJPTV9QQUdFKiBkZXBlbmRlbmNpZXMgZm9yIHRlbXBlcmF0dXJlIHNlbnNvcnMKCiAgICBUaGUgY2hlY2tzIGZvciBDRkdfRUVQUk9NX1BBR0VfV1JJVEVfRU5BQkxFIGFuZAogICAgQ0ZHX0VFUFJPTV9QQUdFX1dSSVRFX0JJVFMgaW4gdmFyaW91cyB0ZW1wZXJhdHVyZQogICAgc2Vuc29yIGRyaXZlcnMgYXJlIG5vdCBuZWNlc3NhcnkKCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IGM0Njk4MGY2ZDIxMzVhZGUzNDVkYWRjMWZiMWYxZjRjOGJiZjI1NWEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBPY3QgMTQgMDc6MDQ6MzggMjAwOCAtMDQwMAoKICAgIGNtZF9zcGk6IHJlbW92ZSBicm9rZW4gc2lnbmVkIGNhc3RpbmcgZm9yIGRpc3BsYXkKCiAgICBTaW5jZSB3ZSdyZSB3b3JraW5nIHdpdGggdW5zaWduZWQgZGF0YSwgeW91IGNhbid0IGFwcGx5IGEgc2lnbmVkIHBvaW50ZXIKICAgIGNhc3QgYW5kIHRoZW4gYXR0ZW1wdCB0byBwcmludCB0aGUgcmVzdWx0LglPdGhlcndpc2UgeW91IGdldCB3cm9uZyBvdXRwdXQKICAgIHdoZW4gdGhlIHNpZ24gYml0IGlzIHNldCBsaWtlICIweEZGIiBpbmNvcnJlY3RseSBleHRlbmRlZCB0byAiMHhGRkZGRkZGRiIuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGQ1ZmQwYjQ5MjEwYzk0MWRlOGExZmNlMzk0N2FjZTkyMjQzYWI1Y2EKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBPY3QgMTQgMDc6MDU6MjQgMjAwOCAtMDQwMAoKICAgIHN0cmluZ3MgY21kOiBkcm9wIG9sZCBDT05GSUdfQ0ZHX1NUUklOR1MgZGVmaW5lCgogICAgV2UgZG9uJ3QgbmVlZCBDT05GSUdfQ0ZHX1NUUklOR1MgYW55bW9yZSBub3cgdGhhdCB3ZSBoYXZlIHRoZSBkZWZpbmUKICAgIENPTkZJR19DTURfU1RSSU5HUyBhbmQgTWFrZWZpbGUgY29udHJvbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgZmVjYjVhZGUzYjM3ZjYyOTgxZjJiMDViNjIxMDA1ODUwMTczYWFhOQpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBTZXAgMTkgMTc6MzI6NDkgMjAwOCArMDgwMAoKICAgIEZpeCB0aGUgTkFORCBzaXplIG92ZXJmbG93IGlzc3VlLgoKICAgIFdoZW4gdGhlIHRvdGFsIHNpemUgb2YgYWxsIE5BTkQgZGV2aWNlcyBleGNlZWRzIDQgR2lCLCB0aGUgc2l6ZSAgd2lsbAogICAgb3ZlcmZsb3cuIFRoaXMgcGF0Y2ggdHJpZXMgdG8gZml4IHRoaXMuCgogICAgTm90ZSB0aGF0IHdlIHN0aWxsIGhhdmUgYSBwcm9ibGVtIHdoZW4gYSBzaW5nbGUgTkFORCBkZXZpY2UgaXMgYmlnZ2VyCiAgICB0aGFuIDQgR2lCOiB0aGVuIHRoZSBvdmVyZmxvdyB3b3VsZCBhY3R1YWxseSBoYXBwZW4gZWFybGllciwgaS4gZS4KICAgIHdoZW4gc3RvcmluZyB0aGUgc2l6ZSBpbiBuYW5kX2luZm9bXS5zaXplLCBhcyBuYW5kX2luZm9bXS5zaXplIGlzIGFuCiAgICAidV9pbnQzMl90Ii4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAzMGY1NzQ3MTcyNzcyMzhiOTAxNGI4MTM2YzkwZWVhNzcxOTY0OTBmCkF1dGhvcjogTG91aXMgU3UgPGxvdWlzQGFzaXguY29tLnR3PgpEYXRlOglXZWQgSnVsIDkgMTE6MDE6MzcgMjAwOCArMDgwMAoKICAgIEFYODgxODA6IG5ldyBnaWdhYml0IG5ldHdvcmsgZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogTG91aXMgU3UgPGxvdWlzQGFzaXguY29tLnR3PgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBjOWQ2YjY5MjUzNDQ3NDBjYTFkYjJmOGE2YmFiNzkyMWZmODIwZGUzCkF1dGhvcjogQW5kcmUgU2Nod2FyeiA8YW5kcmUuc2Nod2FyekBtYXRyaXgtdmlzaW9uLmRlPgpEYXRlOglUdWUgQXVnIDE5IDE2OjA3OjAzIDIwMDggKzAyMDAKCiAgICBlbmFibGUgMTAvMTAwTSBhdCBWU0M4NjAxIGF0IHRzZWMgZHJpdmVyCgogICAgQ3VycmVudGx5IFZTQzg2MDEgZG9lc24ndCBsaW5rIHdpdGggMTAvMTAwTSBwYXJ0bmVycyBpZiB0aGUKICAgIEVFUFJPTS9TdHJhcHBpbmcgaXMgbm90IHNldCB1cC4KICAgIFNldHRpbmcgdGhlIGF1dG8tbmVnIHJlZ2lzdGVyIGZpeGVzIHRoaXMuCgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmUgU2Nod2FyeiA8YW5kcmUuc2Nod2FyekBtYXRyaXgtdmlzaW9uLmRlPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA3MDJjODViMGU4NzZkNTg3YzExYWNkYmI1NTczOGVlNTJhY2Q1NGY0CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgpEYXRlOglUdWUgU2VwIDMwIDE1OjAyOjUzIDIwMDggKzA5MDAKCiAgICBuZXQ6IG5lMjAwMDogRGl2aWRlZCBhIGZ1bmN0aW9uIG9mIE5FMjAwMCBkcml2ZXIKCiAgICBnZXRfcHJvbSBmdW5jdGlvbiB3YXMgdXNlZCBfX2F0dHJpdXRlX18gLCBidXQgaXQgaXMgbm90IGVuYWJsZS4KICAgIGF4ODg3OTYubyBkb2VzIG5vdCBkbyBsaW5rIGJlc2lkZXMgbmUyMDAwLm8uIFdoZW4gbGQgaXMgY2FycmllZAogICAgb3V0LCBnZXRfcHJvbSBmdW5jdGlvbiBvZiBheDg4Nzk2LmMgaXMgaWdub3JlZC4KICAgIFRoaXMgcHJvYmxlbSBpcyBhIHRoaW5nIGJ5IHNwZWNpZmljYXRpb25zIG9mIGxkLgogICAgSSBjaGVja2VkIGFuZCB0ZXN0IHRoaXMgcGF0Y2ggb24gU3VwZXJIIGFuZCBNSVBTLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgMDVjN2U5MDcwZmU0ZDc1MWUwMjlmZDk1MjRiZmJiYzkzY2JiMTM5MwpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJVHVlIE9jdCAxNCAxMToxMDo1OSAyMDA4ICswOTAwCgogICAgc2g6IHJzazcyMDM6IEFkZCBzbWM5MTF4IGRyaXZlciBzdXBwb3J0IHRvIGJvYXJkIGNvbmZpZyBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGNhZTZmOTA5YmFmODYzNTdiM2MwYmQwMWFjZmM0MTQzNDhjNGQxNzUKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVRodSBPY3QgOSAxMzo1NDozMyAyMDA4ICswOTAwCgogICAgc2g6IEZpeCBjYW5ub3QgZXhlY3V0ZSBhIHN0YW5kLWFsb25lIGFwcGxpY2F0aW9uCgogICAgQWRkcmVzcyBjYWxjdWxhdGVkIGluIEVYUE9SVF9GVU5DIGluIFN1cGVySCB3YXMgd3JvbmcsIEkgcmV2aXNlZCBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNmRmMGVmZDVjODZjYTE2ODlkZWViMjczOGI0NmI3ZDgzY2UyMjhlZgpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBPY3QgOCAyMzozODowMCAyMDA4IC0wNTAwCgogICAgZnNsX3BjaV9pbml0IGRvIG5vdCBzY2FuIGJ1cyB3aGVuIGNvbmZpZ3VyZWQgYXMgYW4gZW5kLXBvaW50CgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmYwOTliYmFjMWJhNWRmYjQ2ZWU3YWQyOWRjNTM3MTNmMDUwMWJhNQpBdXRob3I6IEh1Z28gVmlsbGVuZXV2ZSA8aHVnby52aWxsZW5ldXZlQGx5cnRlY2guY29tPgpEYXRlOglUdWUgU2VwIDE2IDE3OjA3OjUzIDIwMDggLTA0MDAKCiAgICBBUk0gRGFWaW5jaTogUmVtb3ZlIHJlZHVuZGFudCBzZXR0aW5nIG9mIEdEX0ZMR19SRUxPQyBmb3Igc2Zmc2RyIGJvYXJkLgoKICAgIFRoaXMgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeSBub3cgdGhhdCB0aGUgR0RfRkxHX1JFTE9DIGZsYWcgaXMgc2V0IGZvcgogICAgYWxsIEFSTSBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogSHVnbyBWaWxsZW5ldXZlIDxodWdvLnZpbGxlbmV1dmVAbHlydGVjaC5jb20+Cgpjb21taXQgZDk3N2E1NzM1NjY1N2JhMjQxMjU2MjMxZWZjYTMyODI4YTU4MjJmOQpBdXRob3I6IEx1aWdpICdDb21pbycgTWFudGVsbGluaSA8bHVpZ2kubWFudGVsbGluaUBpZGYtaGl0LmNvbT4KRGF0ZToJU2F0IFNlcCAxMyAxMDowNDozMiAyMDA4ICswMjAwCgogICAgRml4IGx6bWEgdW5jb21wcmVzcyBjYWxsIChpbWFnZV9zdGFydCB3cm9uZ2x5IHVzZWQgaW5zdGVhZCBpbWFnZV9sZW4pCgogICAgU2lnbmVkLW9mZi1ieTogTHVpZ2kgJ0NvbWlvJyBNYW50ZWxsaW5pIDxsdWlnaS5tYW50ZWxsaW5pQGlkZi1oaXQuY29tPgoKY29tbWl0IDM5MjQzODQwNjA0MTQxNWZlNjRhYjg3NDhlYzVhYjVhZDAxZDFjZjcKQXV0aG9yOiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAyOCAxNDowOToxNSAyMDA4IC0wNzAwCgogICAgbXBjODZ4eDogdXNlIHI0IGluc3RlYWQgb2YgcjIgaW4gbG9ja19yYW1faW5fY2FjaGUgYW5kIHVubG9ja19yYW1faW5fY2FjaGUKCiAgICBUaGlzIGlzIG5lZWRlZCBpbiB1bmxvY2tfcmFtX2luX2NhY2hlKCkgYmVjYXVzZSBpdCBpcyBjYWxsZWQgZnJvbSBDIGFuZAogICAgd2lsbCBjb3JydXB0IHRoZSBzbWFsbCBkYXRhIGFyZWEgYW5jaG9yIHRoYXQgaXMga2VwdCBpbiBSMi4KCiAgICBsb2NrX3JhbV9pbl9jYWNoZSgpIGlzIG1vZGlmaWVkIHNpbWlsYXJseSBhcyBnb29kIGNvZGluZyBwcmFjdGljZSwgYnV0CiAgICBpcyBub3QgY2FsbGVkIGZyb20gQy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1YzdjYmNkMzRkMGVlNTY2ODc1YTRmZDBmMmEzZTVhNjJiYmE5MjFjCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEF1ZyAxOSAxNTowNTozNCAyMDA4IC0wNTAwCgogICAgODZ4eDogcmVtb3ZlIHJlZHVkYW50IGNvZGUgd2l0aCBsaWJfcHBjL2ludGVycnVwdHMuYwoKICAgIEZvciBzb21lIHJlYXNvbiB3ZSBkdXBsaWNhdGVkIHRoZSBtYWpvcml0eSBvZiBjb2RlIGluIGxpYl9wcGMvaW50ZXJydXB0cy5jCiAgICBOb3Qga25vdyBob3cgdGhhdCBoYXBwZW5lZCwgYnV0IHRoZXJlIGlzIG5vIGdvb2QgcmVhc29uIGZvciBpdC4KCiAgICBVc2UgdGhlIGludGVycnVwdF9pbml0X2NwdSgpIGFuZCB0aW1lcl9pbnRlcnJ1cHRfY3B1KCkgc2luY2UgaXRzIHdoeQogICAgdGhleSBleGlzdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDBkMDFmNjZkMjM1MTE4NTE1YjUwODZiODhmODI0OThiYzA2OTVkNmEKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDkgMDE6MjY6MzYgMjAwOCAtMDUwMAoKICAgIENGSTogY2ZpX2ZsYXNoIHdyaXRlIGZpeCBmb3IgQU1EIGxlZ2FjeQoKICAgIFRoZSBmbGFzaF91bmxvY2tfc2VxIHJlcXVpcmVzIGEgc2VjdG9yIGZvciBBTURfTEVHQUNZLgogICAgRml4IGEgcmV0Y29kZSBjaGVjayB0eXBlby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDU0MmIzODVhNjIwYTE3ODM0NTRhMDA0MjQ5MzBlNTE4OTVmNDUwNzMKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIE9jdCA3IDEzOjEzOjEwIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBVU0IgMi4wIHBoeSByZXNldCBzZXF1ZW5jZQoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgVVNCIDIuMCBjb21tdW5pY2F0aW9uIGlzc3VlcyBvbiBzb21lIERVNDQwIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkZjhjMWNlMTExMTRjMjI2MGRlZGI1NTQ3MjgxOTQ1ZjdkYjhmYTVjCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBPY3QgNyAxMzoxMzowOSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBBZGQgc3RyYXBwaW5nIG1vZGUgZm9yIDY2N01IeiBDUFUgZnJlcXVlbmN5IG9uIERVNDQwIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmExMzNkNmEwMGIxZmM3YjkyNTdjZDU5MjVkOGNiNjdmNzVlY2RhMgpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUdWUgT2N0IDcgMTM6MTM6MDggMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRml4IERVNDQwIEdQSU8gY29uZmlndXJhdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM1ZGQwMjVjNzBmY2M0Mzg5MzE3ZGIyZjJhOWQxNDc5NTE3MjEzN2QKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIE9jdCA3IDEzOjEzOjA3IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBEVTQ0MCBjb25maWcKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmM2JmOTI3MzkzOWZmZTFhNjBhMzJhMmVlZjkwOTA5N2YxNWRmNTZiCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIE9jdCA4IDE1OjM2OjM5IDIwMDggLTA1MDAKCiAgICBNUEM4NTcyRFM6IEZpeCBjb21waWxlIHdhcm5pbmdzCgogICAgQ29tbWl0IDQ0NWE3YjM4MzA4ZWIwNWI0MWRlNzQxNjViMjA4NTVkYjU4YzdlZTUgaW50cm9kdWNlZCB0aGUgZm9sbG93aW5nCiAgICBjb21waWxlIHdhcm5pbmdzOgoKICAgIGNtZF9pMmMuYzoxMTI6IHdhcm5pbmc6IG1pc3NpbmcgYnJhY2VzIGFyb3VuZCBpbml0aWFsaXplcgogICAgY21kX2kyYy5jOjExMjogd2FybmluZzogKG5lYXIgaW5pdGlhbGl6YXRpb24gZm9yICdpMmNfbm9fcHJvYmVzWzBdJykKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGRmZmQyNDQ2ZmIwNDFmMzhlZjAzNGIwZmNmNDFlNTFlNWU0ODkxNTkKQXV0aG9yOiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KRGF0ZToJVHVlIFNlcCAzMCAxMDo1NTo1NyAyMDA4ICswMjAwCgogICAgODV4eDogVXNpbmcgcHJvcGVyIEkyQyBzb3VyY2UgY2xvY2sgZGl2aWRlciBmb3IgTVBDODU0NAoKICAgIE1lYXN1cmVtZW50cyB3aXRoIG91ciBNUEM4NTQ0IGJvYXJkIHNob3dlZCB0aGF0IHRoZSBJMkMgYnVzIGZyZXF1ZW5jeQogICAgaXMgd3JvbmcgYnkgYSBmYWN0b3Igb2YgMS41LiBPYnZpb3VzbHksIHRoZSBpbnRlcnByZXRhdGlvbiBvZiB0aGUKICAgIE1QQzg1eHhfUE9SREVWU1IyX1NFQ19DRkcgYml0IG9mIHRoZSBjZmdfc2VjX2ZyZXEgcmVnaXN0ZXIgaXMgbm90CiAgICBjb3JyZWN0LiBUaGVyZSBzZWVtcyB0byBiZSBhbiBlcnJvciBpbiB0aGUgODU0NCBSTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KCmNvbW1pdCBlNDZjN2JmYjhiYzNjMzA0Y2VkZDIwZjdhMzY1ZDZlNzhkN2VhZjE3CkF1dGhvcjogUmFmYWwgQ3p1YmFrIDxyY3pAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgT2N0IDggMTM6NDE6MzAgMjAwOCArMDIwMAoKICAgIEZTTDogRml4IGdldF9jcHVfYm9hcmRfcmV2aXNpb24oKSByZXR1cm4gdmFsdWUuCgogICAgZ2V0X2NwdV9ib2FyZF9yZXZpc2lvbigpIHJldHVybmVkIGJvYXJkIHJldmlzaW9uIGJhc2VkIG9uIGluZm9ybWF0aW9uIHN0b3JlZAogICAgaW4gZ2xvYmFsIHN0YXRpYyBzdHJ1Y3QgZWVwcm9tLiBJdCBzaG91bGQgaW5zdGVhZCB1c2Ugb25lIGZyb20gbG9jYWwgc3RydWN0CiAgICBib2FyZF9lZXByb20sIHRvIHdoaWNoIHRoZSBkYXRhIGlzIGFjdHVhbGx5IHJlYWQgZnJvbSBFRVBST00uIFRoZSBidWcgbGVkIHRvCiAgICBzeXN0ZW0gaGFuZyBhZnRlciBwcmludGluZyBMMSBjYWNoZSBpbmZvcm1hdGlvbiBvbiBVLUJvb3Qgc3RhcnR1cC4gVGhlIHByb2JsZW0KICAgIHdhcyBvYnNlcnZlZCBvbiBNUEM4NTU1Q0RTIHN5c3RlbSBhbmQgcG9zc2libHkgYWZmZWN0cyBvdGhlciBGcmVlc2NhbGUgTVBDODV4eAogICAgYm9hcmRzIHVzaW5nIENGR19JMkNfRUVQUk9NX0NDSUQuCgogICAgVGhlIGNoYW5nZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgdGVzdGVkIG9uIE1QQzg1NTVDRFMgc3lzdGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEN6dWJhayA8cmN6QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA3NDdmMzE2Y2NhNDg0ZWQ2MjdhOTdkZDMzOTFmZWJhYmNlMzg0MTg2CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIFNlcCAzMCAyMDowODo0OSAyMDA4ICswMjAwCgogICAgdXBkYXRlIHVJbWFnZSBGSVQgbXVsdGkgZG9jdW1lbnRhdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNzdhMDM1NWY2MGI4MDFmMjMyY2UwYTViZmJlOTUzMzFmYTNiNmJjMApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVR1ZSBTZXAgMzAgMjA6MDg6MzYgMjAwOCArMDIwMAoKICAgIG1vdmUgUkVBRE1FLmlteDMxIHRvIGRvYy8gYW5kIG1lcmdlIHdpdGggUkVBRE1FLm14MzEKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDFlZDdhN2YwZjU3MWIxM2Q0NjUzMGY4ZjhiOWFmZjM5NTdmMTVhOTYKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVRodSBTZXAgMjUgMjA6NTQ6MzcgMjAwOCArMDIwMAoKICAgIGkuTVgzMTogc3dpdGNoIHRvIENGR19IWj0xMDAwCgogICAgU3dpdGNoIHRvIHRoZSBzdGFuZGFyZCBDRkdfSFo9MTAwMCB2YWx1ZSwgd2hpbGUgYXQgaXQsIG1pbm9yIHdoaXRlLXNwYWNlCiAgICBjbGVhbnVwLCByZW1vdmUgQ0ZHX0NMS1NfSU5fSFogZnJvbSBjb25maWctaGVhZGVycy4gVGVzdGVkIG9uIG14MzFhZHMsCiAgICBwcm92aWRlcyAyJSBvciAwLjQlIHByZWNpc2lvbiBkZXBlbmRpbmcgb24gdGhlCiAgICBDT05GSUdfTVgzMV9USU1FUl9ISUdIX1BSRUNJU0lPTiBmbGFnLiBNZWFzdXJlZCB3aXRoIHN0b3Atd2F0Y2ggb24gMTAwcwogICAgYm9vdC1kZWxheS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgZjQxYjE0NGMxMTM0MWI1NzFlYWI3ZGNlZjZjNGI4ZTAzYzkyZDJiMgpBdXRob3I6IGdudXNlcmNuIDxnbnVzZXJjbkBnbWFpbC5jb20+CkRhdGU6CVdlZCBPY3QgOCAxODo1ODo1OCAyMDA4ICswMjAwCgogICAgRml4IGJ1ZzogaW4gYXJjaC1hcm0sIGVudl9nZXRfY2hhciBkb3NlIG5vdCB3b3JrIGZpbmUKCiAgICBkdWUgdG8gdGhlIGFybSBpbXBsZW1lbnRhdGlvbiB3aGljaCBzdXBwb3NlZCB0aGF0IFUtQm9vdCBpcyBpbiBSQU0KICAgIHdoZW4gd2UganVtcCB0byBzdGFydF9hcm1ib290CgogICAgU2lnbmVkLW9mZi1ieTogZ251c2VyY24gPGdudXNlcmNuQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZjhhMDBkZWE4NDFkNWQ3NWRlMWY4ZTgxMDdlOTBlZTFiZWVkZGY1ZgpBdXRob3I6IEFkYW0gR3JhaGFtIDxhZ3JhaGFtQGFtY2MuY29tPgpEYXRlOglNb24gT2N0IDYgMTA6MTY6MTMgMjAwOCAtMDcwMAoKICAgIHBwYzR4eDogUmVzZXQgYW5kIHJlbG9jayBtZW1vcnkgRExMIGFmdGVyIFNEUkFNX0NMS1RSIGNoYW5nZQoKICAgIEFmdGVyIGNoYW5naW5nIFNEUkFNX0NMS1RSIHBoYXNlIHZhbHVlIHJlcnVuIHRoZSBtZW1vcnkgcHJlbG9hZAogICAgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgKElOSVRQTFIpIHRvIHJlc2V0IGFuZCByZWxvY2sgdGhlIG1lbW9yeQogICAgRExMLiBDaGFuZ2luZyB0aGUgU0RSQU1fQ0xLVFIgbWVtb3J5IGNsb2NrIHBoYXNlIGNvYXJzZSB0aW1pbmcKICAgIGFkanVzdG1lbnQgZWZmZWN0cyB0aGUgcGhhc2UgcmVsYXRpb25zaGlwIG9mIHRoZSBpbnRlcm5hbCwgdG8gdGhlCiAgICBQUEMgY2hpcCwgYW5kIGV4dGVybmFsLCB0byB0aGUgUFBDIGNoaXAsIHZlcnNpb25zIG9mIE1FTUNMS19PVVQuCgogICAgU2lnbmVkLW9mZi1ieTogQWRhbSBHcmFoYW0gPGFncmFoYW1AYW1jYy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBWaWN0b3IgR2FsbGFyZG8gPHZnYWxsYXJkb0BhbWNjLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1Mjk3MjQ2YmJhYTk5NDNjMGRhMWVjMmU3MTdiNzJlNGFiNmI4MzBlCkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAzIDExOjQ4OjAzIDIwMDggLTA0MDAKCiAgICBSZW1vdmUgcmVkdW5kYW50ICNkZWZpbmUgZm9yIE1QQzg1MzZEUwoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDQ1YTdiMzgzMDhlYjA1YjQxZGU3NDE2NWIyMDg1NWRiNThjN2VlNQpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMyAxMTo0NzozMCAyMDA4IC0wNDAwCgogICAgQWRkIElEIEVFUFJPTSBzdXBwb3J0IGZvciBNUEM4NTcyRFMKCiAgICBUaGUgSUQgRUVQUk9NIG9uIE1QQzg1NzJEUyBib2FyZCBsb2NhdGVzIG9uIEkyQyBidXMgMS4gSXRzIHRoZSBzdG9yYWdlIGZvcgogICAgc3lzdGVtIGluZm9ybWF0aW9uIGxpa2UgbWFjIGFkZHJlc3NlcyBldGMuIFRoaXMgcGF0Y2ggZW5hYmxlcyBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFmM2JhMzE3YTVjNWYzYTdhYWJmNTgwZmRkYzIxMWY0YmI1YTQ1NDAKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDMgMTE6NDY6NTkgMjAwOCAtMDQwMAoKICAgIE1pbm9yIGZpeGVzIGZvciBJMkMgYWRkcmVzcyBvbiBNUEM4NTcyRFMKCiAgICBNUEM4NTcyRFMgaGFzIHR3byBpMmMgYnVzZXMuIFRoaXMgcGF0Y2ggbW92ZXMgdGhlIEREUiBTUERfRUVQUk9NIHRvIGkyYyBidXMgMQogICAgYWNjb3JkaW5nIHRvIHRoZSBib2FyZCBzcGVjLCBhbmQgYWRkcyB0aGUgMm5kIGkyYyBidXMgb2Zmc2V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzAzOTExMTFjMzNjMjJmYWJlZGRmOGY0Y2E4MDFlYzc2NDViNGY1YwpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVNhdCBTZXAgMjcgMTQ6NDA6NTcgMjAwOCArMDgwMAoKICAgIEZpeCB0aGUgaW5jb3JyZWN0IEREUiBjbGsgZnJlcSByZXBvcnRpbmcgb24gODUzNkRTCgogICAgT24gODUzNkRTIGJvYXJkLCBXaGVuIHRoZSBERFIgY2xrIGlzIHNldCBhc3luYyBtb2RlKFNXM1s2OjhdICE9IDExMSksCiAgICBUaGUgZGlzcGxheSBpcyBzdGlsbCBzeW5jIG1vZGUgRERSIGZyZXEuIFRoaXMgcGF0Y2ggdHJ5IHRvIGZpeAogICAgdGhpcy4gVGhlIGRpc3BsYXkgRERSIGZyZXEgaXMgbm93IHRoZSBhY3R1YWwgZnJlcSBpbiBib3RoCiAgICBzeW5jIGFuZCBhc3luYyBtb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmFjNmExZDFmYTFjZDgwYWE1Nzg4MWZhOWMyMTUyYjg1M2NkMGVkNApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBPY3QgNyAxMDoyODo0NiAyMDA4IC0wNTAwCgogICAgODV4eDogUmVtb3ZlIHNldHRpbmcgb2YgKmNhY2hlLWxpbmUtc2l6ZSBpbiBkZXZpY2UgdHJlZXMKCiAgICBlUEFQUiBzYXlzIGlmIHRoZSAqY2FjaGUtYmxvY2stc2l6ZSBpcyB0aGUgc2FtZSBhcyAqY2FjaGUtbGluZS1zaXplCiAgICB0aGFuIHdlIGRvbid0IG5lZWQgdGhlICpjYWNoZS1saW5lLXNpemUgcHJvcGVydHkuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBjZDNjYjBkOTI2OWQxNTUyNzZiMDAyMDdlMzgxNmE5MzQ3ZmQxYzkyCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IE9jdCA0IDA3OjU2OjA2IDIwMDggLTA0MDAKCiAgICBsaWJmZHQ6IEZpeCBlcnJvciBpbiBkb2N1bWVudGF0aW9uIGZvciBmZHRfZ2V0X2FsaWFzX25hbWVsZW4oKQoKICAgIE9vcHMsIHNjcmV3ZWQgdXAgdGhlIGZ1bmN0aW9uIG5hbWUgaW4gdGhlIGRvY3VtZW50aW5nIGNvbW1lbnQgZm9yIHRoaXMKICAgIGZ1bmN0aW9uLiAgVHJpdmlhbCBjb3JyZWN0aW9uIGluIHRoaXMgcGF0Y2guCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+CiAgICBBY2tlZC1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCA5YTZjZjczYTg4ZGRhYjJlMWFjMzkwODhmMjgwNjE3Nzk4MmNjNjJjCkF1dGhvcjogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+CkRhdGU6CVdlZCBBdWcgMjAgMTY6NTU6MTQgMjAwOCArMTAwMAoKICAgIGxpYmZkdDogQWRkIGZ1bmN0aW9uIHRvIGV4cGxpY2l0bHkgZXhwYW5kIGFsaWFzZXMKCiAgICBLdW1hciBoYXMgYWxyZWFkeSBhZGRlZCBhbGlhcyBleHBhbnNpb24gdG8gZmR0X3BhdGhfb2Zmc2V0KCkuCiAgICBIb3dldmVyLCBpbiBzb21lIGNpcmN1bXN0YW5jZXMgaXQgbWF5IGJlIGNvbnZlbmllbnQgZm9yIHRoZSB1c2VyIG9mCiAgICBsaWJmZHQgdG8gZXhwbGljaXRseSBnZXQgdGhlIHN0cmluZyBleHBhbnNpb24gb2YgYW4gYWxpYXMuCVRoaXMgcGF0Y2gKICAgIGFkZHMgYSBmdW5jdGlvbiB0byBkbyB0aGlzLCBmZHRfZ2V0X2FsaWFzKCksIGFuZCB1c2VzIGl0IHRvIGltcGxlbWVudAogICAgZmR0X3BhdGhfb2Zmc2V0KCkuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+Cgpjb21taXQgMjIxNTk4N2UxMDBkMmE4NDFhZTZkNDhhN2NjOWJiODNmY2YyMjczNwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IE9jdCAyIDAxOjU1OjM4IDIwMDggLTA0MDAKCiAgICBjZmlfZmxhc2g6IGRvIG5vdCByZXNldCBmbGFzaCB3aGVuIHByb2JlIGZhaWxzCgogICAgVGhlIENGSSBmbGFzaCBkcml2ZXIgc3RhcnRzIGF0IGZsYXNoX2luaXQoKSB3aGljaCBjYWxscyBkb3duIGludG8KICAgIGZsYXNoX2dldF9zaXplKCkuICBUaGlzIHN0YXJ0cyBieSBjYWxsaW5nIGZsYXNoX2RldGVjdF9jZmkoKS4gIElmIHNhaWQKICAgIGZ1bmN0aW9uIGZhaWxzLCBmbGFzaF9nZXRfc2l6ZSgpIGZpbmlzaGVzIGJ5IGF0dGVtcHRpbmcgdG8gcmVzZXQgdGhlCiAgICBmbGFzaC4gIFVuZm9ydHVuYXRlbHksIGl0IGRvZXMgdGhpcyB3aXRoIGFuIGluZm8tPnBvcnR3aWR0aCBzZXQgdG8gMHgxMAogICAgd2hpY2ggZmlsdGVycyBkb3duIGludG8gZmxhc2hfbWFrZV9jbWQoKSBhbmQgdGhhdCBoYXBwaWx5IHNtYXNoZXMgdGhlCiAgICBzdGFjayBieSBzdGlja2luZyBpbmZvLT5wb3J0d2lkdGggYnl0ZXMgaW50byBhIGNmaXdvcmRfdCB2YXJpYWJsZSB0aGF0CiAgICBsaXZlcyBvbiB0aGUgc3RhY2suICBPbiBhIDY0Yml0IHN5c3RlbSB5b3UgcHJvYmFibHkgd29uJ3Qgbm90aWNlLCBidXQKICAgIGtpbGxpbmcgdGhlIGxhc3QgOCBieXRlcyBvbiBhIDMyYml0IHN5c3RlbSB1c3VhbGx5IGxlYWRzIHRvIGEgY29ycnVwdAogICAgcmV0dXJuIGFkZHJlc3MuICBXaGljaCBpcyB3aGF0IGhhcHBlbnMgb24gYSBCbGFja2ZpbiBzeXN0ZW0uCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDNlMzg1NzcyMDhlNDI1Njk1NmJjMzNiYjhiY2QwYTZiNmZhYjU1YzMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBTZXAgMjYgMTc6MDM6MjYgMjAwOCArMDIwMAoKICAgIGZkdDogT3ZlcndyaXRlIC9jaG9zZW4gbm9kZSBpbiBib290bSBpZiBpdCBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgZHRiCgogICAgU2V0IGZvcmNlIHBhcmFtZXRlciBpbiBmZHRfY2hvc2VuKCkgY2FsbCBpbiBkb19ib290bV9saW51eCgpIGNhbGwuCiAgICBXaXRob3V0IHRoaXMsIHRoZSBjaG9zZW4gbm9kZSBpcyBub3Qgb3ZlcndyaXR0ZW4gaWYgaXQgYWxyZWFkeQogICAgZXhpc3RzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3NDFhNmQwMTBkMDliNWJhZmNhOGU0Y2RmYjZiMmY4YTJjMDc5OTRkCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IFNlcCAyNSAxMTowMjoxNyAyMDA4IC0wNTAwCgogICAgRml4IGFuIG92ZXJmbG93IGNhc2UgaW4gZmR0X29mZnNldF9wdHIoKSBkZXRlY3RlZCBieSBHQ0MgNC4zLgoKICAgIFVzaW5nIEdjYyA0LjMgZGV0ZWN0ZWQgdGhpcyBwcm9ibGVtOgoKCS4uL2R0Yy9saWJmZHQvZmR0LmM6IEluIGZ1bmN0aW9uICdmZHRfbmV4dF90YWcnOgoJLi4vZHRjL2xpYmZkdC9mZHQuYzo4MjogZXJyb3I6IGFzc3VtaW5nIHNpZ25lZCBvdmVyZmxvdyBkb2VzIG5vdAoJb2NjdXIgd2hlbiBhc3N1bWluZyB0aGF0IChYICsgYykgPCBYIGlzIGFsd2F5cyBmYWxzZQoKICAgIFRvIGZpeCB0aGUgcHJvYmxlbSwgdHJlYXQgdGhlIG9mZnNldCBhcyBhbiB1bnNpZ25lZCBpbnQuCgogICAgVGhlIHByb2JsZW0gcmVwb3J0IGFuZCBwcm9wb3NlZCBmaXggd2VyZSBwcm92aWRlZAogICAgYnkgU3RldmUgUGFwYWNoYXJhbGFtYm91cyA8c3RldmVwQGZyZWVzY2FsZS5jb20+LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmJkYmM3Y2IzYWJlZmRhNWJkOTk4ZWRiY2YwNTA4ZmU2MjU2MzI3ZApBdXRob3I6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgpEYXRlOglGcmkgQXVnIDI5IDE0OjE5OjEzIDIwMDggKzEwMDAKCiAgICBsaWJmZHQ6IEZpeCBidWdzIGluIGZkdF9nZXRfcGF0aCgpCgogICAgVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgZmR0X2dldF9wYXRoKCkgaGFzIGEgY291cGxlIG9mIGJ1Z3MsCiAgICBmaXhlZCBieSB0aGlzIHBhdGNoLgoKICAgIEZpcnN0LCBjb250cmFyeSB0byBpdHMgZG9jdW1lbnRhdGlvbiwgb24gc3VjY2VzcyBpdCByZXR1cm5zIHRoZSBsZW5ndGgKICAgIG9mIHRoZSBub2RlJ3MgcGF0aCwgcmF0aGVyIHRoYW4gMC4JVGhlIHRlc3RjYXNlIGlzIGNvcnJlc3BvbmRpbmdseQogICAgd3JvbmcsIGFuZCB0aGUgcGF0Y2ggZml4ZXMgdGhpcyBhcyB3ZWxsLgoKICAgIFNlY29uZCwgaW4gc29tZSBjaXJjdW1zdGFuY2VzLCBpdCB3aWxsIHJldHVybiAtRkRUX0VSUl9CQURPRkZTRVQKICAgIGluc3RlYWQgb2YgLUZEVF9FUlJfTk9TUEFDRSB3aGVuIGdpdmVuIGluc3VmZmljaWVudCBidWZmZXIgc3BhY2UuCiAgICBTcGVjaWZpY2FsbHkgdGhpcyBoYXBwZW5zIHdoZW4gdGhlcmUgaXMgaW5zdWZmaWNpZW50IHNwYWNlIGV2ZW4gdG8KICAgIGhvbGQgdGhlIHBhdGgncyBzZWNvbmQgbGFzdCBjb21wb25lbnQuICBUaGlzIGJlaGF2aW91ciBpcyBjb3JyZWN0ZWQsCiAgICBhbmQgdGhlIHRlc3RjYXNlIHVwZGF0ZWQgdG8gY2hlY2sgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+Cgpjb21taXQgMzNhZjNlNjY1NmU4NDY2MGQzOTdiNWRkOTVhYmFiMmRjY2MzNmY4MwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMSAxMjozNDo1OCAyMDA4ICswMjAwCgogICAgVFFNNTIwMDogZW5hYmxlIHN1cHBvcnQgZm9yIEFUQVBJIGRldmljZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGQxM2ZmMjM1OGZmOGMzODRmNTJlYWY0NmY1ZDYwMjU4YWNmOTZlYTYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglNb24gU2VwIDE1IDA1OjQ4OjI1IDIwMDggKzAyMDAKCiAgICBSZXZlcnQgIkFSTTogc2V0IEdEX0ZMR19SRUxPQyBmb3IgYm9hcmRzIHNraXBwaW5nIHJlbG9jYXRpb24gdG8gUkFNIgoKICAgIHdlIG5lZWQgdGhpcyBkdWUgdG8gdGhlIGFybSBpbXBsZW1lbnRhdGlvbiB3aGljaCBzdXBwb3NlZCB0aGF0IFUtQm9vdAogICAgaXMgaW4gUkFNIHdoZW4gd2UganVtcCB0byBzdGFydF9hcm1ib290CgogICAgVGhpcyByZXZlcnRzIGNvbW1pdCBmOTZiNDRjZWY4OTdiZDM3MmJlYjg2ZGRlMWIzMzYzN2MxMTlkODRkLgogICAgaW4gb3JkZXIgdG8gZG8gaXQgZm9yIGFsbCBhcm0gYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDdmZDBiZWEyZTRhNzhlYWI3ZTY2OTMxNDA5NDBmOWY5YTAwMDliYzIKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgU2VwIDI0IDA4OjQ2OjI1IDIwMDggLTA1MDAKCiAgICBtcGM4M3h4OiBkb24ndCBkaXNhYmxlIGF1dG9ib290CgogICAgYm9vdGRlbGF5IHNldCB0byAtMSAncGVybWFuZW50bHknIGRpc2FibGVzIGF1dG9ib290aW5nLCBldmVuIGlmCiAgICBib290Y21kIGlzIHNwZWNpZmllZC4gIENoYW5nZSB0byBhIHBvc2l0aXZlIHZhbHVlIHRvIGFsbG93CiAgICBhdXRvYm9vdGluZyB3aGVuIGEgYm9vdGNtZCBpcyBzZXQuCgogICAgUmVwb3J0ZWQtYnk6IENvcmF5IFRhdGUgPENvcmF5LlRhdGVAZnJlZXNjYWxlLmNvbT4KICAgIENjOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmZiMjljNTIwYzQyYjdiZmVmMzNlYTNmZDE1MjdlYmE2NDA5OTE2NApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJV2VkIFNlcCAyNCAxMDo0MjoxNSAyMDA4ICswOTAwCgogICAgbXBjODN4eDogRml4IHR5cG8gaW4gaW5jbHVkZS9tcGM4M3h4LmgKCiAgICBGaXhlZCB0eXBvIGZyb20gQ09OSUZHX01QQzgzN1ggdG8gQ09ORklHX01QQzgzN1gKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE2MmM0MWMwMzE3OTcyN2ExZDE0MjYyZjcwM2M5YThiYzQwMjMxZmEKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgU2VwIDIzIDA5OjM4OjQ5IDIwMDggLTA1MDAKCiAgICBtcGM4M3h4OiBhZGQgaC93IGZsYXNoIHByb3RlY3Rpb24gdG8gYm9hcmQgY29uZmlncwoKICAgIHRoZSBvcGVyYXRpbmcgc3lzdGVtIG1heSBsZWF2ZSBmbGFzaCBpbiBhIGgvdyBsb2NrZWQgc3RhdGUgYWZ0ZXIgd3JpdGluZy4KICAgIFRoaXMgYWxsb3dzIHUtYm9vdCB0byBjb250aW51ZSB0byB3cml0ZSBmbGFzaCBieSBlbmFibGluZyBoL3cgdW5sb2NraW5nCiAgICBieSBkZWZhdWx0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDI2MTU0YzlhNjkyNTg2YjY2ZWI2ZDFmOGUxYjY3Yzc1ZTQwZWE3MApBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglUaHUgU2VwIDExIDIxOjM1OjM2IDIwMDggKzA0MDAKCiAgICBtcGM4M3h4OiBzcGRfc2RyYW06IGZpeCBkZHIgc2RyYW0gYmFzZSBhZGRyZXNzIGFzc2lnbm1lbnQgYnVnCgogICAgVGhlIHNwZF9kcmFtIGNvZGUgc2hpZnRzIHRoZSBiYXNlIGFkZHJlc3MsIHRoZW4gbWFza3MgMjAgYml0cywgYnV0CiAgICBmb3JnZXRzIHRvIHNoaWZ0IHRoZSBiYXNlIGFkZHJlc3MgYmFjay4gRml4IHRoaXMgYnkganVzdCBtYXNraW5nIHRoZQogICAgYmFzZSBhZGRyZXNzIGNvcnJlY3RseS4KCiAgICBGb3VuZCB0aGlzIGJ1ZyB3aGlsZSB0cnlpbmcgdG8gcmVsb2NhdGUgYSBERFIgbWVtb3J5IGF0IHRoZSBiYXNlICE9IDAuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhmZDQxNjZjNDY3YTQ2NzczZjgwMjA4YmRhMWVjM2I0NzU3NzQ3YmMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBTZXAgMjIgMTY6MTA6NDMgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQ2FueW9ubGFuZHM6IFJlbW92ZSB1bm5lY2Vzc2FyeSBGRFQgd2FybmluZyB1cG9uIERUQiBmaXh1cAoKICAgIERlcGVuZGluZyBvbiB0aGUgY29uZmlndXJhdGlvbiBqdW1wZXIgIlNBVEEgU0VMRUNUIiwgVS1Cb290IGRpc2FibGVkCiAgICBlaXRoZXIgb25lIFBDSWUgbm9kZSBvciB0aGUgU0FUQSBub2RlIGluIHRoZSBkZXZpY2UgdHJlZSBibG9iLiBUaGlzCiAgICBwYXRjaCByZW1vdmVzIHRoZSB1bm5lY2Vzc2FyeSBhbmQgZXZlbiBjb25mdXNpbmcgd2FybmluZywgd2hlbiB0aGUgbm9kZQogICAgaXMgbm90IGZvdW5kIGF0IGFsbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmUyNGExZWIxNDkwYWEwNDM3NzBiY2YwMDYxYWMxZmFkMDg2NGZkOQpBdXRob3I6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgpEYXRlOglGcmkgU2VwIDE5IDEzOjMwOjA2IDIwMDggKzAyMDAKCiAgICBBZGQgbWlzc2luZyBkZXZpY2UgdHlwZXMgdG8gZGV2X3ByaW50KCkgaW4gcGFydC5jCgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+Cgpjb21taXQgNWZkYzIxNWYwYjM1MWIwYzM2Y2MzZjhhMGZhNTg1MGYyNDQ1NGJlZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBTZXAgMjIgMjI6MjM6MDYgMjAwOCArMDIwMAoKICAgIEZpeCBEUFJBTSBtZW1vcnkgbGVhayB3aGVuIENGR19BTExPQ19EUFJBTSBpcyBkZWZpbmVkLCB3aGljaAogICAgZXZlbnR1YWxseSBsZWFkcyB0byBhIG1hY2hpbmUgY2hlY2suIFRoaXMgY2hhbmdlIGFzc3VyZXMgdGhhdCBEUFJBTQogICAgaXMgYWxsb2NhdGVkIG9ubHkgb25jZSBpbiB0aGF0IGNhc2UuCgogICAgU2lnbmVkLW9mZi1ieTogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGEwN2ZhZjdiOWFkNWE4Njc2M2E1NzdjNzk5MjJjNGZmOWE3MGVmMjMKQXV0aG9yOiBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50cEBjc2Utc2VtYXBob3JlLmNvbT4KRGF0ZToJV2VkIFNlcCAxNyAxNzo1NzozNCAyMDA4ICswMjAwCgogICAgRml4IFNwYXJ0YW4tMyBkZWZpbml0aW9ucy4KCiAgICBBIGZldyBTcGFydGFuLTMgZGVmaW5pdGlvbnMgZXJyb25lb3VzbHkgdXNlIFNwYXJ0YW4tM0Ugc2l6ZQogICAgY29uc3RhbnRzLiBUaGlzIHBhdGNoIGZpeGVzIHRoZW0uCgogICAgU2lnbmVkLW9mZi1ieTogTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudHBAY3NlLXNlbWFwaG9yZS5jb20+Cgpjb21taXQgMjgxMTNlMWYwZGE0MTQ2YjgyM2ZmY2UzNzY4MGQzMWQ1Njg1YTYwYgpBdXRob3I6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnRwQGNzZS1zZW1hcGhvcmUuY29tPgpEYXRlOglXZWQgU2VwIDE3IDE3OjQxOjU4IDIwMDggKzAyMDAKCiAgICBSZW1vdmUgZHVwbGljYXRlIFNwYXJ0YW4tM0UgZGVmaW5pdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50cEBjc2Utc2VtYXBob3JlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNWM2NWVjZjdjZDk0ZGYyNTBiMjk1NjIxZjNiMjQxMzVjYmNmZTU3OQpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJV2VkIFNlcCAxNyAxMzo0NjoxNyAyMDA4ICswMjAwCgogICAgc29jcmF0ZXM6IGNoYW5nZSBkZWZhdWx0IG10ZXN0IGFkZHJlc3MgcmFuZ2UKCiAgICBSdW5uaW5nIG10ZXN0IGNvbW1hbmQgb24gc29jcmF0ZXMgd2l0aG91dCBzcGVjaWZ5aW5nCiAgICBhbiBhZGRyZXNzIHJhbmdlIGNyYXNoZXMgdGhlIGJvYXJkLiBUaGlzIHBhdGNoIGNoYW5nZXMKICAgIGRlZmF1bHQgbXRlc3QgYWRkcmVzcyByYW5nZSB0byBwcmV2ZW50IHRoaXMgYmVoYXZpb3IuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IGQ2NjZiMmQ1OTY3NGI1ZTAwMmMwODIxYjdhYjgzZWMzZmY5MGQ2NzAKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CVdlZCBTZXAgMTcgMTI6MzQ6NDUgMjAwOCArMDIwMAoKICAgIHNvY3JhdGVzOiBmaXggY3Jhc2ggYWZ0ZXIgcmVsb2NhdGlvbgoKICAgIEN1cnJlbnRseSBVLUJvb3QgY3Jhc2hlcyBhZnRlciByZWxvY2F0aW9uIHRvIFJBTS4KICAgIENoYW5naW5nIHRoZSBDUE8gdmFsdWUgb2YgdGhlIEREUiBTRFJBTSBUSU1JTkdfQ0ZHXzIKICAgIHJlZ2lzdGVyIHRvIFJFQURfTEFUICsgMSAodG8gdGhlIHZhbHVlIGl0IHdhcyBiZWZvcmUKICAgIGNvbnZlcnNpb24gb2Ygc29jcmF0ZXMgdG8gbmV3IEREUiBjb2RlKSBmaXhlcyB0aGUKICAgIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IDU2Mjc4OGIwYTMwM2YzNTI4YjkyMGQ4MWY1NDdmNWNhNzdiYTUyOGUKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CVdlZCBTZXAgMTcgMTE6NDU6NTEgMjAwOCArMDIwMAoKICAgIHNvY3JhdGVzOiBmaXggU1BEIEVFUFJPTSBhZGRyZXNzCgogICAgQ29tbWl0IGJlMGJkODIzNGI5Nzc3ZWNkNjNjNGM2ODZmNzJhZjA3MGQ4ODY1MTcKICAgIGNoYW5nZWQgU1BEIEVFUFJPTSBhZGRyZXNzIHRvIDB4NTEgYW5kIEREUiBTRFJBTQogICAgZGV0ZWN0aW9uIHN0b3BwZWQgd29ya2luZy4gQ2hhbmdlIHRoaXMgYWRkcmVzcwogICAgYmFjayB0byAweDUwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCAwMjM4MjQ1NDlhMzcwYmQxODVkNzEyOWQ5YTZjODZmOWJlN2I4NmE4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gU2VwIDIyIDExOjA2OjUwIDIwMDggKzAyMDAKCiAgICBSZXZlcnQgInBwYzR4eDogRml4IEREUjIgYXV0byBjYWxpYnJhdGlvbiBvbiBLaWxhdWVhIDYwME1IeiAoMjAwTUh6IFBMQikiCgogICAgVGhpcyByZXZlcnRzIGNvbW1pdCAzZWVjMTYwYTNhNDA1YjI5Y2U5YzA2OTIwZjY0MjdiOTA0N2RkOGE4LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlNThjNDFlMjZjZjNjOGFjY2Q2MDMxMWJlNTc5ZjQ1MmUzNjhlOTdlCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglUaHUgU2VwIDE4IDIwOjEzOjA4IDIwMDggKzA5MDAKCiAgICB1c2I6IEZpeCBjb21waWxlIHdhcm5pbmcgb2YgcjhhNjY1OTctaGNkCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCBiNWQxMGExMzUyNWMwN2VjNjM3NGFkZjg0MGQ3Yzg3NTUzYjVmMTg5CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglUaHUgU2VwIDE4IDE5OjM0OjM2IDIwMDggKzA5MDAKCiAgICBzaDogRml4IGNvbXBpbGUgd2FybmluZwoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA0YTA2NWFiZjkyNmYxMjhiZWIzNmQ5MzQ0OWRlZmEwZDY5MGU3ZmVmCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglUaHUgU2VwIDE4IDE5OjA0OjI2IDIwMDggKzA5MDAKCiAgICBzaDogQWRkIHN1cHBvcnQgd2F0Y2hkb2cgZm9yIFNINEEgY29yZQoKICAgIEFkZCBzdXBwb3J0IHdhdGNoZG9nIGZvciBTSDRBIGNvcmUgKFNINzc2MywgU0g3NzgwIGFuZCBTSDc3ODUpLgogICAgQW5kIGZpeCBzb21lIGNvbXBpbGUgd2FybmluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgYTAzYzA5YzVmZGI4NDMwZmUyYWU2YTAzZjg4YTBjZjdiY2MwYWE1NwpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJV2VkIFNlcCAxNyAxMTo0NToyNiAyMDA4ICswOTAwCgogICAgc2g6IEZpeCB0eXBvIGluIFNIIHNlcmlhbCBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNmI0NGE0MzkyMTViYTdjNjNmNjY2ZjgwOTkyMTNlYTRmMDVmMmIwNwpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJV2VkIFNlcCAxNyAxMTowODozNiAyMDA4ICswOTAwCgogICAgc2g6IEFkZCBzdXBwb3J0IGFueSBwYWdlIHNpemUgYW5kIGVtcHR5X3plcm9fcGFnZSB0byBTSCBMaW51eCB1SW1hZ2UKCiAgICBPbGQgVS1Cb290IHN1cHBvcnRlZCA0S0IgcGFnZSBzaXplIG9ubHkuIElmIHRoaXMgdmVyc2lvbiwgTGludXgKICAgIGtlcm5lbCBjYW4gbm90IGdldCBjb21tYW5kIGxpbmUgZnJvbSBVLUJvb3QuCiAgICBTSCBMaW51eCBrZXJuZWwgY2FuIGNoYW5nZSBwYWdlIHNpemUgYW5kIGVtcHR5X3plcm9fcGFnZS4KICAgIFRoaXMgcGF0Y2ggc3VwcG9ydCB0aGlzIGZ1bmN0aW9uIGFuZCBmaXggcHJvbWxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgY2U5Zjk5ZGRiNTk2MjhmNDFkYzUzNGU4OTIzNjhhN2Q2NmRmYzc3NApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJVGh1IEF1ZyAyOCAxMzo0MDo1MiAyMDA4ICswOTAwCgogICAgc2g6IHJzazcyMDM6IEFkZCBzdXBwb3J0IHBrdF9kYXRhX3B1bGwgYW5kIHBrdF9kYXRhX3B1c2ggZnVuY3Rpb24KCiAgICBBZGQgZnVuY3Rpb24gb2Ygc21jOTExeCwgcGt0X2RhdGFfcHVsbCBhbmQgcGt0X2RhdGFfcHVzaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgZGQ4MjBiMDNhMmY0NWU4NmU3OTYwZTI2NzI5YTNiNThlM2RkYTQ0YQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBTZXAgMTggMTM6NTc6MzIgMjAwOCArMDIwMAoKICAgIEFEUzUxMjE6IGZpeCB0eXBvIGluICJyb290cGF0aCIgZGVmYXVsdCBzZXR0aW5nCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBjOWU4NDM2YjEwY2NhNTNmY2E0OTA0ZWNiYWRjZDYyMzFhZDcyYzM4CkF1dGhvcjogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CkRhdGU6CVR1ZSBTZXAgMTYgMTQ6NTU6NDQgMjAwOCArMDIwMAoKICAgIFVTQiBsYXllciBvZiBVLUJvb3QgY2F1c2VzIFVTQiBwcm90b2NvbCBlcnJvcnMgd2hpbGUgdXNpbmcgVVNCIG1lbW9yeSBzdGlja3MKCiAgICBUaGVyZSBhcmUgc2V2ZXJhbCBkaWZmZXJlbmNlcyBiZXR3ZWVuIExpbnV4LCBXaW5kb3dzIGFuZCBVLWJvb3QgZm9yIGluaXRpYWxpc2luZyB0aGUKICAgIFVTQiBkZXZpY2VzLiBXaGlsZSBhbmFseXNpbmcgdGhlIGJlaGF2aW91ciBvZiBVLWJvb3QgaXQgdHVybmVkIG91dCB0aGF0IFUtYm9vdCBkb2VzCiAgICB0aGluZ3MgcmVhbGx5IGRpZmZlcmVudCwgYW5kIHNvbWUgYXJlIHdyb25nIChjb21wYXJlZCB0byB0aGUgVVNCIHN0YW5kYXJkKS4KCiAgICBUaGlzIHBhdGNoIGZpeGVzIHNvbWUgZXJyb3JzOgogICAgKiBUaGUgTkVXX2luaXQgcHJvY2VkdXJlIHRoYXQgd2FzIGFscmVhZHkgaW4gdGhlIGNvZGUgaXMgZ29vZCwgd2hpbGUgdGhlIG9sZCBwcm9jZWR1cmUKICAgICAgaXMgd3JvbmcuIFNlZSBjb2RlIGNvbW1lbnRzIGZvciBtb3JlIGluZm8uCiAgICAqIE9uIGEgQ29udHJvbCByZXF1ZXN0IHRoZSBkYXRhIHJldHVybmVkIGJ5IHRoZSBkZXZpY2UgY2FuIGJlIG1vcmUgdGhhbiA4IGJ5dGVzLCB3aGlsZQogICAgICB0aGUgaG9zdCBsaW1pdHMgaXQgdG8gOCBieXRlcy4gVGhpcyBjYXVzZWQgdGhlIGhvc3QgdG8gZ2VuZXJhdGUgYSBEYXRhT3ZlcnJ1biBlcnJvci4KICAgICAgVGhpcyByZXN1bHRzIGluIGEgbG90IG9mIFVTQiBzdGlja3Mgbm90IGJlaW5nIHJlY29nbmlzZWQsIGFuZCB0aGUgdHJhbnNtaXNzaW9uIGVuZGVkCiAgICAgIGZyZXF1ZW50bHkgd2l0aCBhIENUTDpUSU1FT1VUIEVycm9yLgogICAgKiBBZGRlZCBhIGZsYWcgQ09ORklHX0xFR0FDWV9VU0JfSU5JVF9TRVEgdG8gYWxsb3cgdXNlcnMgdG8gdXNlIHRoZSBvbGQgaW5pdCBwcm9jZWR1cmUuCgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IDZmNTc5NGE2Zjc4YjMxMzIzMTI1Njk1OGZkNzM2NzNjNmFhY2MxMTYKQXV0aG9yOiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KRGF0ZToJVHVlIFNlcCAxNiAxNDo1NTo0MyAyMDA4ICswMjAwCgogICAgUmVmYWN0b3JpbmcgcGFydHMgb2YgdGhlIGNvbW1vbiBVU0IgT0hDSSBjb2RlCgogICAgVGhpcyBwYXRjaCByZWZhY3RvcnMgc29tZSBsYXJnZSByb3V0aW5lcyBvZiB0aGUgVVNCIE9IQ0kgY29kZSBieQogICAgbWFraW5nIHNvbWUgcm91dGluZXMgc21hbGxlciBhbmQgbW9yZSByZWFkYWJsZSB3aGljaCBoZWxwcwogICAgZGVidWdnaW5nIGFuZCB1bmRlcnN0YW5kaW5nIHRoZSBjb2RlLiAoTWFrZXMgdGhlIGNvZGUgbG9va3MKICAgIHNvbWV3aGF0IG1vcmUgbGlrZSB0aGUgTGludXggaW1wbGVtZW50YXRpb24uKQoKICAgIEFsc28gbWFkZSBlbnRpcmUgZmlsZSBjb21wbGlhbnQgdG8gTGludXggQ29kaW5nIFJ1bGVzIChjaGVja3BhdGNoLnBsIGNvbXBsaWFudCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgYmUxOWQzMjRlZGMxYTFkN2YzOTNkMjRlMTBkMTY0Y2Q5NGM5MWEwMApBdXRob3I6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgpEYXRlOglUdWUgU2VwIDE2IDE0OjU1OjQyIDIwMDggKzAyMDAKCiAgICBGaXggZm9yIFVTQiBzdGlja3Mgbm90IHdvcmtpbmcgb24gQVJNIHdoaWxlIHVzaW5nIEdDQyA0LnggY29tcGlsZXJzCgogICAgVGhlIEdDQy1jb21waWxlciBtYWtlcyBhbiBvcHRpbWlzYXRpb24gZXJyb3Igd2hpbGUgb3B0aW1pc2luZyB0aGUgcm91dGluZQogICAgdXNiX3NldF9tYXhwYWNrZXQoKS4gVGhpcyBzaG91bGQgYmUgZml4ZWQgaW4gdGhlIGNvbXBpbGVyIGluIHRoZSBmaXJzdCBwbGFjZSwKICAgIGJ1dCB0aGVyZSBsb3RzIG9mIGNvbXBpbGVycyBvdXQgdGhlcmUgdGhhdCBtYWtlcyB0aGlzIGVycm9yLCB0aGF0IGl0IGlzCiAgICBwcm9iYWJseSB3aXNlciB0byB3b3JrYXJvdW5kIGl0IGluIFUtYm9vdCBpdHNlbGYuCgogICAgV2hhdCBoYXBwZW5zIGlzIHRoYXQgdGhlIHJlZ2lzdGVyIHIzIGlzIHVzZWQgYXMgbG9vcC1jb3VudGVyICdpJywgYnV0IGdldHMKICAgIG92ZXJ3cml0dGVuIGxhdGVyIG9uLiBGcm9tIHRoZXJlIGl0IHN0YXJ0cyB1c2luZyByZWdpc3RlciByMyBmb3Igc2V2ZXJhbCBvdGhlcgogICAgdGhpbmdzIGFuZCB0aGUgYXNzZW1ibGVyIGNvZGUgaXMgYmVjb21pbmcgYSBiaWcgbWVzcy4gVGhpcyBpcyBjbGVhcmx5IGEgY29tcGlsZXIgYnVnLgoKICAgIFRoaXMgZXJyb3Igb2NjdXJzIG9uIGF0IGxlYXN0IHNldmVyYWwgdmVyc2lvbnMgb2YgQ29kZSBTb3VyY2VyeSBMaXRlIGNvbXBpbGVycwogICAgZm9yIEFSTS4gTGlrZSB0aGUgRWRpdGlvbiAyMDA4cTEsIGFuZCAyMDA4cTMsIEl0IGhhcyBhbHNvIGJlZW4gc2VlbiBvbiBvdGhlcgogICAgY29tcGlsZXJzLCB3aGlsZSBjb21waWxpbmcgZm9yIGFybXY0dCwgb3IgYXJtdjV0ZSB3aXRoIE9zLCBPMSBhbmQgTzIuCgogICAgV2Ugd29yayBhcm91bmQgaXQgYnkgc3BsaXR0aW5nIHVwIHRoaXMgcm91dGluZSBpbiAyIHBhcnRzLCBhbmQgbWFraW5nIHN1cmUgdGhhdAogICAgdGhlIHNwbGl0IG91dCBwYXJ0IGlzIE5PVCBpbmxpbmVkIGFueSBsb25nZXIuIFRoaXMgd2lsbCBtYWtlIEdDQyBzcGl0IG91dCBhc3NlbWJsZXIKICAgIHRoYXQgZG8gbm90IHNob3cgdGhpcyBwcm9ibGVtLiBBbm90aGVyIHBvc3NpYmlsaXR5IGlzIHRvIGFkYXB0IHRoZSBNYWtlZmlsZSB0byBzdG9wCiAgICBvcHRpbWlzYXRpb24gZm9yIHRoZSBjb21wbGV0ZSBmaWxlLiBJIHRoaW5rIHRoaXMgc29sdXRpb24gaXMgbmljZXIuCgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IDg3YjRlZjU2MGNmMmRhNGNjYzllNTk3MTFhZDFmZjdmYWZlOTY2NzAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgU2VwIDE3IDEwOjE3OjU1IDIwMDggKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cDsgdXBkYXRlIENIQU5FR0xPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgM2VlYzE2MGEzYTQwNWIyOWNlOWMwNjkyMGY2NDI3YjkwNDdkZDhhOApBdXRob3I6IFZpY3RvciBHYWxsYXJkbyA8dmdhbGxhcmRvQGFtY2MuY29tPgpEYXRlOglUdWUgU2VwIDE2IDA2OjU5OjEzIDIwMDggLTA3MDAKCiAgICBwcGM0eHg6IEZpeCBERFIyIGF1dG8gY2FsaWJyYXRpb24gb24gS2lsYXVlYSA2MDBNSHogKDIwME1IeiBQTEIpCgogICAgU2lnbmVkLW9mZi1ieTogVmljdG9yIEdhbGxhcmRvIDx2Z2FsbGFyZG9AYW1jYy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBZGFtIEdyYWhhbSA8YWdyYWhhbUBhbWNjLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjZTQ3ZWI0MDJjNWUyOWEwMjUzOTlkYzI4MjI0NjQxNGZjNDkyOTQwCkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJVHVlIFNlcCAxNiAxMDowNDo0NyAyMDA4IC0wNTAwCgogICAgU3VwcG9ydCBmb3IgbXVsdGlwbGUgU0dNSUkvVEJJIGludGVyZmFjZXMgZm9yIFRTRUMgZXRoZXJuZXQKCiAgICBGaXggVEJJIFBIWSBhY2Nlc3NlcyB0byB1c2UgdGhlIHByb3BlciBvZmZzZXQgaW4gQ1BVIHJlZ2lzdGVyIHNwYWNlLiBUaGUKICAgIHByZXZpb3VzIGNvZGUgd291bGQgaW5jb3JyZWN0bHkgYWNjZXNzIHRoZSBUQkkgUEhZIGJ5IHJlYWRpbmcvd3JpdGluZyB0byBDUFUKICAgIHJlZ2lzdGVyIHNwYWNlIGF0IHRoZSBzYW1lIGxvY2F0aW9uIGFzIHdvdWxkIGJlIHVzZWQgdG8gYWNjZXNzIGV4dGVybmFsIFBIWXMuCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2M4MDNiZTJlYjNjYWUyNDVkZWRkYTQzODc3NmUwOGZiMTIyMjUwZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBTZXAgMTYgMTg6MDI6MTkgMjAwOCArMDIwMAoKICAgIFRRTTh4eDogRml4IENGSSBmbGFzaCBkcml2ZXIgc3VwcG9ydCBmb3IgYWxsIFRRTTh4eCBiYXNlZCBib2FyZHMKCiAgICBBZnRlciBzd2l0Y2hpbmcgdG8gdXNpbmcgdGhlIENGSSBmbGFzaCBkcml2ZXIsIHRoZSBjb3JyZWN0IHJlbWFwcGluZwogICAgb2YgdGhlIGZsYXNoIGJhbmtzIHdhcyBmb3Jnb3R0ZW4uCgogICAgQWxzbywgc29tZSBib2FyZHMgd2VyZSBub3QgYWRhcHRlZCwgYW5kIHRoZSBvbGQgbGVnYWN5IGZsYXNoIGRyaXZlcgogICAgd2FzIG5vdCByZW1vdmVkIHlldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGMwZDJmODdkNmM0NTAxMjhiODhlNzNlZWE3MTVmYTM2NTRmNjViNmMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gU2VwIDE0IDAwOjU5OjM1IDIwMDggKzAyMDAKCiAgICBQcmVwYXJlIHYyMDA4LjEwLXJjMgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZjEyZTQ1NDliNmZiMDFjZDI2NTQzNDhhZjk1YTNjN2E2YWMxNjFlNwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBTZXAgMTMgMDI6MjM6MDUgMjAwOCArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwLCB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAwYzMyNTY1ZjUzNjYwOWQ3OGZlZWYzNWM4OGJiYzM5ZDNhYzUzYTczCkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJV2VkIFNlcCAxMCAwOToxODozNCAyMDA4IC0wNTAwCgogICAgVXBkYXRlIG1haWxpbmcgbGlzdCBlbWFpbCBhbmQgYXJjaGl2ZSBhZGRyZXNzZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IGZiNjYxZWE0NDRhZTYxZGU2MDUyMGY2NmFlODRjZGI1ZGQ1YTMyNDYKQXV0aG9yOiB1LWJvb3RAYnVncy5kZW54LmRlIDx1LWJvb3RAYnVncy5kZW54LmRlPgpEYXRlOglUaHUgU2VwIDExIDE1OjQwOjAxIDIwMDggKzAyMDAKCiAgICA4NXh4OiBzb2NyYXRlczogYXV0b3Byb2JlIExpbWUgY2hpcAoKICAgIFRoaXMgcGF0Y2ggaXMgYW4gYXR0ZW1wdCB0byBpbXBsZW1lbnQgYXV0b3Byb2JpbmcgZm9yIHRoZSBMaW1lCiAgICBwcmVzZW5jZSBvbiB0aGUgYnVzLgogICAgQ29uZmlndXJlIEdQQ00gZm9yIExpbWUgQ1MyIGFuZCB0cnkgdG8gYWNjZXNzIGNoaXAgSUQgcmVnaXN0ZXJzLgogICAgU2Vjb25kIHJlYWQgYXRlbXB0IGRlbGl2ZXJzIHJlZ2lzdGVyIHZhbHVlcyBpZiB0aGUgY2hpcCBpcyBwcmVzZW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCBlOTliNjA3YTVlYzU2Y2U2NmUwYmNjY2I3ODQ4MGQ1ZTE2ZmI3YmM1CkF1dGhvcjogdS1ib290QGJ1Z3MuZGVueC5kZSA8dS1ib290QGJ1Z3MuZGVueC5kZT4KRGF0ZToJVGh1IFNlcCAxMSAxNTo0MDowMSAyMDA4ICswMjAwCgogICAgODV4eDogc29jcmF0ZXM6IEFkZCBzdXBwb3J0IGZvciBuZXcgaW1hZ2UgZm9ybWF0LgoKICAgIFNpZ25lZC1vZmYtYnk6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgoKY29tbWl0IDNjMDk0YjY1MmQ0MTA3YjM0NjQxZjMwMGE4ZTlmZTE2Y2ExNWUzZDgKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVRodSBTZXAgMTEgMTc6Mjg6MTggMjAwOCArMDkwMAoKICAgIHNoOiBGaXggY29tcGlsZSBlcnJvciBmb3IgcjJkcGx1cwoKICAgIG5ldGRldi5oIHdhcyBub3QgaW5jbHVkZSBieSByMmRwbHVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KCmNvbW1pdCA1Njg0NGEyMmI3NmM3MTllNjAwMDQ3ZTIzYjgwNDY1YTQ0ZDc2YWJkCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVRodSBTZXAgMTEgMDg6MTE6MjMgMjAwOCArMDIwMAoKICAgIHBvd2VycGM6IEZpeCBib290bSB0byBib290IHVwIGFnYWluIHdpdGggYSBSYW1kaXNrCgogICAgQ29tbWl0IDJhMWEyY2I2IGRpZG50IHJlbW92ZSB0aGUgZHVtbXkgbWVtIHJlc2VydmF0aW9uIGluIGZkdF9jaG9zZW4sCiAgICBhbmQgdGhpcyBzdG9wcGVkIExpbnV4IGZyb20gYm9vdGluZyB3aXRoIGEgUmFtZGlzay4gVGhpcyBwYXRjaCBmaXhlcwogICAgdGhpcywgYnkgZGVsZXRpbmcgdGhlIHVzZWxlc3MgZHVtbXkgbWVtIHJlc2VydmF0aW9uLgoKICAgIFdoZW4gYm9vdGluZyB3aXRoIGEgUmFtZGlzaywgYSBmaXggb2Zmc2V0IEZEVF9SQU1ESVNLX09WRVJIRUFEIGlzIG5vdwogICAgYWRkZWQgdG8gb2Zfc2l6ZSwgc28gd2UgZG9udCBuZWVkIGFueW1vcmUgYSBkdW1teSBtZW0gcmVzZXJ2YXRpb24uCgogICAgSSBtZWFzdXJlZCB0aGUgdmFsdWUgb2YgRkRUX1JBTURJU0tfT1ZFUkhFQUQgb24gYSBNUEM4MjcwIGJhc2VkCiAgICBzeXN0ZW0gKD0weDQ0IGJ5dGVzKSBhbmQgcm91bmRlZCBpdCB1cCB0byAweDgwKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGZjOWMxNzI3YjViMzQ4M2NlNDljM2NiNjY4ZTgzMzJmYjAwMWI4YTcKQXV0aG9yOiBMdWlnaSAnQ29taW8nIE1hbnRlbGxpbmkgPGx1aWdpLm1hbnRlbGxpbmlAaWRmLWhpdC5jb20+CkRhdGU6CU1vbiBTZXAgOCAwMjo0NjoxMyAyMDA4ICswMjAwCgogICAgQWRkIHN1cHBvcnQgZm9yIExaTUEgdW5jb21wcmVzc2lvbiBhbGdvcml0aG0uCgogICAgU2lnbmVkLW9mZi1ieTogTHVpZ2kgJ0NvbWlvJyBNYW50ZWxsaW5pIDxsdWlnaS5tYW50ZWxsaW5pQGlkZi1oaXQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAwMDA4YjZkOTY4MTYwYWJlMmJmZDkzNjQ5M2YzYTUxNmE3YzhkYTIwCkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CUZyaSBKdW4gMjcgMjM6MDQ6MjAgMjAwOCArMDQwMAoKICAgIGZzbF9lbGJjX25hbmQ6IGVjY2xheW91dCBjbGVhbnVwcwoKICAgIFRoaXMgcGF0Y2ggZGVsZXRlcyBvb2JhdmFpbCBhc3NpZ25tZW50cywgdGhleSdyZSBjYWxjdWxhdGVkIGJ5IHRoZSBuYW5kCiAgICBjb3JlIGNvZGUgaW4gbmFuZF9zY2FuX3RhaWwsIHBsdXMgY3VycmVudCBvb2JhdmFpbCB2YWx1ZXMgYXJlIHdyb25nIGZvcgogICAgdGhlIExQIE5BTkRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgV29vZGhvdXNlIDxEYXZpZC5Xb29kaG91c2VAaW50ZWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGY0MmJmMWMzOTNkNTNhNzBjMjU0NWU5ZjMyOWQxMWM0NmQ3NDc5NApBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglGcmkgSnVuIDI3IDIzOjA0OjEzIDIwMDggKzA0MDAKCiAgICBmc2xfZWxiY19uYW5kOiBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgZmxhc2gtYmFzZWQgQkJUCgogICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHN1cHBvcnQgZm9yIGZsYXNoLWJhc2VkIEJCVCBmb3IgY2hpcHMgd29ya2luZwogICAgdGhyb3VnaCBFTEJDIE5BTkQgY29udHJvbGxlciwgc28gdGhhdCBOQU5EIGNvcmUgd2lsbCBub3QgaGF2ZSB0byByZS1zY2FuCiAgICBmb3IgYmFkIGJsb2NrcyBvbiBldmVyeSBib290LgoKICAgIEJlY2F1c2UgRUxCQyBjb250cm9sbGVyIG1heSBwcm92aWRlIEhXLWdlbmVyYXRlZCBFQ0NzIHdlIHNob3VsZCBhZGp1c3QKICAgIGJidCBwYXR0ZXJuIGFuZCBiYnQgdmVyc2lvbiBwb3NpdGlvbnMgaW4gdGhlIE9PQiBmcmVlIGFyZWEuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBXb29kaG91c2UgPERhdmlkLldvb2Rob3VzZUBpbnRlbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5N2FlMDIzNjQ4ZTc2NGY3OTRmZmI5YzUyZGExMDlkNmNhZjA5YzQ3CkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CUZyaSBKdW4gMjcgMjM6MDQ6MDQgMjAwOCArMDQwMAoKICAgIGZzbF9lbGJjX25hbmQ6IGZpeCBPT0Igd29ya2FiaWxpdHkgZm9yIGxhcmdlIHBhZ2UgTkFORCBjaGlwcwoKICAgIEZvciBsYXJnZSBwYWdlIGNoaXBzLCBuYW5kX2JidCBpcyBsb29raW5nIGludG8gT09CIGFyZWEsIGFuZCBjaGVja2luZwogICAgZm9yICIweGZmIDB4ZmYiIHBhdHRlcm4gYXQgT09CIG9mZnNldCAwLiBUaGF0IGlzLCB0d28gYnl0ZXMgc2hvdWxkIGJlCiAgICByZXNlcnZlZCBmb3IgYmJ0IG1lYW5zLgoKICAgIEJ1dCBFTEJDIGRyaXZlciBpcyBzcGVjaWZ5aW5nIGVjY2xheW91dCBzbyB0aGF0IG9vYmZyZWUgYXJlYSBzdGFydHMgYXQKICAgIG9mZnNldCAxLCBzbyBvbmx5IG9uZSBieXRlIGxlZnQgZm9yIHRoZSBiYnQgcHVycG9zZXMuCgogICAgVGhpcyBjYXVzZXMgcHJvYmxlbXMgd2l0aCBhbnkgT09CIHVzZXJzLCBuYW1lbHkgSkZGUzI6IGFmdGVyIGZpcnN0IG1vdW50CiAgICBKRkZTMiB3aWxsIGZpbGwgYWxsIE9PQnMgd2l0aCAiZXJhc2VkIG1hcmtlciIsIHNvIE9PQnMgd2lsbCBjb250YWluOgoKICAgICAgT09CIERhdGE6IGZmIDE5IDg1IDIwIDAzIDAwIGZmIGZmIGZmIDAwIDAwIDA4IGZmIGZmIGZmIGZmCiAgICAgIE9PQiBEYXRhOiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZgogICAgICBPT0IgRGF0YTogZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYKICAgICAgT09CIERhdGE6IGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmCgogICAgQW5kIG9uIHRoZSBuZXh0IGJvb3QsIE5BTkQgY29yZSB3aWxsIHJlc2NhbiBmb3IgYmFkIGJsb2NrcywgdGhlbiB3aWxsCiAgICBzZWUgIjB4ZmYgMHgxOSIgcGF0dGVybiwgYW5kIHdpbGwgbWFyayBhbGwgYmxvY2tzIGFzIGJhZCBvbmVzLgoKICAgIFRvIGZpeCB0aGUgaXNzdWUgd2Ugc2hvdWxkIGltcGxlbWVudCBvdXIgb3duIGJhZCBibG9jayBwYXR0ZXJuOiBqdXN0IG9uZQogICAgYnl0ZSBhdCBPT0Igc3RhcnQuIFRob3VnaCwgdGhpcyB3aWxsIHdvcmsgb25seSBmb3IgeDggY2hpcHMuIEZvciB4MTYKICAgIGNoaXBzIHR3byBieXRlcyBtdXN0IGJlIGNoZWNrZWQuIFNpbmNlIEVMQkMgZHJpdmVyIGRvZXMgbm90IHN1cHBvcnQgeDE2CiAgICBOQU5EcyAoeWV0KSwgd2UncmUgc2FmZSBmb3Igbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgV29vZGhvdXNlIDxEYXZpZC5Xb29kaG91c2VAaW50ZWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzIzOGFkYTMxMzA1N2E4NTQwOTQ4NWI4ZWUyMTUxNWRjMTBjMDdhNQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBTZXAgMTIgMTM6NTI6MjEgMjAwOCArMDIwMAoKICAgIE1QQzUxMng6IHJlZHVjZSB0aW1lb3V0IHdhaXRpbmcgZm9yIEV0aGVybmV0IGF1dG9uZWdvdGlhdGlvbiB0byAyLjVzCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBiMTg0MTBlNTA4YTEyYmEwYTE3N2RmYzJhMzg2ODU3YzgwNmZhOTZkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgU2VwIDExIDEzOjA1OjU2IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEVuYWJsZSBkZXZpY2UgdHJlZSAoRkRUKSBzdXBwb3J0IGluIHpldXMgYm9hcmQgcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3YmY1ZWNmYTUwNzIyYTlmZWI0NWVhOGYwNGRhNzVmNWQ0MDZmMjBiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgU2VwIDEwIDE2OjUzOjQ3IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBTRFJBTSBpbml0aXRpYWxpemF0aW9uIG9mIG11bHRpcGxlIDQwNSBiYXNlZCBib2FyZCBwb3J0cwoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBwcm9ibGVtIGludHJvZGljZWQgd2l0aCBwYXRjaAogICAgYmJlZmYzMGMgW3BwYzR4eDogUmVtb3ZlIHN1cGVyZmx1b3VzIGRyYW1faW5pdCgpIGNhbGwgb3IgcmVwbGFjZSBpdCBieQogICAgaW5pdGRyYW0oKV0uCgogICAgVGhlIGJvYXJkcyBhZmZlY3RlZCBhcmU6CiAgICAtIFBDSTQwNQogICAgLSBQUENoYW1lbGVvbkVWQgogICAgLSBxdWFkMTAwaGQKICAgIC0gdGFpaHUKICAgIC0gemV1cwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2MTczN2M1OWEzMjg1ZjZmYWRmOTZhNTgzNjg3OTg5OGMwNGVjMjhkCkF1dGhvcjogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CkRhdGU6CVRodSBTZXAgMTEgMTk6NDE6MjYgMjAwOCAtMDQwMAoKICAgIHBwYzR4eDogQWRkIC5naXRpZ25vcmUgZmlsZSB0byB4aWxpbngtcHBjNDQwIGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2FyZG8gUmliYWxkYSBEZWxnYWRvIDxyaWNhcmRvLnJpYmFsZGFAdWFtLmVzPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDJiZWM0OThlZDExNjRhNThjZDg0MzdiNTYxYmRjNDU1MWQ2OWY5YmYKQXV0aG9yOiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQHVhbS5lcz4KRGF0ZToJVGh1IFNlcCAxMSAxOTo0MToyNSAyMDA4IC0wNDAwCgogICAgcHBjNHh4OiBGaXggY29tcGlsYXRpb24gb2YgdjVmeDMwdGV2YWxfZmxhc2gKCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQHVhbS5lcz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0YmVkOWRlZWJiZDdlZTZmMGJhNzQ2YjQ0ZDQ3YTkyMjE1NmY3NDA0CkF1dGhvcjogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CkRhdGU6CVdlZCBTZXAgMTAgMTc6NDQ6MzAgMjAwOCAtMDQwMAoKICAgIHBwYzR4eDogRml4IGluLXRyZWUgYnVpbGQgZm9yIHBwYzQ0MC1nZW5lcmljIGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2FyZG8gUmliYWxkYSBEZWxnYWRvIDxyaWNhcmRvLnJpYmFsZGFAdWFtLmVzPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDA2YzRhYjUwZjVjY2ZiNTVlYTJkZDMyNGFhMjhiMmIwNjEwMmU0MTYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgU2VwIDEyIDAyOjIwOjQ3IDIwMDggKzAyMDAKCiAgICBBUk06IHN5bmNocm9uaXplIG1hY2gtdHlwZXMuaCB3aXRoIGxpbnV4IDIuNi4yNy1yYzYKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDNlZTlmMDNmNTg4YWQ2MDVlM2ZkMTA1MzAyMzdmOWUzZTJlN2FiNGMKQXV0aG9yOiBKZW5zIFNjaGFyc2lnIDxlc3dAYnVzLWVsZWt0cm9uaWsuZGU+CkRhdGU6CUZyaSBTZXAgMTIgMDI6MjA6NDcgMjAwOCArMDIwMAoKICAgIGF0OTFybTkyMDA6IGZpeCBlcnJvcnMgd2l0aCBDT05GSUdfQ01EX0kyQ19UUkVFCgogICAgVGhpcyBwYXRjaCBwcmV2ZW50cyBsaW5rZXIgZXJyb3Igb24gQVQ5MVJNOTIwMCBib2FyZHMsIGlmCiAgICBDT05GSUdfQ01EX0kyX1RSRUUgaXMgc2V0LgogICAgSXQgaW1wbGVtZW50cyBpMmNfc2V0X2J1c19zcGVlZCBhbmQgaTJjX2dldF9idXNfc3BlZWQgYXMgYSBkdW1teSBmdW5jdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZW5zIFNjaGFyc2lnIDxlc3dAYnVzLWVsZWt0cm9uaWsuZGU+Cgpjb21taXQgYjViMDM0NDk1N2QzMmUzZDA3YThkZDcyZmNlNjRmYjQ4ZTY4MGJhNApBdXRob3I6IEh1Z28gVmlsbGVuZXV2ZSA8aHVnby52aWxsZW5ldXZlQGx5cnRlY2guY29tPgpEYXRlOglGcmkgU2VwIDEyIDAyOjIwOjQ3IDIwMDggKzAyMDAKCiAgICBBUk0gRGFWaW5jaTogUmVtb3ZlIGR1cGxpY2F0ZSBjb2RlIGluIGNwdS9hcm05MjZlanMvZGF2aW5jaS9kcDgzODQ4LmMKCiAgICBBUk0gRGFWaW5jaTogUmVtb3ZlIGR1cGxpY2F0ZSBjb2RlIGluIGNwdS9hcm05MjZlanMvZGF2aW5jaS9kcDgzODQ4LmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBIdWdvIFZpbGxlbmV1dmUgPGh1Z28udmlsbGVuZXV2ZUBseXJ0ZWNoLmNvbT4KCmNvbW1pdCAwM2RiNTMzMzVjOGViYTY1NmE3YzQ0ZDE1NTViMWE0NTE0MzgzZTMzCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJRnJpIFNlcCAxMiAwMjoyMDo0NiAyMDA4ICswMjAwCgogICAgbWFrZTogUmVtb3ZlIHJlZHVuZGFudCBfX0FSTV9fIGFkZGl0aW9uIHdoZW4gY3Jvc3MtY29tcGlsaW5nIG9uICpCU0QKCiAgICBfX0FSTV9fIGlzIGdpdmVuIGJ5IGFybV9jb25maWcubWsgYXV0b21hdGljYWxseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDhjYzYyYTdkOWM3N2Y4ZWY1MTY2ZmI1NzMyMmM0YTZkZGFjMzIwYjQKQXV0aG9yOiBDbGF1ZGlvIFNjb3JkaW5vIDxjbGF1ZGlvQGV2aWRlbmNlLmV1LmNvbT4KRGF0ZToJRnJpIFNlcCAxMiAwMjoyMDo0NiAyMDA4ICswMjAwCgogICAgRml4IE1BQ0hfVFlQRSBmb3IgdGhlIEFUOTFSTTkyMDBESyBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBDbGF1ZGlvIFNjb3JkaW5vIDxjbGF1ZGlvQGV2aWRlbmNlLmV1LmNvbT4KCmNvbW1pdCAyNzQ3MzdlNWViMjViMmJjZDNhZjNhOTZkYTkyM2VmZmQ1NDMyODRmCkF1dGhvcjogQW5kcmV3IER5ZXIgPGFkeWVyQHJpZ2h0aGFuZHRlY2guY29tPgpEYXRlOglGcmkgU2VwIDEyIDAyOjIwOjQ2IDIwMDggKzAyMDAKCiAgICBpLm14IGNoYW5nZSBnZXRfdGltZXIoYmFzZSkgdG8gcmV0dXJuIHRpbWUgc2luY2UgYmFzZQoKICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyBnZXRfdGltZXIoKSBmb3IgaS5NWCB0byByZXR1cm4gdGhlIHRpbWUgc2luY2UKICAgICdiYXNlJyBpbnN0ZWFkIG9mIHRoZSB0aW1lIHNpbmNlIHRoZSBjb3VudGVyIHdhcyBhdCB6ZXJvLgoKICAgIFN5bXB0b20gc2VlbiBpcyBmbGFzaCB0aW1lb3V0IGVycm9ycyB3aGVuIGVyYXNpbmcgb3IgcHJvZ3JhbW1pbmcgYQogICAgc2VjdG9yIHVzaW5nIHRoZSBjb21tb24gY2ZpIGZsYXNoIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmV3IER5ZXIgPGFkeWVyQHJpZ2h0aGFuZHRlY2guY29tPgoKY29tbWl0IDQ4ZmVkNDA1NzViM2U4ZWFlOTYwZWIwMTQxNTA5ZGRkOWE3MzAxMmEKQXV0aG9yOiBBbmRyZXcgRHllciA8YWR5ZXJAcmlnaHRoYW5kdGVjaC5jb20+CkRhdGU6CUZyaSBTZXAgMTIgMDI6MjA6NDYgMjAwOCArMDIwMAoKICAgIGkuTVggdXNlIHUtYm9vdCBiYXVkIHJhdGUgYW5kIGRvbid0IGFzc3VtZSBVQVJUIG1hc3RlciBjbG9jawoKICAgIDEpIENoYW5nZSB0aGUgaS5NWCBzZXJpYWwgZHJpdmVyIHRvIHVzZSB0aGUgYmF1ZCByYXRlIHNldCBpbiB0aGUKICAgICB1LWJvb3QgZW52aXJvbm1lbnQKCiAgICAyKSBkb24ndCBhc3N1bWUgYSAxNk1IeiB2YWx1ZSBmb3IgUEVSQ0xLMSBpbiBiYXVkIHJhdGUgY2FsY3VsYXRpb25zCgogICAgMykgZG9uJ3Qgd3JpdGUgYSAxIHRvIHRoZSBSRFIgYml0IGluIHRoZSBVU1IyIHJlZy4gKGJpdCBpcyBub3QgIndyaXRlCiAgICAgb25lIHRvIGNsZWFyIiBsaWtlIG90aGVyIHN0YXR1cyBiaXRzIGluIHRoZSByZWcuKQoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJldyBEeWVyIDxhZHllckByaWdodGhhbmR0ZWNoLmNvbT4KCmNvbW1pdCA2ZTE1NTFhODcwZDM2MDgwNWI5ZDE3MmRjNTZkOTM1MDY0YWJlNzFkCkF1dGhvcjogQW5kcmV3IER5ZXIgPGFkeWVyQHJpZ2h0aGFuZHRlY2guY29tPgpEYXRlOglGcmkgU2VwIDEyIDAyOjIwOjQ2IDIwMDggKzAyMDAKCiAgICBhcm05MjB0IGZpeCBjb25zdGFudCBlcnJvciBpbiBzdGFydC5TCgogICAgQ29kZSBpbiBjcHUvYXJtOTIwdC9zdGFydC5TIHdpbGwgZGllIHdpdGggYSBjb21waWxhdGlvbiBlcnJvciBpZgogICAgQ09ORklHX1NUQUNLU0laRSArIENGR19NQUxMT0NfTEVOIHdvcmtzIG91dCB0byBhbiBpbnZhbGlkIGNvbnN0YW50IGZvcgogICAgdGhlIEFSTSBzdWIgaW5zdHJ1Y3Rpb24uICBDaGFuZ2UgdGhlIGNvZGUgc28gdGhhdCBlYWNoIGlzIHN1YnRyYWN0ZWQKICAgIGluZGVwZW5kZW50bHkgdG8gYXZvaWQgdGhlIGVycm9yLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJldyBEeWVyIDxhZHllckByaWdodGhhbmR0ZWNoLmNvbT4KCmNvbW1pdCBiMjMyNTM4MzVmODcxY2Q5YmQ4ZTk1NWI5YTk3MWQxOGE3ZDRmZjU2CkF1dGhvcjogR3VydXJhamEgSGViYmFyIEsgUiA8Z3VydXJhamFrckBzYW55by5jby5pbj4KRGF0ZToJRnJpIFNlcCAxMiAwMjoyMDo0MCAyMDA4ICswMjAwCgogICAgQVJNIE9NQVAgOiBDb3JyZWN0IEludmFsaWQgVGltZXIgUmVnaXN0ZXIgRmllbGQgRGVjbGFyYXRpb24gaW4gb21hcDE1MTAuaCAmIG9tYXA3MzAuaAoKICAgIC0gQ29ycmVjdCBJbnZhbGlkICNkZWZpbmUgb2YgTVBVVElNX1BUVl9NQVNLIGZvcgogICAgICAgb21hcDE1MTAgJiBvbWFwNzMwIHJlZ2lzdGVyIGRlZmluaXRpb24KCiAgICAgTVBVVElNX1BUVl9NQVNLIGlzIGRlZmluZWQgYXMKICAgICAjZGVmaW5lIE1QVVRJTV9QVFZfTUFTSwkJKDB4Nzw8UFRWX0JJVCkKCiAgICAgd2hpbGUgaXQgc2hvdWxkIGhhdmUgYmVlbgogICAgICNkZWZpbmUgTVBVVElNX1BUVl9NQVNLCQkoMHg3PDxNUFVUSU1fUFRWX0JJVCkKCiAgICAtIEJlbG93IFBhdGNoIGNvcnJlY3RzIHRoZSBzYW1lCgogICAgU2lnbmVkLW9mZi1ieTogR3VydXJhamEgSGViYmFyIDxndXJ1cmFqYWtyQHNhbnlvLmNvLmluPgoKY29tbWl0IGM0NTVkMDczOTZkZGRjOTg2NGZkOGRiYjk2NWVlMTBmZTk1Y2U4Y2YKQXV0aG9yOiBBZHJpYW4gRmlsaXBpIDxhZHJpYW4uZmlsaXBpQGV1cm90ZWNoLmNvbT4KRGF0ZToJRnJpIEp1bCAxOCAxMTo1MjowMiAyMDA4IC0wNDAwCgogICAgU2V0IHVwIFNEL01NQyBPQ1IgYXMgY29tbWVudCBkZXNjcmliZXMuIGkuZS4gMy4yLTMuNHYuCgogICAgU2lnbmVkLW9mZi1ieTogQWRyaWFuIEZpbGlwaSA8YWRyaWFuLmZpbGlwaUBldXJvdGVjaC5jb20+Cgpjb21taXQgZWIxNjEzNWRmMjA1MzViMGQxOTk2OWY1MGZiNWJkMTdmOTVlOWMyNQpBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAyOCAxMjoyNToxMSAyMDA4ICswMjAwCgogICAgaS5NWDMxOiBkb2N1bWVudCB0aW1lciBwcmVjaXNpb24gb3B0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDFhNjMzN2IwMTM1MWI4MmE0NWIwZGVmYTc2ZjA4NzQ0NTExYzU4MGIKQXV0aG9yOiBNYWdudXMgTGlsamEgPGxpbGphLm1hZ251c0BnbWFpbC5jb20+CkRhdGU6CUZyaSBBdWcgMjkgMTA6MzY6MTggMjAwOCArMDIwMAoKICAgIGkuTVgzMTogTWFrZSB0aGUgU1BJIGJ1cyBhbmQgY2hpcCBzZWxlY3QgY29uZmlndXJhYmxlIGZvciBNQzEzNzgzCgogICAgVGhlIGkuTVgzMSBoYXMgdGhyZWUgU1BJIGJ1c2VzIGFuZCBlYWNoIGJ1cyBoYXMgc2V2ZXJhbCBjaGlwIHNlbGVjdHMKICAgIGFuZCB0aGUgTUMxMzc4MyBjaGlwIGNhbiBiZSBjb25uZWN0ZWQgdG8gYW55IG9mIHRoZXNlLiBUaGUgY3VycmVudAogICAgUlRDIGRyaXZlciBmb3IgTUMxMzc4MyBpcyBoYXJkY29kZWQgZm9yIENTUEkyL1NTMi4KCiAgICBUaGlzIHBhdGNoIG1ha2VzIG1ha2UgTUMxMzc4MyBTUEkgYnVzIGFuZCBjaGlwIHNlbGVjdCBjb25maWd1cmFibGUKICAgIHZpYSBDT05GSUdfTUMxMzc4M19TUElfQlVTIGFuZCBDT05GSUdfTUMxMzc4M19TUElfQ1MuCgogICAgU2lnbmVkLW9mZi1ieTogTWFnbnVzIExpbGphIDxsaWxqYS5tYWdudXNAZ21haWwuY29tPgoKY29tbWl0IDhjNGViZWMyNWIyMWUzNTViODQ4ODY5OGVjMTU5NGRhOTcwMWZmZjQKQXV0aG9yOiBNYWdudXMgTGlsamEgPGxpbGphLm1hZ251c0BnbWFpbC5jb20+CkRhdGU6CUZyaSBBdWcgMjkgMTA6MzY6MTcgMjAwOCArMDIwMAoKICAgIGkuTVgzMTogQWRkIHJlc2V0X3RpbWVyKCkgYW5kIG1vZGlmeSBnZXRfdGltZXJfbWFza2VkKCkuCgogICAgVGhpcyBwYXRjaCBhZGRzIHRoZSByZXNldF90aW1lcigpIGZ1bmN0aW9uIChuZWVkZWQgYnkgbmFuZF9iYXNlLmMpIGFuZAogICAgbW9kaWZpZXMgdGhlIGdldF90aW1lcl9tYXNrZWQoKSB0byB3b3JrIGluIHRoZSBzYW1lIHdheSBhcyB0aGUgb21hcDI0eHgKICAgIGZ1bmN0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hZ251cyBMaWxqYSA8bGlsamEubWFnbnVzQGdtYWlsLmNvbT4KCmNvbW1pdCBkZWVlYzQ5OTFhNTVkZTI0Mzc4NzAwMmVkZTI0ZDIzMzFkMjM0ZmM4CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIFNlcCAxMCAyMjo0ODowOSAyMDA4ICswMjAwCgogICAgYXAzMjVyeGE6IHJlbW92ZSBkdXBsaWNhdGUgQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGEzYTA4YzBjZWRkMzI5ZWRmNTI1NmUxZDZiMmJhZDBmY2EwMDI3MjUKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgU2VwIDEwIDIyOjQ4OjA5IDIwMDggKzAyMDAKCiAgICBib290bSBhcm0vYXZyMzIvYmxhY2tmaW4vbWljcm9ibGF6ZS9uaW9zMi9zaDogcmVtb3ZlIG5vIG1vcmUgbmVlZCAnZXJyb3InIGxhYmVsCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAwZThkMTU4NjY0YTkxMzM5MmNiMDFmYjExYTk0OGQ4M2Y3MmUxMDVlCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIFNlcCAxMCAyMjo0ODowNiAyMDA4ICswMjAwCgogICAgcmVuYW1lIENGR19FTlYgbWFjcm9zIHRvIENPTkZJR19FTlYKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDFlZGU3ODcxMGMzYmY5YWQ2ZjRhNTNhYWRkYzNiY2M4NmZlZGQ5ZGYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgU2VwIDEwIDIyOjQ4OjA1IDIwMDggKzAyMDAKCiAgICBudmVkaXQ6IHJlbmFtZSBlcnJvciBjb21tZW50IHRvIENPTkZJR19FTlZfSVNfSU5fCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBiNjRiNzc1ZTc1NDZlZDEzOGRmMzYwY2ViM2E3MWVlMzU4Y2I5YTAxCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIFNlcCAxMCAyMjo0ODowNSAyMDA4ICswMjAwCgogICAgY21kX21lbTogTW92ZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOGE0MGZiMTQ4ZWZhNDQyZDY1MjZlYWM0NmEyMDAxZTRjNjRkMjhmZgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBTZXAgMTAgMjI6NDg6MDUgMjAwOCArMDIwMAoKICAgIG1vdmUgY21kX2dldF9kYXRhX3NpemUgdG8gY29tbWFuZC5jCgogICAgYWRkIENNRF9EQVRBX1NJWkUgbWFjcm8gdG8gZW5hYmxlIGl0CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA1MDc2NDFkMjQ5MTk4MDUzMTkzMmI5ZjI1ZGFiMzdmZTVlNmMzYTFhCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIFNlcCAxMCAyMjo0ODowNCAyMDA4ICswMjAwCgogICAgZW52X2ZsYXNoOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA1YTFhY2ViMDY4OWUyZjczMTQ5MTgzODk3MDg4NGE2NzNlZjdlN2QzCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIFNlcCAxMCAyMjo0ODowNCAyMDA4ICswMjAwCgogICAgcmVuYW1lIENGR19FTlZfSVNfSU5fRkxBU0ggaW4gQ09ORklHX0VOVl9JU19JTl9GTEFTSAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgN2Q5YjViYWU1YmE1NThjNzQ2NGQ4OWQwMzNhY2EwNGFjYWYwMTE3MgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBTZXAgMTAgMjI6NDg6MDMgMjAwOCArMDIwMAoKICAgIGNsZWFudXAgdXNlIG9mIENGR19FTlZfSVNfSU5fRkxBU0gKCiAgICAtICNpZiBDRkdfRU5WX0lTX0lOX0ZMQVNICiAgICAtICNpZiAoQ0ZHX0VOVl9JU19JTl9GTEFTSCA9PSAxKQogICAgLSAjZGVmaW5lIENGR19FTlZfSVNfSU5fRkxBU0ggMAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMGNmNGZkM2NmOGQwZTAwNjA1YmVjNWZjNTZmODljNjQxNTAxNWE0NgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBTZXAgMTAgMjI6NDg6MDEgMjAwOCArMDIwMAoKICAgIHJlbmFtZSBlbnZpcm9ubWVudC5jIGluIGVudl9lbWJlZGRlZC5jIHRvIHJlZmxlY3QgaXMgZnVuY3Rpb25hbGl0eQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYzA4NzhhZjZlMzJmMGZkOGUxM2E2Y2EzMTViOWFkZDY0NDQxMTE1YQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBTZXAgMTAgMjI6NDg6MDEgMjAwOCArMDIwMAoKICAgIGVudl9ub3doZXJlOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA5M2Y2ZDcyNTQ0ZGE0NTEwYTE0NmJjNGM5M2Q2MDliMDExNmNkZTM3CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIFNlcCAxMCAyMjo0ODowMCAyMDA4ICswMjAwCgogICAgcmVuYW1lIENGR19FTlZfSVNfTk9XSEVSRSBpbiBDT05GSUdfRU5WX0lTX05PV0hFUkUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDI1NTZlZjc4MTEzYjVmMDg5ZGZjYWM1ZGE5MGJmMzFkZDU2ODM5N2IKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgU2VwIDEwIDIyOjQ4OjAwIDIwMDggKzAyMDAKCiAgICBlbnZfc2Y6IE1vdmUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gdG8gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDBiNTA5OWE4NDE5YmY5YzgyOGRmNWUzZTJjNjg3OGRjMzAwZDk4ZTMKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgU2VwIDEwIDIyOjQ4OjAwIDIwMDggKzAyMDAKCiAgICByZW5hbWUgQ0ZHX0VOVl9JU19JTl9TUElfRkxBU0ggaW4gQ09ORklHX0VOVl9JU19JTl9TUElfRkxBU0gKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDU1YzVmNDk5MTBlYzgyMjUzNDdhYTFkMjExMzUyYTg0ZGU2NjQ5YjQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgU2VwIDEwIDIyOjQ4OjAwIDIwMDggKzAyMDAKCiAgICBlbnZfb25lbmFuZDogTW92ZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOTY1NjEzOGZmMWEzNGQ0YzQ3NjhkYjZiNDkwZGVmZmM0MGVlNjc0YgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBTZXAgMTAgMjI6NDc6NTkgMjAwOCArMDIwMAoKICAgIHJlbmFtZSBDRkdfRU5WX0lTX0lOX09ORU5BTkQgaW4gQ09ORklHX0VOVl9JU19JTl9PTkVOQU5ECgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA5NTdhMGU2OTU3NTY4M2VmZDcwYWNlMTQ3NzQ2YmJiM2Q4ZTdjNTAxCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIFNlcCAxMCAyMjo0Nzo1OSAyMDA4ICswMjAwCgogICAgZW52X252cmFtOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA5MzE0Y2VlNjkxNzQ0NGFiODhiZDRlNzU4ZGE3YTMwOTc1MTIwMTg3CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIFNlcCAxMCAyMjo0Nzo1OSAyMDA4ICswMjAwCgogICAgcmVuYW1lIENGR19FTlZfSVNfSU5fTlZSQU0gaW4gQ09ORklHX0VOVl9JU19JTl9OVlJBTQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMDZmNjEzNTQzOTc5MTFhNGMxMjFkZmE1MWI2Y2NiZjdlMzAwZDQ4YgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBTZXAgMTAgMjI6NDc6NTkgMjAwOCArMDIwMAoKICAgIGVudl9uYW5kOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA1MWJmZWUxOTIwOTkyMDZhNDM5N2YxNWYzYjkzNTE2ZTAxZjU4YWIwCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIFNlcCAxMCAyMjo0Nzo1OCAyMDA4ICswMjAwCgogICAgcmVuYW1lIENGR19FTlZfSVNfSU5fTkFORCBpbiBDT05GSUdfRU5WX0lTX0lOX05BTkQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGQ4Y2MwNGQwYWM5YzdjMGQxMjQ1NDcwOGFhZjU0ODlmODUzMmJiZjkKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgU2VwIDEwIDIyOjQ3OjU4IDIwMDggKzAyMDAKCiAgICBlbnZfZGF0YWZsYXNoOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAwNTdjODQ5YzQ1YjllZTE5ZGY4ZmYzYWNkZWVlNjZiZTUyODE5OTYyCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIFNlcCAxMCAyMjo0Nzo1OCAyMDA4ICswMjAwCgogICAgcmVuYW1lIENGR19FTlZfSVNfSU5fREFUQUZMQVNIIGluIENPTkZJR19FTlZfSVNfSU5fREFUQUZMQVNICgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBkMTAzNGJjOGRiNjBmYTZiZDQxOTMyOGJhZjZhNzVjYjA2NDVjZWU4CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIFNlcCAxMCAyMjo0Nzo1MiAyMDA4ICswMjAwCgogICAgY21kX2VlcHJvbTogTW92ZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYmY1YTc3MTBlYzcwZTkwZTk4ZjQ1MWI0YmEwZWI2NWY5ZmZjMzRlYgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBTZXAgNSAwOToxOTo1NCAyMDA4ICswMjAwCgogICAgZW52X2VlcHJvbTogTW92ZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYmIxZjhiNGY4YmIwYmZjZTUyZTBmYWE0NjM3Yjk3NWI3NDU4MjRiMwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBTZXAgNSAwOToxOTozMCAyMDA4ICswMjAwCgogICAgcmVuYW1lIENGR19FTlZfSVNfSU5fRUVQUk9NIGluIENPTkZJR19FTlZfSVNfSU5fRUVQUk9NCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAzMjYyOGM1MDA4MTA1YTczMjIxMjAwM2Q4M2I3NWYwNWU1MjQzYmIyCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IEF1ZyAzMCAyMzo1NDo1OCAyMDA4ICswMjAwCgogICAgY21kX21hYzogTW92ZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiB0byBNYWtlZmlsZQoKICAgIGZpbmlzaCByZW1hbmluZyBDRkdfSURfRUVQUk9NIGluIENPTkZJR19JRF9FRVBST00KICAgIHN0YXJ0IGluIGNvbW1pdCBhZDhmODY4N2I3OGMzZTkxN2IxNzNmMDM4OTI2Njk1MzgzYzU1NTU1CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBlNTY0OGFjYWIxNTNmMGY0MjliZmM3MTQ5MDJjNWFhYTc4NzlmNzFiCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IEF1ZyAzMCAyMzo0Nzo0MSAyMDA4ICswMjAwCgogICAgY21kX2ZkYzogTW92ZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMmQwMmQ5MWQ1MzBlODMxZjJkYWIyMjgwODU5NjNmYzFkNWI3MWNiMApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBBdWcgMzAgMjM6NDc6MzggMjAwOCArMDIwMAoKICAgIGNvbW1vbi9NYWtlZmlsZTogYWRkIGNvcmUgY29tbWFuZCBzZWN0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAwZDkyZDRhNjk5ZmIxYTM5MzgxZDk4NTcxZGM1MWZiOTdlNWJjZjllCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IEF1ZyAzMCAyMzoyOTo1NyAyMDA4ICswMjAwCgogICAgY21kX3ZmZDogTW92ZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNjY0NDY0MWQwNzJhZWUzMDg3ZGExMjlkODQ0MzE4NzE5NmE0ZDhhOQpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgU2VwIDEwIDExOjQ4OjQ5IDIwMDggLTA1MDAKCiAgICBkZWx0YSwgenlsb25pdGU6IFVwZGF0ZSBuYW5kX29vYmluZm8gdG8gbmFuZF9lY2NsYXlvdXQuCgogICAgVGhpcyBpcyBwYXJ0IG9mIHRoZSBzd2l0Y2ggdG8gbmV3ZXIgdXBzdHJlYW0gTVREIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOWIwNWFhNzg4YmZkZDMyNjRmZjFiYzk0MThjYjE5NTUwYTcyMzRlNApBdXRob3I6IEh1Z28gVmlsbGVuZXV2ZSA8aHVnby52aWxsZW5ldXZlQGx5cnRlY2guY29tPgpEYXRlOglTYXQgQXVnIDMwIDE3OjA2OjU1IDIwMDggLTA0MDAKCiAgICBBUk0gRGFWaW5jaTogRml4IGJyb2tlbiBIVyBFQ0MgZm9yIGxhcmdlIHBhZ2UgTkFORC4KCiAgICBCYXNlZCBvbiBvcmlnaW5hbCBwYXRjaCBieSBCZXJuYXJkIEJsYWNraGFtIDxiZXJuYXJkQGxhcmdlc3RwcmltZS5uZXQ+CgogICAgVS1ib290J3MgSFcgRUNDIHN1cHBvcnQgZm9yIGxhcmdlIHBhZ2UgTkFORCBvbiBEYXZpbmNpIGlzIGNvbXBsZXRlbHkKICAgIGJyb2tlbi4gIFNvbWUga2VybmVscywgc3VjaCBhcyB0aGUgMi42LjEwIG9uZSBzdXBwb3J0ZWQgYnkKICAgIE1vbnRhVmlzdGEgZm9yIERhVmluY2ksIHJlbHkgdXBvbiB0aGlzIGJyb2tlbiBiZWhhdmlvdXIgYXMgdGhleQogICAgc2hhcmUgdGhlIHNhbWUgY29kZSBmb3IgRUNDcy4gSW4gdGhlIGV4aXN0aW5nIHNjaGVtZSwgZXJyb3IKICAgIGRldGVjdGlvbiAqbWlnaHQqIHdvcmsgb24gbGFyZ2UgcGFnZSwgYnV0IGVycm9yIGNvcnJlY3Rpb24KICAgIGRlZmluaXRlbHkgZG9lcyBub3QuICBTbWFsbCBwYWdlIEVDQyBjb3JyZWN0aW9uIHdvcmtzLCBidXQgdGhlCiAgICBmb3JtYXQgaXMgbm90IGNvbXBhdGlibGUgd2l0aCB0aGUgbWFpbmxpbmUgZ2l0IGtlcm5lbC4KCiAgICBUaGlzIHBhdGNoIGFkZHMgRUNDIGNvZGUgdGhhdCBtYXRjaGVzIHdoYXQgaXMgY3VycmVudGx5IGluIHRoZQogICAgRGF2aW5jaSBnaXQgcmVwb3NpdG9yeSAoc2luY2UgTkFORCBzdXBwb3J0IHdhcyBhZGRlZCBpbiAyLjYuMjQpLgogICAgVGhpcyBtYWtlcyB0aGUgRUNDIGFuZCBPT0IgbGF5b3V0IHdyaXR0ZW4gYnkgdS1ib290IGNvbXBhdGlibGUgd2l0aAogICAgTGludXggZm9yIGJvdGggc21hbGwgcGFnZSBhbmQgbGFyZ2UgcGFnZSBkZXZpY2VzIGFuZCBmaXhlcyBFQ0MKICAgIGNvcnJlY3Rpb24gZm9yIGxhcmdlIHBhZ2UgZGV2aWNlcy4KCiAgICBUaGUgb2xkIGJlaGF2aW91ciBjYW4gYmUgcmVzdG9yZWQgYnkgZGVmaW5pbmcgdGhlIG1hY3JvCiAgICBDRkdfREFWSU5DSV9CUk9LRU5fRUNDLCB3aGljaCBpcyB1bmRlZmluZWQgYnkgZGVmYXVsdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIdWdvIFZpbGxlbmV1dmUgPGh1Z28udmlsbGVuZXV2ZUBseXJ0ZWNoLmNvbT4KICAgIEFja2VkLWJ5OiBTZXJnZXkgS3VidXNoeW4gPGtzaUBrb2k4Lm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBiN2M1NjM5ODkxZjQxMDNhMGUzMWVjN2FlMGJlYjNlOTdlZDM4MzYKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJV2VkIFNlcCAxMCAxMToxNToyOCAyMDA4ICswMjAwCgogICAgbXVhczMwMDE6IHVwZGF0ZSBCUjQgc2V0dGluZ3MKCiAgICBBbHNvIHNldCB1cCB0aGUgcG9ydCBwaW5zIGZvciB1c2luZyBJMkMuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgMzU5MTI5MzUwOWUwYzBiY2YyNDRiMGY5NzQ3NzViZmYyZTI1Njk3ZQpBdXRob3I6IFBldHJpIExlaHRpbmVuIDxwZXRyaS5sZWh0aW5lbkBpbm9pLmZpPgpEYXRlOglXZWQgU2VwIDEwIDA5OjQzOjQ5IDIwMDggKzAzMDAKCiAgICBhdXRvc2NyOiBGaXggb25lLWNoYXJhY3RlciBsaW5lcyBhbmQgbm9uLW5ld2xpbmUgdGVybWluYXRlZCBzY3JpcHRzCgogICAgV2hlbiBub3QgdXNpbmcgaHVzaCwgdGhlIGF1dG9zY3IgY29tbWFuZCBub3cgZXhlY3V0ZXMgbGluZXMgdGhhdCBhcmUKICAgIG9ubHkgb25lIGNoYXJhY3RlciBsb25nLiBJdCBhbHNvIHJ1bnMgdGhlIGxhc3QgbGluZSBvZiBzY3JpcHRzIGV2ZW4gaWYKICAgIGl0IGRvZXMgbm90IGVuZCBpbiBhIG5ld2xpbmUuCgogICAgU2lnbmVkLW9mZi1ieTogUGV0cmkgTGVodGluZW4gPHBldHJpLmxlaHRpbmVuQGlub2kuZmk+Cgpjb21taXQgOWViYmI1NGY3YTI1MDU1MDEwZmE2NjY4ZWJhNDBjNzJhNGM0Zjk4NQpBdXRob3I6IFZpY3RvciBHYWxsYXJkbyA8dmdhbGxhcmRvQGFtY2MuY29tPgpEYXRlOglUdWUgU2VwIDkgMTU6MTM6MjkgMjAwOCAtMDcwMAoKICAgIHBwYzR4eDogQWxsb3cgRFRUX0kyQ19ERVZfQ09ERSBjb25maWd1cmVkIGJ5IENGR19JMkNfRFRUX0FERFIKCiAgICBPbiBBTUNDIEFyY2hlcyBib2FyZCBEVFRfSTJDX0RFVl9DT0RFIGlzIGRpZmZlcmVudCB0aGVuIGNhbnlvbmxhbmRzCiAgICBhbmQgZ2xhY2llci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBWaWN0b3IgR2FsbGFyZG8gPHZnYWxsYXJkb0BhbWNjLmNvbT4KCmNvbW1pdCAyNDVmNmVmM2UxMTgyOGNiNDYxODhlMzk2ZmIxZTY3ZjdiMDdjZDAzCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CU1vbiBTZXAgOCAxMDoyMToxMSAyMDA4ICswMjAwCgogICAgbXVhczMwMDE6IGFkZGVkIHN1cHBvcnQgZm9yIHRoZSBMTTc1IHNlbnNvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA0YTAyYTJkY2E4MmFlYWI4ZjgzOWRiOWRkMzVmZGE5ZDU0MTJkYWNiCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CU1vbiBTZXAgOCAxMDoyMDoxOSAyMDA4ICswMjAwCgogICAgbXVhczMwMDE6IGFjdGl2YXRlIFdEVCBmb3IgdGhlIG11YXMzMDAxIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGE1NWQwNzRkYWMyNGRjOTQxZjFhZmI1YjRlOTRiMTUwOWJmZGRhNGUKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJTW9uIFNlcCA4IDEwOjE5OjM2IDIwMDggKzAyMDAKCiAgICBtdWFzMzAwMTogYWRkZWQgNjRNQiBTRFJBTSBhdXRvZGV0ZWN0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDUyNTE0Njk5NDM4OTVkZTRiYjlhMDRkNTA1MzM1MmNjMjJhY2I3ZDUKQXV0aG9yOiBBbmRyZXcgS2xvc3NuZXIgPGFuZHJld0BjZXNhLm9wYnUueGVyb3guY29tPgpEYXRlOglUaHUgQXVnIDIxIDA3OjEyOjI2IDIwMDggLTA3MDAKCiAgICBGaXggcHJpbnRmIGVycm9ycyB1bmRlciAtRERFQlVHCgogICAgRml4IHByaW50ZiBmb3JtYXQtc3RyaW5nL2FyZyBtaXNtYXRjaGVzIHVuZGVyIC1EREVCVUcuCgogICAgVGhlc2Ugd2FybmluZ3Mgb2NjdXIgd2l0aCBERUJVRyBkZWZpbmVkIGZvciBhIHBsYXRmb3JtIHVzaW5nCiAgICBjcHUvbXBjODV4eC4gIFVzZXJzIG9mIG90aGVyIGFyY2hpdGVjdHVyZXMgY2FuIHVuZWFydGggc2ltaWxhcgogICAgcHJvYmxlbXMgYnkgYWRkaW5nIHRoZSBsaW5lICJDRkxBR1MgKz0gLURERUJVRz0xIiBpbiBjb25maWcubWsgcmlnaHQKICAgIGFmdGVyICJDRkxBR1MgKz0gJChjYWxsIGNjLW9wdGlvbiwtZm5vLXN0YWNrLXByb3RlY3RvcikiLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJldyBLbG9zc25lciA8YW5kcmV3QGNlc2Eub3BidS54ZXJveC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGI5ZTQ3ODc2NDE3MTlkNzA5YmZhMmViZWI3MmU4YmQ0OTUyYmVlNwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBTZXAgOSAyMzo1NToxOCAyMDA4ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRywgcHJlcGFyZSAyMDA4LTEwLXJjMSByZWxlYXNlCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlMGZmM2QzNTBkNmI3OTYwZGViNWE4ODFkZmM1YWNmM2E2M2VmNjc2CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIFNlcCA4IDA4OjUxOjI5IDIwMDggLTA1MDAKCiAgICA4NXh4OiBFbnN1cmUgdGltZWJhc2UgaXMgemVybyBvbiBzZWNvbmRhcnkgY29yZXMKCiAgICBUaGUgZTUwMHVtIHNheXMgdGhlIHRpbWViYXNlIGlzIHZvbGF0aWxlIG91dCBvZiByZXNldC4gIFRvIGVuc3VyZQogICAgVEIgc3luYyB3b3JrcyB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSBpdHMgemVyby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDU0YjRhYjNjOTYxYTIwMTJhMWMyYTA5YzI1OWE2MzQzMzIzZWM1NTEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUdWUgU2VwIDkgMjI6MTg6MjQgMjAwOCArMDIwMAoKICAgIGJvb3RtX2xvYWRfb3M6IGZpeCBsb2FkX2VuZCBkZWJ1ZyBtZXNzYWdlCgogICAgcHJpbnQgbG9hZF9lbmQgdmFsdWUgbm90IHBvaW50ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDFkOWFmMGJlNzY0OTYwZTZjYzFjMDkzZTk3MTc2YzM1NDI3OTY4MjAKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUdWUgU2VwIDkgMjI6MTg6MjMgMjAwOCArMDIwMAoKICAgIGJvb3RtOiBlbmFibGUgZmR0IHN1cHBvcnQgb25seSBvbiBwcGMsIG02OGsgYW5kIHNwYXJjCgogICAgLi4uYXMgZG9uZSBpbiBpbWFnZS5jCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA3NDhiNTI3NGU3NmY4MWRmODVjZmNmZmFmZmVkYzMyMzY3OGQwNjIzCkF1dGhvcjogTWFya3VzIEhlaWRlbGJlcmcgPG1hcmt1cy5oZWlkZWxiZXJnQHdlYi5kZT4KRGF0ZToJVHVlIFNlcCA5IDE4OjUxOjA1IDIwMDggKzAyMDAKCiAgICBjb21tb24vY21kX21lbS5jOiByZW1vdmUgbmVzdGVkICNpZiBkZWZpbmVkKENPTkZJR19DTURfTUVNT1JZKQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBIZWlkZWxiZXJnIDxtYXJrdXMuaGVpZGVsYmVyZ0B3ZWIuZGU+Cgpjb21taXQgNjUwNjMyZmU0Y2EwOWNmZDBlNWU2YTU5M2YyZWZjMDJlZjg3YTU4YwpBdXRob3I6IE1hcmt1cyBIZWlkZWxiZXJnIDxtYXJrdXMuaGVpZGVsYmVyZ0B3ZWIuZGU+CkRhdGU6CVR1ZSBTZXAgOSAxNzozMTo0NiAyMDA4ICswMjAwCgogICAgZ2l0aWdub3JlOiBhZGQgdGFncyBmaWxlcyBhbmQgVmltIHN3YXAgZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBIZWlkZWxiZXJnIDxtYXJrdXMuaGVpZGVsYmVyZ0B3ZWIuZGU+Cgpjb21taXQgMWQ5YjY3YjIzZmNhNmEyNTE1NDMzMzczMzIwNDMzOTgwMjUxMDcyMApBdXRob3I6IFlvc2hpaGlybyBTaGltb2RhIDxzaGltb2RhLnlvc2hpaGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJVHVlIFNlcCA5IDE3OjUyOjQ3IDIwMDggKzA5MDAKCiAgICBhZGQgYm9hcmRfZXRoX2luaXQoKSBmb3Igc2g3Nzg1bGNyIGJvYXJkCgogICAgRml4IHRoZSBwcm9ibGVtIHRoYXQgY2Fubm90IHdvcmsgUlRMODE2OSBvbiBzaDc3ODVsY3IgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogWW9zaGloaXJvIFNoaW1vZGEgPHNoaW1vZGEueW9zaGloaXJvQHJlbmVzYXMuY29tPgoKY29tbWl0IDdiN2E4NjlhOGJhM2JkNmQ5YmZmYjc0OGM5MTIzMjE0MTMzMGY1MTQKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDYgMTY6MDg6NDEgMjAwOCAtMDUwMAoKICAgIG10ZDogU1BJIEZsYXNoOiBTdXBwb3J0IHRoZSBTVE1pY3JvIEZsYXNoCgogICAgQWRkIE1URCBTUEkgRmxhc2ggc3VwcG9ydCBmb3IgTTI1UDE2LCBNMjVQMjAsIE0yNVAzMiwKICAgIE0yNVA0MCwgTTI1UDY0LCBNMjVQODAsIE0yNVAxMjguCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gTWNNdWxsYW4gPG1jbXVsbGFuQG5ldGFwcC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRiYzA3YzM2ODA3NjU2MGVkN2ZhNGM5Zjk4N2M3MWE4NTIxNDg4YTkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgU2VwIDkgMTc6NTU6MzEgMjAwOCArMDIwMAoKICAgIHRyYWI6IGZpeCBidWlsZCBwcm9ibGVtIGFmdGVyIGNoYW5nZSB0byB1c2UgZG9fZGl2KCkKCiAgICBXZSBtdXN0IGxpbmsgd2l0aCBsaWJnZW5lcmljIG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDNiMjBmZDgzYzczYzIyYWNmY2IwYzY2NjNiZTc0N2JkNWM4YjcwMTEKQXV0aG9yOiBSeWFuIENIRU4gPHJ5YW4uY2hlbkBzdC5jb20+CkRhdGU6CVdlZCBBdWcgMjAgMTM6MDA6MTcgMjAwOCAtMDQwMAoKICAgIENvcnJlY3QgZHJ2X3VzYl9rYmRfaW5pdCBmdW5jdGlvbgoKICAgIFRoZSBwYXRjaCBpcyB0aGF0IGNoZWNrIGlmIHVzYl9nZXRfZGV2X2luZGV4KCkgZnVuY3Rpb24gcmV0dXJuIHZhbGlkCiAgICBwb2ludGVyLiBJZiB2YWxpZCwgY29udGludWUuIE90aGVyd2lzZSByZXR1cm4gLTEuCgogICAgU2lnbmVkLW9mZi1ieTogUnlhbiBDaGVuIDxyeWFuLmNoZW5Ac3QuY29tPgogICAgQWNrZWQtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgZWJhMWYyZmM3NWYxMjhhOWE2YzEzMjhkNzg2OTk2YTkzZmQ3YTcwNwpBdXRob3I6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgpEYXRlOglXZWQgQXVnIDIwIDExOjIyOjAyIDIwMDggKzAyMDAKCiAgICBNYWtlIHVzYi1zdG9wKCkgc2FmZSB0byBjYWxsIG11bHRpcGxlIHRpbWVzIGluIGEgcm93LgoKICAgIEEgcmVjZW50IGNvbW1pdCAoOTM2ODk3ZDRkMTM2NTQ1MmJiYmRmODQzMGRiNWU3NzY5ZWYwOGQzOCkKICAgIGVuYWJsZWQgdGhlIHVzYl9zdG9wKCkgY29tbWFuZCBpbiBjb21tb24vY21kX2Jvb3RtLmMgd2hpY2ggd2FzCiAgICBub3QgZW5hYmxlZCBmb3Igc29tZSB0aW1lLCBiZWNhdXNlIG5vIGJvYXJkIGRpZCBhY3R1YWxseSBzZXQgdGhlCiAgICBDRkdfQ01EX1VTQiBmbGFnLiBTbywgbm93IHRoZSB1c2Jfc3RvcCgpIGlzIGV4ZWN1dGVkIGJlZm9yZQogICAgbG9hZGluZyB0aGUgbGludXgga2VybmVsLgoKICAgIEhvd2V2ZXIsIHRoZSB1c2Jfb2hjaSBkcml2ZXIgaGFuZ3MgdXAgKGF0IGxlYXN0IG9uIEFUOTFTQU0pIGlmIHRoZQogICAgZHJpdmVyIGlzIHN0b3BwZWQgdHdpY2UgKGUuZy4gdGhlIHBlcmlwaGVyYWwgY2xvY2sgaXMgc3RvcHBlZCBvbiBBVDkxKS4KICAgIElmIHNvbWUgb3RoZXIgcGllY2Ugb2YgY29kZSBjYWxscyB1c2Jfc3RvcCgpIGJlZm9yZSB0aGUgYm9vdG0gY29tbWFuZCwKICAgIHRoaXMgY29tbWFuZCB3aWxsIGhhbmd1cCB0aGUgc3lzdGVtIGR1cmluZyBib290LgogICAgKHVzYiBzdGFydCBhbmQgc3RvcCBpcyB0eXBpY2FsbHkgdXNlZCB3aGlsZSBib290aW5nIGZyb20gdXNiIG1lbW9yeSBzdGljaykKCiAgICBCdXQsIHN0b3BwaW5nIHRoZSB1c2Igc3RhY2sgdHdpY2UgaXMgdXNlbGVzcyBhbnl3YXksIGFuZCBhIGZsYWcgYWxyZWFkeQogICAgZXhpc3RlZCB0aGF0IGtlcHQgdHJhY2sgb24gdGhlIHVzYl9pbml0KCkvdXNiX3N0b3AoKSBjYWxscy4KICAgIFNvLCB3ZSBub3cgY2hlY2sgaWYgdGhlIHVzYiBzdGFjayBpcyByZWFsbHkgc3RhcnRlZCBiZWZvcmUgd2Ugc3RvcCBpdC4KCiAgICBUaGlzIHByb2JsZW0gaXMgbm93IGZpeGVkIGluIGJvdGggdGhlIHVwcGVyIGFzIGxvdy1sZXZlbCBsYXllci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KICAgIEFja2VkLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IDJjOGNjZjI3MjhmNWU2N2Q5OTFjZWNmNzZjNDA1N2RiNzVhODdiNjcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgU2VwIDkgMTY6NTU6NDcgMjAwOCArMDIwMAoKICAgIE1ha2VmaWxlOiBmaXggYnVnIGludHJvZHVjZWQgYnkgY29tbWl0IDQ3ZmZkNmMyCgpjb21taXQgODgwZjZhNWQ3NTk2ZjQyZGI1ZmY4ODAzYjc5N2I3OGVjNWIxNDZlMApBdXRob3I6IFJpY2FyZG8gUmliYWxkYSBEZWxnYWRvIDxyaWNhcmRvLnJpYmFsZGFAdWFtLmVzPgpEYXRlOglUdWUgU2VwIDkgMTA6MDA6MzMgMjAwOCAtMDQwMAoKICAgIHBwYzR4eDogcHBjNDQwLWdlbmVyaWMtQUxMOiBGaXggb3V0IG9mIHRyZWUgYnVpbGQgdjIKCiAgICBUaGlzIHBhdGNoIHNvbHZlcyB0aGUgcHJvYmxlbXMgY29tcGlsaW5nIG1sNTA3LCB2NWZ4MzB0ZXZhbCBhbmQKICAgIHBwYzQ0MC1nZW5lcmljIG91dCBvZiB0cmVlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2FyZG8gUmliYWxkYSBEZWxnYWRvIDxyaWNhcmRvLnJpYmFsZGFAdWFtLmVzPgoKY29tbWl0IDQ3YmViZTM0Y2E0ZTMzYmFiMGU4MjJlNGNlZWJiZWMyNTkwY2NiY2IKQXV0aG9yOiBOw61jb2xhcyBDYXJuZWlybyBMZWJlZGVuY28gPG5pY29sYXMubGViZWRlbmNvQHRhc2tzaXN0ZW1hcy5jb20uYnI+CkRhdGU6CVRodSBTZXAgNCAxNTozNTo0NiAyMDA4IC0wMzAwCgogICAgRml4IGRldl9wcmludCB3aGVuIGNhbGxlZCBmcm9tIHVzYl9zdG9yX2luZm8gKHVzYiBzdG9yYWdlIGNvbW1hbmQpCgogICAgRml4IG91dHB1dCBvZiB0aGUgdXNiIHN0b3JhZ2UgY29tbWFuZC4gSXQgd2FzIHByaW50aW5nICJEZXZpY2UgMDogbm90CiAgICBhdmFpbGFibGUiIGJlY2F1c2UgSUZfVFlQRV9VU0Igd2FzIG5vdCBpbmNsdWRlZCBpbnRvIHRoZSBzd2l0Y2gKICAgIHN0YXRlbWVudC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWNvbGFzIExlYmVkZW5jbyA8bmljb2xhcy5sZWJlZGVuY29AdGFza3Npc3RlbWFzLmNvbS5icj4KCmNvbW1pdCBhNGYyNDM0NTJjYzhjZTBjMmM5YjUxYTI1MjBkYjRiZGU1ZjQ3MmRlCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIFNlcCA5IDEyOjU4OjE2IDIwMDggKzAyMDAKCiAgICBGSVQ6IG1ha2UgaW1pbmZvIGNoZWNrIGhhc2hlcyBvZiBhbGwgaW1hZ2VzIGluIEZJVCwgcmV0dXJuIDEgb24gZmFpbGVkIGNoZWNrCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA5MTlmNTUwZGMxMWExM2FiZjAxYzZiYzcxM2M5NjhkZTc5MGI4ZDdjCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIFNlcCA5IDEyOjU4OjE1IDIwMDggKzAyMDAKCiAgICBGSVQ6IGFkZCBhYmlsaXR5IHRvIGNoZWNrIGhhc2hlcyBvZiBhbGwgaW1hZ2VzIGluIEZJVCwgaW1wcm92ZSBvdXRwdXQKCiAgICAtIGFkZCBmdW5jdGlvbiBmaXRfYWxsX2ltYWdlX2NoZWNrX2hhc2hlcygpIHRoYXQgdmVyaWZpZXMgaWYgYWxsCiAgICAgIGhhc2hlcyBvZiBhbGwgaW1hZ2VzIGluIHRoZSBGSVQgYXJlIHZhbGlkCiAgICAtIGltcHJvdmUgb3V0cHV0IG9mIGZpdF9pbWFnZV9jaGVja19oYXNoZXMoKSB3aGVuIHRoZSBoYXNoIGNoZWNrIGZhaWxzCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCAxZGUxZmE0MDg5NjdjZWY2ODA0YmIwNDZiOTA0MTE0NTE5YmIzNmYwCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJTW9uIFNlcCA4IDIwOjU0OjM5IDIwMDggKzAyMDAKCiAgICBxZW11X21pcHM6IFVwZGF0ZSBsaW51eCBib290bSB0byBzdXBwb3J0IGR5bmFtaWMgY21kbGluZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZjVlZDllMzkwODhlY2ZhNWE1ZjNlZjQ3YjA4ZTViZGE3ODkwZDc2NApBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CU1vbiBTZXAgOCAxNDo1Njo0OSAyMDA4IC0wNTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIGJvb3Rpbmcgb2YgSU5URUdSSVRZIG9wZXJhdGluZyBzeXN0ZW0gdUltYWdlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+Cgpjb21taXQgNzJmMWI2NWYxYjY4YmM2ZWQwZDE4MmVkYTFmM2Q2Y2Y1MWI2NDE0YQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBTZXAgOCAyMTowMToyOSAyMDA4ICswMjAwCgogICAgbWlwcy9ib290bTogRml4IHR5cG8gaW4gY29tbWl0IGM0Zjk0MTljLCAiaW5pdHJkX3N0YXJ0IiByZXBsYWNlZCBieSAiaW1hZ2VzLT5yZF9zdGFydCIKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDliYTJlMmM4MTkxMzUzZDc1YjJkNTM1ZTY3MmExMjViZTdiODRjMDMKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gU2VwIDggMTM6NTc6MTIgMjAwOCAtMDUwMAoKICAgIFJlbW92ZSBzdXBwb3J0IGZvciBib290aW5nIEFSVE9TIGltYWdlcwoKICAgIFBhbnRlbGlzIEFudG9uaW91IHN0YXRlZDoKCUFGQUlLLCBpdCBpcyBzdGlsbCB1c2VkIGJ1dCB0aGUgcHJvZHVjdHMgdXNpbmcgUFBDIGFyZSBsb25nIGdvbmUuCglOdWtlIGl0IHBseiAoZnJvbSBvcmJpdCkuCgogICAgU28gcmVtb3ZlIGl0IHNpbmNlIGl0IGNsZWFucyB1cCBhIHVzYWdlIG9mIGVudl9nZXRfY2hhciBvdXRzaWRlIG9mCiAgICB0aGUgZW52aXJvbm1lbnQgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDQ3ZmZkNmMyZmM3MmI0NmRhYTlkNWQ1OWVlZGI4OTRmYWIyYjdlZTEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgU2VwIDkgMTU6NDU6MTggMjAwOCArMDIwMAoKICAgIE1ha2VmaWxlOiBjb21waWxlIGFuZCBsaW5rIGVhY2ggbW9kdWxlIGp1c3Qgb25jZQoKICAgIFNldmVyYWwgc291cmNlIGZpbGVzIG5lZWQgdG8gYmUgY29tcGlsZWQgYW5kIGxpbmtlZCB3aGVuIG9uZSBvciBtb3JlCiAgICBjb25maWcgb3B0aW9ucyBhcmUgc2VsZWN0ZWQuIFRvIGFsbG93IGZvciBlYXN5IHNlbGVjdGlvbiBpbiB0aGUKICAgIE1ha2VmaWxlcyB5ZXQgdG8gYXZvaWxkIG11bHRpcGxlIGNvbXBpbGF0aW9uICh3aGljaCBjb3N0cyBidWlsZCB0aW1lKQogICAgYW5kIGVzcGVjaWFsbHkgbXVsdGlwbGUgbGlua2luZyAod2hpY2ggY2F1c2VzIGVycm9ycyksIHdlIHVzZQogICAgIkNPQkpTID0gJChzb3J0IENPQkpTLXkpIiB3aGljaCBlbGltaW5hdGVzIGR1cGxpY2F0ZXMuCgogICAgQnkgY291cnRlc3kgb2YgRGV0bGV2IFp1bmRlbCB3aG8gc3VnZ2VzdGVkIHRoaXMgYXBwcm9hY2guCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0OGQwMTkyZmU4Njk5NDhmZWYxNGI0NjBiNWYwYzg1YmNhOTMzNjkzCkF1dGhvcjogQW5kcmVhcyBFbmdlbCA8YW5kcmVhcy5lbmdlbEBlcmljc3Nvbi5jb20+CkRhdGU6CU1vbiBTZXAgOCAxNDozMDo1MyAyMDA4ICswMjAwCgogICAgTW92ZWQgY29uZGl0aW9uYWwgY29tcGlsZSBpbnRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmVhcyBFbmdlbCA8YW5kcmVhcy5lbmdlbEBlcmljc3Nvbi5jb20+Cgpjb21taXQgMjBjOTIyNmNiOGNhYjA4YTExMWVlNzNkYjA0ZTYyZDk0M2VlMGM5NwpBdXRob3I6IEFuZHJlYXMgRW5nZWwgPGFuZHJlYXMuZW5nZWxAZXJpY3Nzb24uY29tPgpEYXRlOglNb24gU2VwIDggMTA6MTc6MzEgMjAwOCArMDIwMAoKICAgIE1lcmdlZCBzZXJpYWxfcGwwMTAuYyBhbmQgc2VyaWFsX3BsMDExLmMuCgogICAgVGhleSBvbmx5IGRpZmZlciBpbiB0aGUgaW5pdCBmdW5jdGlvbi4KICAgIFRoaXMgYWxzbyBhZGRzIHRoZSBtaXNzaW5nIHdhdGNoZG9nIHN1cHBvcnQgZm9yIHRoZSBQTDAxMS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIEVuZ2VsIDxhbmRyZWFzLmVuZ2VsQGVyaWNzc29uLmNvbT4KCmNvbW1pdCAwODE3ZDY4OGYzMDdlZTJjMDU5OGU3OTE3NWM5NGE0MGNlOTAzMzdiCkF1dGhvcjogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CkRhdGU6CVN1biBTZXAgNyAxNzoxMDoyNyAyMDA4IC0wNDAwCgogICAgUmVtb3ZlIGdhcCBmaWxsIGluIHNyZWMgb2JqZWN0IHYyCgogICAgU1JFQyBmaWxlcyBkbyBub3QgbmVlZCBnYXAgZmlsbDogVGhlIGxvYWQgYWRkcmVzcyBpcyBzcGVjaWZpZWQgaW4gdGhlCiAgICBmaWxlLiBPbiB0aGUgb3RoZXIgaGFuZCwgaXQgY2FuJ3QgYmUgYXZvaWRlZCBpbiBhIC5iaW4gb2JqZWN0LiBJdCBoYXMKICAgIG5vIGluZm9ybWF0aW9uIGFib3V0IG1lbW9yeSBsb2NhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQHVhbS5lcz4KCmNvbW1pdCAxZGMzMDY5MzFjYTVjZTg3ZjEzOTE2ZmE3MTY1YjA1MmQzYWE3MTRmCkF1dGhvcjogTWFya3VzIEhlaWRlbGJlcmcgPG1hcmt1cy5oZWlkZWxiZXJnQHdlYi5kZT4KRGF0ZToJU3VuIFNlcCA3IDIwOjE4OjI3IDIwMDggKzAyMDAKCiAgICBSRUFETUU6IGZpeCBtaXNzaW5nIHN1YmRpcmVjdG9yeSBpbiB0aGUgZG9jdW1lbnRhdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBIZWlkZWxiZXJnIDxtYXJrdXMuaGVpZGVsYmVyZ0B3ZWIuZGU+Cgpjb21taXQgM2VmOTZkZWQzOGE4ZDMzYjU4YjlmYWI5Y2Q4NzlkNTFkZGFjNGNiZApBdXRob3I6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzc0BnbWFpbC5jb20+CkRhdGU6CVN1biBTZXAgNyAwNzowODo0MiAyMDA4ICsxMDAwCgogICAgVXBkYXRlIGkzODYgY29kZSAoc2M1MjBfY2RwKQoKICAgIEF0dGVtcHQgdG8gYnJpbmcgaTM4NiAvIHNjNTIwIGlubGluZSB3aXRoIG1hc3RlcgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYWVtZSBSdXNzIDxncmFlbWUucnVzc0BnbWFpbC5jb20+Cgpjb21taXQgNTYwODY5MjEwNGVmYThkNTZkZjgwM2RjNzllYTQxYWMzNjA3ZWVlNQpBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJVGh1IFNlcCA0IDEzOjAxOjQ5IDIwMDggKzAyMDAKCiAgICBmd19lbnY6IGFkZCBOQU5EIHN1cHBvcnQKCiAgICBBZGQgc3VwcG9ydCBmb3IgZW52aXJvbm1lbnQgaW4gTkFORCB3aXRoIGF1dG9tYXRpYyBOT1IgLyBOQU5EIHJlY29nbml0aW9uLAogICAgaW5jbHVkaW5nIHVuYWxpZ25lZCBlbnZpcm9ubWVudCwgYmFkLWJsb2NrIHNraXBwaW5nLCByZWR1bmRhbnQgZW52aXJvbm1lbnQKICAgIGNvcHkuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IGRkNzk0MzIzYTJhMWVkNmE4YTVkZjUxNzg1YzMxYmNkZTYwYWQ3Y2EKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIFNlcCA5IDA5OjUwOjI0IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBvdXQtb2YtdHJlZSBidWlsZGluZyBvZiBDUENJNDA1IHZhcmlhbnRzCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDU5ZjYzMDU4OGUzZmRiZDY5OGEwYTI3OThlNTJhODkyNGU4OTk1NjMKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglGcmkgQXVnIDE1IDE1OjQyOjExIDIwMDggKzAyMDAKCiAgICBSZW1vdmVkIGhhcmRjb2RlZCBNeE1SIGxvb3AgdmFsdWUgZnJvbSB1cG1jb25maWcoKSBmb3IgTVBDODV4eC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgoKY29tbWl0IGU2NDk4N2E4OTIzNTNmM2Q0OWViMjQyZDk5NzgyMGVmOGY1Mzg5MTIKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CUZyaSBBdWcgMTUgMTU6NDI6MTMgMjAwOCArMDIwMAoKICAgIDg1eHg6IHNvY3JhdGVzOiBFbmFibGUgTGltZSBzdXBwb3J0LgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBMaW1lIEdEQyBzdXBwb3J0IHRvZ2V0aGVyIHdpdGggc3VwcG9ydCBmb3IgdGhlIFBXTQogICAgYmFja2xpZ2h0IGNvbnRyb2wgdGhyb3VnaCB0aGUgdzgzNzgyZCBjaGlwLiAgVGhlIHJlc2V0IHBpbiBvZiB0aGUKICAgIGxhdHRlciBpcyBhdHRhY2hlZCB0byBHUElPLCBzbyB3ZSBuZWVkIHRvIHJlc2V0IGl0IGluCiAgICBlYXJseV9ib2FyZF9pbml0X3IuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IDNlNzliNTg4YjUxOTlmMzUwMTZmMTc4ZmMwZDVkMTI2NjM4MjA5N2YKQXV0aG9yOiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KRGF0ZToJRnJpIEF1ZyAxNSAxNTo0MjoxMiAyMDA4ICswMjAwCgogICAgODV4eDogU29jcmF0ZXM6IE1ham9yIGNvZGUgdXBkYXRlLgoKICAgIC0gVXBkYXRlIHRoZSBsb2NhbCBidXMgcmFuZ2VzIGluIHRoZSBGRFQgZm9yIExpbnV4IGZvciB0aGUgdmFyaW91cwogICAgICBkZXZpY2VzIGNvbm5lY3RlZCB0byB0aGUgbG9jYWwgYnVzIHZpYSBjaGlwLXNlbGVjdC4KCiAgICAtIFNldCB0aGUgTENSUl9EQllQIGJpdCBpbiB0aGUgTENSUiBmb3IgbG9jYWwgYnVzIGZyZXF1ZW5jaWVzCiAgICAgIGxvd2VyIHRoYW4gNjYgTUh6IGFuZCB1c2VzIEkvTyBhY2Nlc3NvciBmdW5jdGlvbnMgY29uc2VxdWVudGx5LgoKICAgIC0gVVBNIGRhdGEgdXBkYXRlLgoKICAgIC0gVXBkYXRlIG9mIGRlZmF1bHQgZW52aXJvbm1lbnQgYW5kIGNvbmZpZ3VyYXRpb24uCVVzZSBJMkMgbXVsdGlidXMKICAgICAgYXMgd2UgZG8gaGF2ZSB0d28gSTJDIGJ1c2VzLiAgQWxzbyBlbmFibGUgc2RyYW0gYW5kIGV4dDIgY29tbWFuZHMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgZThkMTg1NDFjNmNlYWI4MjFmNzVmYWFiMDMxNzQwYjMzZmRiZmE0YgpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMTggMTY6NTI6MjMgMjAwOCArMDIwMAoKICAgIFVwZGF0ZSBGcmVlc2NhbGUgODV4eCBib2FyZHMgdG8gc3lzX2VlcHJvbS5jCgogICAgVGhlIG5ldyBzeXNfZWVwcm9tLmMgc3VwcG9ydHMgYm90aCB0aGUgb2xkIENDSUQgRUVQUk9NIGZvcm1hdCBhbmQgdGhlIG5ldyBOWElECiAgICBmb3JtYXQsIGFuZCBzbyBpdCBvYnNvbGV0ZXMgYm9hcmQvZnJlZXNjYWxlL2NvbW1vbi9jZHNfZWVwcm9tLmMuICBGcmVlc2NhbGUKICAgIDg2eHggYm9hcmRzIGFscmVhZHkgdXNlIHN5c19lZXByb20uYywgc28gdGhpcyBwYXRjaCBtaWdyYXRlcyB0aGUgcmVtYWluaW5nCiAgICBGcmVlc2NhbGUgODV4eCBib2FyZHMgdG8gdXNlIGl0IGFzIHdlbGwuICBjZHNfZWVwcm9tLmMgaXMgZGVsZXRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFhYjJiZjAyMDJjODYyMjdlM2RjYzhhNWI1ODk0NjA4N2ViY2MxYWYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgU2VwIDkgMTA6MDg6MDIgMjAwOCArMDIwMAoKICAgIGxpYl9wcGMvaW50ZXJydXB0cy5jOiBtYWtlIGJvYXJkX3Nob3dfYWN0aXZpdHkoKSBhIHdlYWsgZnVuY3Rpb24KCiAgICBUaGlzIGFsbG93cyB0byB1c2Ugc2hvd19hY3Rpdml0eSgpIHdpdGhvdXQgaGF2aW5nIHRvCiAgICBkZWZpbmUgYW4gZW1wdHkgYm9hcmRfc2hvd19hY3Rpdml0eSgpIGZ1bmN0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZmU4NzY3ODdmODc0Mzg4M2NlNThmZWQ2MTUyNWVhYTJmMzRkYTRjNQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBTZXAgOSAxMDowNjo0NCAyMDA4ICswMjAwCgogICAgc3R4eHRjOiByZW1vdmUgZW1wdHkgQ09ORklHX1NIT1dfQUNUSVZJVFkgZnVuY3Rpb25zCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA5NjVkZTEwNmJhODkwMDM3MmM4YjE2ZGM2MGQ1YWNhYjdmOTI1ZTM4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIFNlcCA5IDEwOjAzOjQ3IDIwMDggKzAyMDAKCiAgICBORVRUQTI6IHJlbW92ZSBlbXB0eSBDT05GSUdfU0hPV19BQ1RJVklUWSBmdW5jdGlvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDZjYzY0ZjliNWY2OTIzOWM4YjE5Njk1NzJiNWEzYTRhYWI3ZGU1YjkKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglGcmkgQXVnIDE1IDE1OjQyOjExIDIwMDggKzAyMDAKCiAgICBSZW1vdmVkIGhhcmRjb2RlZCBNeE1SIGxvb3AgdmFsdWUgZnJvbSB1cG1jb25maWcoKSBmb3IgTVBDODV4eC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgoKY29tbWl0IDM2MjQxY2EyOWQ0ODA0YTEwMDZmYjNmMjYwNjllZmZkYTUyMDI1ODEKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CUZyaSBBdWcgMTUgMTU6NDI6MTMgMjAwOCArMDIwMAoKICAgIDg1eHg6IHNvY3JhdGVzOiBFbmFibGUgTGltZSBzdXBwb3J0LgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBMaW1lIEdEQyBzdXBwb3J0IHRvZ2V0aGVyIHdpdGggc3VwcG9ydCBmb3IgdGhlIFBXTQogICAgYmFja2xpZ2h0IGNvbnRyb2wgdGhyb3VnaCB0aGUgdzgzNzgyZCBjaGlwLiAgVGhlIHJlc2V0IHBpbiBvZiB0aGUKICAgIGxhdHRlciBpcyBhdHRhY2hlZCB0byBHUElPLCBzbyB3ZSBuZWVkIHRvIHJlc2V0IGl0IGluCiAgICBlYXJseV9ib2FyZF9pbml0X3IuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IDdhNDc3NTNkZGNhZWJiZjIxNDI4MDk4NDJmNzBjNWY3MjNiZDlkZGIKQXV0aG9yOiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KRGF0ZToJRnJpIEF1ZyAxNSAxNTo0MjoxMiAyMDA4ICswMjAwCgogICAgODV4eDogU29jcmF0ZXM6IE1ham9yIGNvZGUgdXBkYXRlLgoKICAgIC0gVXBkYXRlIHRoZSBsb2NhbCBidXMgcmFuZ2VzIGluIHRoZSBGRFQgZm9yIExpbnV4IGZvciB0aGUgdmFyaW91cwogICAgICBkZXZpY2VzIGNvbm5lY3RlZCB0byB0aGUgbG9jYWwgYnVzIHZpYSBjaGlwLXNlbGVjdC4KCiAgICAtIFNldCB0aGUgTENSUl9EQllQIGJpdCBpbiB0aGUgTENSUiBmb3IgbG9jYWwgYnVzIGZyZXF1ZW5jaWVzCiAgICAgIGxvd2VyIHRoYW4gNjYgTUh6IGFuZCB1c2VzIEkvTyBhY2Nlc3NvciBmdW5jdGlvbnMgY29uc2VxdWVudGx5LgoKICAgIC0gVVBNIGRhdGEgdXBkYXRlLgoKICAgIC0gVXBkYXRlIG9mIGRlZmF1bHQgZW52aXJvbm1lbnQgYW5kIGNvbmZpZ3VyYXRpb24uCVVzZSBJMkMgbXVsdGlidXMKICAgICAgYXMgd2UgZG8gaGF2ZSB0d28gSTJDIGJ1c2VzLiAgQWxzbyBlbmFibGUgc2RyYW0gYW5kIGV4dDIgY29tbWFuZHMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgNGQyYWU3MGU4YzMxYzIyZTU3MTBkZjVmZjIzNmI1NTY1ZWEyY2YyYwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVR1ZSBTZXAgOSAwMToyMjozOSAyMDA4ICswMjAwCgogICAgZGlzay1vbi1jaGlwOiByZW1vdmUgZHVwbGljYXRlIGRvY19wcm9iZSBkZWNsYXJhdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMzIyMWIwNzRhMGFiMTk5ZjZhZTQ3YzE5Y2MyMmY0MmRkZjNlZjgxOQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVR1ZSBTZXAgOSAwMDo1OTo0MCAyMDA4ICswMjAwCgogICAgb25lbmFuZF91Ym9vdDogZml4IHdhcm5pbmc6ICdzdHJ1Y3QgbXRkX29vYl9vcHMnIGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMTNiNGRiMGUyMTA3MTc1YTg2MjJlYmI0ODUyOWZhM2FkOGUxMmM3NQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVR1ZSBTZXAgOSAwMDo1OTozOSAyMDA4ICswMjAwCgogICAgcnM1YzM3MjogZml4IHJ0Y19zZXQgcHJvdG90eXBlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAxYmI4YjJlZjI3MjJiYmFlYTNjYzVkNDYzMjFjZTFkOTlmOWI1NmY3CkF1dGhvcjogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KRGF0ZToJVGh1IEF1ZyAxNCAxNDowODoyOCAyMDA4ICswMjAwCgogICAgQVJNOiBmaXggd2FybmluZzogdGFyZ2V0IENQVSBkb2VzIG5vdCBzdXBwb3J0IGludGVyd29ya2luZwoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgd2FybmluZ3MgbGlrZSB0aGlzOgoKICAgIHN0YXJ0LlM6MDogd2FybmluZzogdGFyZ2V0IENQVSBkb2VzIG5vdCBzdXBwb3J0IGludGVyd29ya2luZwoKICAgIHdoaWNoIGNvbWUgZnJvbSBzb21lIEFSTSBjcm9zcyBjb21waWxlcnMgYW5kIGFyZSBjYXVzZWQgYnkgaGFyZC1jb2RlZAogICAgKHdpdGggIi0td2l0aC1jcHU9YXJtOSIgY29uZmlndXJhdGlvbiBvcHRpb24pIEFSTSB0YXJnZXRzICh3aGljaAogICAgc3VwcG9ydCBBUk0gVGh1bWIgaW5zdHJ1Y3Rpb25zKSwgd2hpbGUgdGhlIEFSTSB0YXJnZXQgc2VsZWN0ZWQgZnJvbQogICAgdGhlIGNvbW1hbmQgbGluZSAod2l0aCAiLW1hcmNoPWFybXY0IikgZG9lc24ndCBzdXBwb3J0IFRodW1iCiAgICBpbnN0cnVjdGlvbnMuCgogICAgVGhpcyB3YXJuaW5nIGlzIGlzc3VlZCBieSB0aGUgY29tcGlsZXIgcmVnYXJkbGVzcyBvZiB0aGUgcmVhbCB1c2Ugb2YKICAgIHRoZSBUaHVtYiBpbnN0cnVjdGlvbnMgaW4gY29kZS4KCiAgICBUbyBmaXggdGhpcyBwcm9ibGVtLCB3ZSB1c2Ugb3B0aW9ucyBhY2NvcmRpbmcgdG8gY29tcGlsZXIgdmVyc2lvbgogICAgYmVpbmcgdXNlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0MjY1YzM1ZmJjYjI0OGU1ODE3OTAwNzYyMWQ2MWQzMmQwYjNiODJhCkF1dGhvcjogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KRGF0ZToJVGh1IEF1ZyAxNCAxNDowODoyOCAyMDA4ICswMjAwCgogICAgQVJNOiBVc2UgZG9fZGl2KCkgaW5zdGVhZCBvZiBkaXZpc2lvbiBmb3IgImxvbmcgbG9uZyIuCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgOGZlYmQxM2M2OWNiNjg2NTI1NzdkMWE5ZmNiZGU5NTRiZjc4NDE1NQpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMTggMTY6NTI6MjMgMjAwOCArMDIwMAoKICAgIFVwZGF0ZSBGcmVlc2NhbGUgODV4eCBib2FyZHMgdG8gc3lzX2VlcHJvbS5jCgogICAgVGhlIG5ldyBzeXNfZWVwcm9tLmMgc3VwcG9ydHMgYm90aCB0aGUgb2xkIENDSUQgRUVQUk9NIGZvcm1hdCBhbmQgdGhlIG5ldyBOWElECiAgICBmb3JtYXQsIGFuZCBzbyBpdCBvYnNvbGV0ZXMgYm9hcmQvZnJlZXNjYWxlL2NvbW1vbi9jZHNfZWVwcm9tLmMuICBGcmVlc2NhbGUKICAgIDg2eHggYm9hcmRzIGFscmVhZHkgdXNlIHN5c19lZXByb20uYywgc28gdGhpcyBwYXRjaCBtaWdyYXRlcyB0aGUgcmVtYWluaW5nCiAgICBGcmVlc2NhbGUgODV4eCBib2FyZHMgdG8gdXNlIGl0IGFzIHdlbGwuICBjZHNfZWVwcm9tLmMgaXMgZGVsZXRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDEwNTUxNzFlZDA1YjdjNDg4NTczNzQ2M2Q1MmI4ZDZjMDEzYmNiNWQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gU2VwIDggMjM6MjY6MjIgMjAwOCArMDIwMAoKICAgIGxpYl9hcm0vYm9vdG0uYzogZml4IGNvbXBpbGUgd2FybmluZ3MKCiAgICBib290bS5jOjEyODogd2FybmluZzogbGFiZWwgJ2Vycm9yJyBkZWZpbmVkIGJ1dCBub3QgdXNlZAogICAgYm9vdG0uYzo2NTogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdyZXQnCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyZTNjODY3ZDBhNjNjNTYzYTUxZTY1Yjc3Njk3M2IwMDhmMTZjZWM1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIFNlcCA4IDIyOjQ2OjQyIDIwMDggKzAyMDAKCiAgICBtbDUwNzogZml4IG91dCBvZiB0cmVlIGJ1aWxkIHByb2JsZW0KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDk4NjNhMTVhOThmMjNiNzlmMzRhMGU0ZjllNDY1YmM2ZGY1ZDUwNGQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gU2VwIDggMjI6MTA6MjggMjAwOCArMDIwMAoKICAgIGNvbW1vbi9jbWRfYm9vdG0uYzogZml4IHByaW50ZigpIGZvcm1hdCB3YXJuaW5ncwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNDM5NGY5YThjNDJiYjFiMGFiYzRmYzA0YmQ1ODJkNGRiNWY4YjcyNgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBTZXAgOCAyMjozNzo0NSAyMDA4ICswMjAwCgogICAgQk1XLCBQQ0lQUEMyLCBQQ0lQUEM2LCBSQkM4MjogZml4IGNvbXBpbGUgd2FybmluZ3MKCiAgICBtaXNzaW5nIGRvY19wcm9iZSgpIHByb3RvdHlwZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDJjNWUzY2M0OTk0ODk3ZDM2NGIxNDg5NDJmZjIzZTQ3NzgzMTk4ZjYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gU2VwIDggMjE6Mjg6MTQgMjAwOCArMDIwMAoKICAgIG1rNDh0NTk6IGZpeCBjb21waWxlIHByb2JsZW0gaW50cm9kdWNlZCBieSBjb21taXQgZDFlMjMxOTQKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDVmZjg4OTM0OWQyYWNlMTNmMTBjOTMzNWUwOTM2NWZjZWM4MjQ3Y2MKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBTZXAgOCAxNDoxMToxMiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBNb3ZlIHBwYzR4eCBzcGVjaWZpYyBwcm90b3R5cGVzIHRvIHBwYzR4eCBoZWFkZXIKCiAgICBUaGlzIHBhdGNoIG1vdmVzIHNvbWUgNHh4IHNwZWNpZmljIHByb3RvdHlwZXMgb3V0IG9mIGluY2x1ZGUgY29tbW9uLmgKICAgIHRvIGEgcHBjNHh4IHNwZWNpZmljIGhlYWRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYWM1M2VlODMxODY3ODE5MGJmM2M2OGRhNDc3YTg0YTY1N2Q4NmZiMApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgU2VwIDUgMTU6MzQ6MDQgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIENQQ0k0MDUoQUIpIGNvbmZpZ3VyYXRpb24KCiAgICBUaGlzIHBhdGNoIGFkZCBGRFQgc3VwcG9ydCBhbmQgY29tbWFuZCBsaW5lIGVkaXRpbmcgY2FwYWJpbGl0aWVzCiAgICBmb3IgQ1BDSTQwNSBhbmQgQ1BDSTQwNUFCIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3YjFmYmNhZGY3M2E4M2IzYmViOTRhYmNjZGExYzM1ZTJjMDc1YTk0CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBTZXAgNSAxNTozNDowMyAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBDbGVhbnVwIENQQ0k0MDUgbGlua2VyIHNjcmlwdAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc2N2Y5MTU5YzVjOTRjZDBjYjMxMzViNWI4MjgxNGFkMTI4MTZkZGYKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIFNlcCA1IDE1OjM0OjAyIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBDUENJNDA1IHZhcmlhbnRzIGhhbmRsaW5nCgogICAgVGhpcyBwYXRjaCByZXBsYWNlcyB0aGUgQk9BUkRfUkVWSVNJT04gdmFyaWFibGUgaW4gaW5jbHVkZS9jb25maWcubWsKICAgIGJ5IGEgdXNpbmcgYSB0ZW1wb3JhcnkgaW5jbHVkZSBmaWxlIGluIHRoZSBwbGF0Zm9ybSBkaXJlY3RvcnkuCgogICAgVGhlIGZvcm1lciB3YXkgZG9lcyBub3Qgd29yayBhbnltb3JlIGFuZCB0aGUgbGF0dGVyIGlzIGFsc28gdXNlZCBieQogICAgc29tZSBvdGhlciBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjA3MWYwMWZkMDllOWJmMWNmMDlkZTM3YTc0MTZhYWNjZTcxYmFlMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIFNlcCA4IDEwOjAxOjQ4IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFJlbW92ZSBDT05GSUdfQ1M4OTUyX1BIWSBkZWZpbmUKCiAgICBTaW5jZSB0aGlzIGRlZmluZSBpcyBvbmx5IHVzZWQgb24gb25lIGJvYXJkIHRoYXQgd2FzIG5ldmVyIHJlYWxseSBpbgogICAgcHJvZHVjdGlvbiwgcmVtb3ZpbmcgdGhpcyBjb21waWxlIHRpbWUgb3B0aW9uIGRvZXNuJ3QgaHVydCBhbmQgbWFrZXMKICAgIHRoZSBjb2RlIG1vcmUgcmVhZGFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZjYTg2NDZjMTg2MGJiYTc0MzI2YmY5MTZhNWEzMzg5YTVjMGQzYjUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBTZXAgNSAxNDoxMTo0MCAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggY29tcGlsYXRpb24gd2FybmluZyBmb3IgUElQNDA1CgogICAgVGhpcyBwYXRjaCBmaXhlcyBhIGNvbXBpbGF0aW9uIHdhcm5pbmcgZm9yIHRoZSBQSVA0MDUgYm9hcmQuIEl0IG1vdmVzIHRoZQogICAgI2lmbmRlZiBDT05GSUdfQ1M4OTUyX1BIWSBkZWZpbmUgYSBsaXR0bGUgc28gdGhhdCB0aGUgd2FybmluZyBkb2Vzbid0CiAgICBvY2N1ciBhbnltb3JlLiBJIGFtIGEgbGl0dGxlIHVuc3VyZSBpZiB0aGlzICNpZmRlZiBpcyBhdCB0aGUgY29ycmVjdAogICAgcGxhY2Ugbm93IG9yIGlmIGl0IGNvdWxkIGJlIHJlbW92ZWQgY29tcGxldGVseS4gVGhpcyBuZWVkcyB0byBnZXQKICAgIHRlc3RlZCBvbiB0aGUgUElQNDA1IGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3MjViNTNhYzYxZjRkZjMwMjZiOGY2NDg5ZWYwMDgwZmQyN2QzODE2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgU2VwIDUgMTQ6MDk6MDkgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRml4IGNvbXBpbGF0aW9uIHdhcm5pbmcgZm9yIGNhbnlvbmxhbmRzICYgZ2xhY2llcgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzMDJlNTJlMGIxZDRjN2Y5OTQ5OTE3MDlkMGNiNmMzZWE2MTJjZGI1CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIFNlcCA1IDE0OjQwOjI5IDIwMDggLTA1MDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZyBpbiBtcGM4eHh4IGRkciBjb2RlCgogICAgY3RybF9yZWdzLmM6IEluIGZ1bmN0aW9uICdjb21wdXRlX2ZzbF9tZW1jdGxfY29uZmlnX3JlZ3MnOgogICAgY3RybF9yZWdzLmM6NTIzOiB3YXJuaW5nOiAnY2FzbGF0JyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24KICAgIGN0cmxfcmVncy5jOjUyMzogbm90ZTogJ2Nhc2xhdCcgd2FzIGRlY2xhcmVkIGhlcmUKCiAgICBBZGQgYSB3YXJuaW5nIGluIEREUjEgY2FzZSBpZiBjYXNfbGF0ZW5jeSBpc24ndCBhIHZhbHVlIHdlIGtub3cgYWJvdXQuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGQxZTIzMTk0MTRlYTUyMThiYTgwMTE2M2U0NTMwZWNmMmRmY2JmMzYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglNb24gU2VwIDEgMjM6MDY6MjMgMjAwOCArMDIwMAoKICAgIHJ0YzogYWxsb3cgcnRjX3NldCB0byByZXR1cm4gYW4gZXJyb3IgYW5kIHVzZSBpdCBpbiBjbWRfZGF0ZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZWU5NTM2YTI4Y2IxNDliY2I2YzVkZWU5ZDA4YzYyYzkxZjRjNzJkMgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBTZXAgMSAwMToxNjozMyAyMDA4ICswMjAwCgogICAgYXAzMjVyeGEvZmF2ci0zMi1lemtpdDogVXNlIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA2Yjk3MWM3M2YxODIyNDhjZTEwMzUwM2Q3NGZiYzAxMDBiYjhjOGI3CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU3VuIEF1ZyAzMSAwNTozNzowNCAyMDA4ICswOTAwCgogICAgY29uZmlnLm1rOiBNb3ZlIGFyY2gtc3BlY2lmaWMgY29uZGl0aW9uIHRvICQoQVJDSClfY29uZmlnLm1rCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBlYTg2YjllNjRiODExNzUzZDllYWJlMGY1NjBlZTE4OWZiZTVkMGMxCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIEF1ZyAyOSAxOTowODoyOSAyMDA4IC0wNTAwCgogICAgUHJldmVudCBjcmFzaCBpZiByYW5kb20vaW52YWxpZCByYW1kaXNrcyBhcmUgcGFzc2VkIHRvIGJvb3RtCgogICAgQWRkcyByZXR1cm5pbmcgYW4gZXJyb3IgZnJvbSB0aGUgcmFtZGlzayBkZXRlY3Rpb24gY29kZSBpZgogICAgaXRzIG5vdCBhIHJlYWwgcmFtZGlzayAoaW52YWxpZCkuICBUaGVyZSBpcyBubyByZWFzb24gd2UgY2FuJ3QKICAgIGp1c3QgcmV0dXJuIGJhY2sgdG8gdGhlIGNvbnNvbGUgaWYgd2UgZGV0ZWN0IGFuIGludmFsaWQKICAgIHJhbWRpc2sgb3IgQ1JDIGVycm9yLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgOGUwMjQ5NGU4Zjg2YzhmMmQ3MzI0YjVlYjllNzUyNzExMDRhMDFlZgpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJRnJpIEF1ZyAyOSAyMTowNDo0NSAyMDA4ICswMjAwCgogICAgUHJldmVudCBjcmFzaCBpZiByYW5kb20gRFRCIGFkZHJlc3MgaXMgcGFzc2VkIHRvIGJvb3RtCgogICAgVGhpcyBwYXRjaCBhZGRzIGJvb3RtX3N0YXJ0KCkgcmV0dXJuIHZhbHVlIGNoZWNrLiBJZgogICAgZXJyb3Igc3RhdHVzIGlzIHJldHVybmVkLCB3ZSBkbyBub3QgcHJvY2VlZCBmdXJ0aGVyIHRvCiAgICBwcmV2ZW50IGJvYXJkIHJlc2V0IG9yIGNyYXNoIGFzIHdlIHN0aWxsIGNhbiByZWNvdmVyCiAgICBhdCB0aGlzIHBvaW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCBjYzM0NzgwMWFkZDI2ODliMWVlNTRkMjFmNjJiYzE0ZWNmNmUxZGQ4CkF1dGhvcjogQW5kcmV3IER5ZXIgPGFkeWVyQHJpZ2h0aGFuZHRlY2guY29tPgpEYXRlOglGcmkgQXVnIDI5IDEyOjMwOjM5IDIwMDggLTA1MDAKCiAgICBjbGVhbiB1cCBzb21lICNpZiAhZGVmaW5lZCgpIGluIGRyaXZlcnMvdmlkZW8vY2ZiX2NvbnNvbGUuYwoKICAgIHJlYXJyYW5nZSBzb21lICNpZiAhZGVmaW5lZCgpIC8gI2Vsc2UgLyAjZW5kaWYgc3RhdGVtZW50cyB0byByZW1vdmUKICAgIHRoZSBuZWdhdGl2ZSBsb2dpYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgRHllciA8YWR5ZXJAcmlnaHRoYW5kdGVjaC5jb20+Cgpjb21taXQgYzgzZjRjMmQ3N2YwNzE3NGRjZDZiZWY3ZTg3YTBmNzAxN2JlN2MzMwpBdXRob3I6IEt5dW5nbWluIFBhcmsgPGttcGFya0BpbmZyYWRlYWQub3JnPgpEYXRlOglGcmkgQXVnIDI5IDA5OjAyOjIwIDIwMDggKzA5MDAKCiAgICBhcG9sbG9uOiB1c2UgdGhlIGxhc3QgbWVtb3J5IGFyZWEgZm9yIHUtYm9vdAoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgYTZmMmU0NTViNzc0ZDBjNWQ1NmU0NGU1NjYxZGY5YWRiNjliNmUwNwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglUaHUgQXVnIDI4IDEzOjUwOjQyIDIwMDggKzAyMDAKCiAgICBUUU04MjcyOiBtb3ZlIE5BTkQgcGFydCBpbiBzZXBlcmF0ZSBGaWxlCgogICAgSSBkaWRuJ3QgdHJ5IHRvIHVzZSBkcml2ZXJzL210ZC9uYW5kL2ZzbF91cG0uYyBmb3IgdGhlIE5BTkQgZHJpdmVyLAogICAgYmVjYXVzZSBJIGhhdmUgbm8gbG9uZ2VyIGFjY2VzcyB0byB0aGUgaGFyZHdhcmUuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgNTg0Zjk3OWY3ZWU5MTRlMzJkNDA4NzM5Y2JkZDJjNDQ1N2VjMThiOApBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglUaHUgQXVnIDI4IDEzOjQ4OjM2IDIwMDggKzAyMDAKCiAgICBUUU04MjcyOiBGaXggY29tcGlsaW5nIGVycm9yIGZvciB0aGUgVFFNODI3MiBib2FyZC4KCiAgICBGaXggY29tcGlsZSBwcm9ibGVtcyBjYXVzZWQgYnkKICAgIGNvbW1pdCAgY2ZhNDYwYWRmZGVmY2MzMGQxMDRlMWE5ZWU0NDk5NGVlMzQ5YmI3YgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDFhN2Y4Y2NlYzk4MTY0OGNjZDM4ZmNhMjUzNTQ5MDU4MmVlZTA4ZTYKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxrbXBhcmtAaW5mcmFkZWFkLm9yZz4KRGF0ZToJV2VkIEF1ZyAyNyAxNDo0NToyMCAyMDA4ICswOTAwCgogICAgQWRkIEpGRlMyIGNvbW1hbmQgc3VwcG9ydCBvbiBPbmVOQU5ECgogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCBmNWMzYmE3OTc4OGIwZTM5YmFhYjcwMjZkMzc0ZmUzNzVkZDFhNDNmCkF1dGhvcjogTWFyayBKYWNrc29uIDxtcGZqQG1pbWMuY28udWs+CkRhdGU6CU1vbiBBdWcgMjUgMTk6MjE6MzAgMjAwOCArMDEwMAoKICAgIEFsbG93IGNvbnNvbGUgaW5wdXQgdG8gYmUgZGlzYWJsZWQKCiAgICBBZGRlZCBuZXcgQ09ORklHX0RJU0FCTEVfQ09OU09MRSBkZWZpbmUgYW5kIEdEX0ZMR19ESVNBQkxFX0NPTlNPTEUuCgogICAgV2hlbiBDT05GSUdfRElTQUJMRV9DT05TT0xFIGlzIGRlZmluZWQsIHNldHRpbmcKICAgIEdEX0ZMR19ESVNBQkxFX0NPTlNPTEUgZGlzYWJsZXMgYWxsIGNvbnNvbGUgaW5wdXQgYW5kIG91dHB1dC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrIEphY2tzb24gPG1wZmpAbWltYy5jby51az4KCmNvbW1pdCAyYjIyZDYwOGYzNzA1NjVjODdmNTU5MjhiNTI0MjA3MDMxNDE5YzExCkF1dGhvcjogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CkRhdGU6CVdlZCBKdWwgMzAgMTI6Mzk6MjkgMjAwOCArMDIwMAoKICAgIGxvYWRzOiBhbGxvdyBuZWdhdGl2ZSBvZmZzZXRzCgogICAgU2lnbmVkLW9mZi1ieTogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+Cgpjb21taXQgZTkwZmI2YWZhYjJjMGMwNzRkZmI2N2JhY2I0ZGUxNzllYjE4OGEyNApBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJVGh1IFNlcCA0IDExOjE5OjA1IDIwMDggKzAyMDAKCiAgICBVU0IgRUhDSTogcmVzZXQgcm9vdCBodWIKCiAgICBTb21lIG9mIG11bHRpLWZ1bmN0aW9uIFVTQiBjb250cm9sbGVycyAoZS5nLiBJU1AxNTYyKSBhbGxvdyByb290IGh1YgogICAgcmVzZXR0aW5nIG9ubHkgdmlhIEVIQ0kgcmVnaXN0ZXJzLiBTbywgdGhpcyBwYXRjaCBhZGRzIHRoZQogICAgY29ycmVzcG9uZGluZyBraW5kIG9mIHJlc2V0IHRvIE9IQ0kncyBoY19yZXNldCgpIGlmIHRoZSBuZXdseQogICAgaW50cm9kdWNlZCBDT05GSUdfUENJX0VIQ0lfREVWTk8gb3B0aW9uIGlzIHNldCAoZS5nLiBmb3IgU29jcmF0ZXMKICAgIGJvYXJkKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CiAgICBBY2tlZC1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCA1ODc1ZDM1OGYwMjVjMWIwNDJkOGEwZjA4Mzg0Yjc1NmRlNzI1NmM5CkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgpEYXRlOglGcmkgQXVnIDE1IDE1OjQyOjA5IDIwMDggKzAyMDAKCiAgICBSWCA4MDI1IFJUQzogYW5hbHl6ZSAxMi8yNC1ob3VyIG1vZGUgZmxhZyBpbiBydGNfZ2V0KCkuCgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgoKY29tbWl0IDNlM2MwMjZlZDc0NmEyODRjNmYwZWYxMzliMjZkODU5OTM5ZGU3ZTkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBTZXAgNSAxMDo0Nzo0NiAyMDA4ICswMjAwCgogICAgZGV2aWNlczogVXNlIGxpc3RfYWRkX3RhaWwoKSBpbnN0ZWFkIG9mIGxpc3RfYWRkKCkgdG8gcmVnaXN0ZXIgYSBkZXZpY2UKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGEgcHJvYmxlbSBzcG90dGVkIG9uIEdsYWNpZXIvQ2FueW9ubGFuZHMgKGFuZCBtb3N0CiAgICBsaWtlbHkgbG90cyBvZiBvdGhlciBib2FyZCBwb3J0cyksIHRoYXQgbm8gc2VyaWFsIG91dHB1dCB3YXMgc2VlbgogICAgYWZ0ZXIgY29uc29sZSBpbml0aWFsaXphdGlvbiBpbiBjb25zb2xlX2luaXRfcigpLiBUaGlzIGlzIGJlY2F1c2UgdGhlCiAgICBsYXN0IGFkZGVkIGNvbnNvbGUgZGV2aWNlIHdhcyB1c2VkIGluc3RlYWQgb2YgdGhlIGZpcnN0IGFkZGVkLgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBwcm9ibGVtIGJ5IHVzaW5nIGxpc3RfYWRkX3RhaWwoKSBpbnN0ZWFkIG9mCiAgICBsaXN0X2FkZCgpIHRvIHJlZ2lzdGVyIGEgZGV2aWNlLiBUaGlzIHdheSB0aGUgZmlyc3QgYWRkZWQgY29uc29sZQogICAgaXMgdXNlZCBhZ2Fpbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzhkNzgyMzY4OTZkNjJiYjhjYTczMDJhZjM4ZDhmMTQ5M2ViMjY1MQpBdXRob3I6IFZpY3RvciBHYWxsYXJkbyA8dmdhbGxhcmRvQGFtY2MuY29tPgpEYXRlOglUaHUgU2VwIDQgMjM6NDk6MzYgMjAwOCAtMDcwMAoKICAgIHBwYzR4eDogQWRkIHN1cHBvcnQgZm9yIEdQQ1MsIFNHTUlJIGFuZCBNODhFMTExMiBQSFkKCiAgICBUaGlzIHBhdGNoIGFkZHMgR1BDUywgU0dNSUkgYW5kIE04OEUxMTEyIFBIWSBzdXBwb3J0CiAgICBmb3IgdGhlIEFNQ0MgUFBDNDYwR1QvRVggcHJvY2Vzc29ycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBWaWN0b3IgR2FsbGFyZG8gPHZnYWxsYXJkb0BhbWNjLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmNmI2YzQ1ODQwZjliNDY3MWQyZDk3MjQzYTEyYTFmM2ZmYjY0NzY1CkF1dGhvcjogQWRhbSBHcmFoYW0gPGFncmFoYW1AYW1jYy5jb20+CkRhdGU6CVdlZCBTZXAgMyAxMjoyNjo1OSAyMDA4IC0wNzAwCgogICAgcHBjNHh4OiBVcGRhdGUgS2lsYXVlYSB0byB1c2UgUFBDNHh4IEREUiBhdXRvY2FsaWJyYXRpb24gcm91dGluZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBBZGFtIEdyYWhhbSA8YWdyYWhhbUBhbWNjLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwNzVkMGI4MWU4OTZlODczNWFlMjYzNzJjZDM4NGY4N2NiZDI0ZTQxCkF1dGhvcjogQWRhbSBHcmFoYW0gPGFncmFoYW1AYW1jYy5jb20+CkRhdGU6CVdlZCBTZXAgMyAxMjoyNjoyOCAyMDA4IC0wNzAwCgogICAgcHBjNHh4OiBJQk0gTWVtb3J5IENvbnRyb2xsZXIgRERSIGF1dG9jYWxpYnJhdGlvbiByb3V0aW5lcwoKICAgIEFsdGVybmF0ZSBTRFJBTSBERFIgYXV0b2NhbGlicmF0aW9uIHJvdXRpbmUgdGhhdCBjYW4gYmUgZ2VuZXJpY2FsbHkgdXNlZAogICAgZm9yIGFueSBQUEM0eHggY2hpcHMgdGhhdCBoYXZlIHRoZSBJQk0gU0RSQU0gQ29udHJvbGxlciBjb3JlIGFsbG93aW5nIGZvcgogICAgc3VwcG9ydCBvZiBtb3JlIERJTU0vbWVtb3J5IGNoaXAgdmVuZG9ycyBhbmQgZ2V0cyB0aGUgRERSIGF1dG9jYWxpYnJhdGlvbgogICAgdmFsdWVzIHdoaWNoIGdpdmUgdGhlIGJlc3QgcmVhZCBsYXRlbmN5IHBlcmZvcm1hbmNlIChTRFJBTTBfUkRDQy5bUkRTU10pLgoKICAgIFR3byBhbHRlcm5hdGUgU0RSQU0gRERSIGF1dG9jYWxpYnJhdGlvbiBhbGdvcml0bSBhcmUgcHJvdmlkZWQgaW4gdGhpcyBwYXRjaCwKICAgICJNZXRob2RfQSIgYW5kICJNZXRob2RfQiIuCUREUiBhdXRvY2FsaWJyYXRpb24gTWV0aG9kX0Egc2NhbnMgdGhlIGZ1bGwgcmFuZ2UKICAgIG9mIHBvc3NpYmxlIFBQQzR4eAlTRFJBTSBDb250cm9sbGVyIEREUiBhdXRvY2FsaWJyYXRpb24gdmFsdWVzIGFuZCB0YWtlcyBhCiAgICBsb3QgbG9uZ2VyIHRvIHJ1biB0aGFuIE1ldGhvZF9CLiAgTWV0aG9kX0IgZXhlY3V0ZXMgaW4gdGhlIHNhbWUgYW1vdW50IG9mIHRpbWUKICAgIGFzIHRoZSBjdXJyZW50bHkgZXhpc3RpbmcgRERSIGF1dG9jYWxpYnJhdGlvbiByb3V0aW5lLCBpLmUuIDEgc2Vjb25kIG9yIHNvLgogICAgTm9ybWFsbHkgTWV0aG9kX0IgaXMgdXNlZCBhbmQgaXQgaXMgc2V0IGFzIHRoZSBkZWZhdWx0IG1ldGhvZC4KCiAgICBUaGUgY3VycmVudCBVLUJvb3QgUFBDNHh4IEREUiBhdXRvY2FsaWJyYXRpb24gY29kZSBjYWxpYnJhdGVzIHRoZSBJQk0gU0RSQU0KICAgIENvbnRyb2xsZXIgcmVnaXN0ZXJzLltiaXQtZmllbGRdOgogICAgMSkJU0RSQU0wX1JRREMuW1JRRkRdCiAgICAyKQlTRFJBTTBfUkZEQy5bUkZGRF0KCiAgICBUaGlzIGFsdGVybmF0ZSBQUEM0eHggRERSIGF1dG9jYWxpYnJhdGlvbiBjb2RlIGNhbGlicmF0ZXMgdGhlIGZvbGxvd2luZwogICAgSUJNIFNEUkFNIENvbnRyb2xsZXIgcmVnaXN0ZXJzLltiaXQtZmllbGRdOgoKICAgIDEpCVNEUkFNMF9XUkRUUi5bV0RUUl0KICAgIDIpCVNEUkFNMF9DTEtUUi5bQ0tUUl0KICAgIDMpCVNEUkFNMF9SUURDLltSUUZEXQogICAgNCkJU0RSQU0wX1JGREMuW1JGRkRdCgogICAgYW5kIHdpbGwgYWxzbyB1c2UgdGhlIGNhbGlicmF0ZWQgc2V0dGluZ3Mgb2YgdGhlIGFib3ZlIGZvdXIgcmVnaXN0ZXJzIHRoYXQKICAgIHByb2R1Y2UgdGhlIGJlc3QgIlJlYWQgU2FtcGxlIEN5Y2xlIFNlbGVjdCIgdmFsdWUgaW4gdGhlIFNEUkFNMF9SRENDLltSRFNTXQogICAgcmVnaXN0ZXIuW2JpdC1maWVsZF0uCgogICAgU2lnbmVkLW9mZi1ieTogQWRhbSBHcmFoYW0gPGFncmFoYW1AYW1jYy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTA3ZjRhODAzM2I2MjcwYjgxMDMwNDlhZGI2NDU2ZjY2MGZmNGE4OQpBdXRob3I6IFJpY2FyZG8gUmliYWxkYSBEZWxnYWRvIDxyaWNhcmRvLnJpYmFsZGFAdWFtLmVzPgpEYXRlOglNb24gU2VwIDEgMTM6MDk6MzkgMjAwOCAtMDQwMAoKICAgIHBwYzQ0eDogVW5pZmljYXRpb24gb2YgdmlydGV4NSBwcDQ0MCBib2FyZHMKCiAgICBUaGlzIHBhdGNoIHByb3ZpZGVzIGFuIHVuaWZpY2F0ZWQgd2F5IG9mIGhhbmRsaW5nIHhpbGlueCB2NSBwcGM0NDAgYm9hcmRzLgoKICAgIEl0IHVuaWZpY2F0ZXMgMyBkaWZmZXJlbnQgdGhpbmdzOgoKICAgIDEpIFNvdXJjZSBjb2RlCiAgICBBIG5ldyBib2FyZCBjYWxsZWQgcHBjNDQwLWdlbmVyaWMgaGFzIGJlZW4gY3JlYXRlZC4gVGhpcyBib2FyZCBpbmNsdWRlcwogICAgYSBnZW5lcmljIHRsYiBpbml0aWFsaXphdGlvbiAoTWFwcyB0aGUgd2hvbGUgbWVtb3J5IGludG8gdmlydHVhbCkgYW5kCiAgICBkZWZpbmVzIGJvYXJkX3ByZV9pbml0LCBjaGVja2JvYXJkLCBpbml0ZHJhbSBhbmQgZ2V0X3N5c19pbmZvIHdlYWtseSwKICAgIHNvLCB0aGV5IGNhbiBiZSByZXBsYWNlZCBieSBzcGVjaWZpYyBmdW5jdGlvbnMuCgogICAgSWYgYSBuZXcgYm9hcmQgbmVlZHMgdG8gcmVkZWZpbmUgYW55IG9mIHRoZSBwcmV2aW91cyBmdW5jdGlvbnMKICAgIChzcGVjaWZpYyBpbml0aWFsaXphdGlvbikgaXQgY2FuIGNyZWF0ZSBhIG5ldyBkaXJlY3Rvcnkgd2l0aCB0aGUKICAgIHNwZWNpZmljIGluaXRpYWxpemF0aW9ucyBuZWVkZWQuIChzZWUgdGhlIGV4YW1wbGUgbWw1MDcgYm9hcmQpLgoKICAgIDIpIENvbmZpZ3VyYXRpb24gZmlsZQogICAgQ29tbW9uIGNvbmZpZ3VyYXRpb25zIGFyZSBsb2NhdGVkIHVuZGVyIGNvbmZpZ3MveGlsaW54LXBwYzQ0MC5oLCB0aGlzCiAgICBoZWFkZXIgZmlsZSBpbnRlcnByZXRlcyB0aGUgeHBhcmFtZXRlcnMgZmlsZSBnZW5lcmF0ZWQgYnkgRURLIGFuZAogICAgY29uZmlndXJhdGVzIHUtYm9vdCBpbiBjb3JyZXNwb25kZW5jZS4gRXhhbXBsZTogaWYgdGhlcmUgaXMgYSBUZW1hYywKICAgIGFsbG93cyBDTURfQ09ORklHX05FVAogICAgU3BlY2lmaWMgY29uZmlndXJhdGlvbiBhcmUgbG9jYXRlZCB1bmRlciBzcGVjaWZpYyBjb25maWd1cmF0aW9uIGZpbGUuCiAgICAoc2VlIHRoZSBleGFtcGxlIG1sNTA3IGJvYXJkKQoKICAgIDMpIE1ha2VmaWxlCiAgICBTb21lIHdvcmsgaGFzIGJlZW4gZG9uZSBpbiBvcmRlciB0byBub3QgZHVwbGljYXRlIHdvcmsgaW4gdGhlIE1haW4KICAgIE1ha2VmaWxlLiBQbGVhc2Ugc2VlIHRoZSBhdHRhY2hlZCBjb2RlLgoKICAgIEluIG9yZGVyIHRvIHN1cHBvcnQgbmV3IGJvYXJkcyB0aGV5IGNhbiBiZSBpbXBsZW1lbnRlZCBpbiB0aGUgbmV4dCB3YXk6CgogICAgYSkgU2ltcGxlIEdlbmVyaWMgQm9hcmQgICg5MCUgb2YgdGhlIHRpbWUpCiAgICBVc2luZyBFREsgZ2VuZXJhdGVzIGEgbmV3IHhwYXJhbWV0ZXJzLmggZmlsZSwgcmVwbGFjZQogICAgcHBjNDQwLWdlbmVyaWMveHBhcmFtZXRlcnMuaCAgYW5kIHJ1biBtYWtlIHhpbGlueC1wcGM0NDAtZ2VuZXJpY19jb25maWcKICAgICYmIG1ha2UKCiAgICBiKSBTaW1wbGUgQm9hcmRzIHdpdGggc3BlY2lhbCB1LWJvb3QgcGFyYW1ldGVycyAoOSAlIG9mIHRoZSB0aW1lKQogICAgQ3JlYXRlIGEgbmV3IGZpbGUgdW5kZXIgY29uZmlncyBmb3IgaXQgKHVzZSBtbDUwNy5oIGFzIGV4YW1wbGUpIGFuZAogICAgY2hhbmdlIHlvdXIgcGFyYW1hdGVycy4gQ3JlYXRlIGEgbmV3IE1ha2VmaWxlIHBhcmFncmFwaCBhbmQgY29tcGlsZQoKICAgIGMpIENvbXBsZXggYm9hcmRzICgxJSBvZiB0aGUgdGltZSkKICAgIENyZWF0ZSBhIG5ldyBmb2xkZXIgZm9yIHRoZSBib2FyZCwgbGlrZSB0aGUgbWw1MDcKCiAgICBGaW5hbGx5LCBpdCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBBdm5ldCBGWDMwVCBFdmFsdWF0aW9uIGJvYXJkLCBmb2xsb3dpbmcKICAgIHRoZSBuZXcgZ2VuZXJpYyBzdHJ1Y3R1cmU6CgogICAgQ2hlYXAgYm9hcmQgYnkgQXZuZXQgZm9yIGV2YWx1YXRpbmcgdGhlIFZpcnRleDUgRlggdGVjaG5vbG9neS4KCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3I6CiAgICAgLSBVYXJ0TGl0ZQogICAgIC0gMTZNQiBGbGFzaAogICAgIC0gNjRNQiBSQU0KCiAgICBQcmlvciB1c2luZyBVLWJvb3QgaW4gdGhpcyBib2FyZCwgcmVhZCBjYXJlZnVsbHkgdGhlIEVSUkFUQSBieSBBdm5ldAogICAgdG8gc29sdmUgc29tZSBtZW1vcnkgaW5pdGlhbGl6YXRpb24gaXNzdWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2FyZG8gUmliYWxkYSBEZWxnYWRvIDxyaWNhcmRvLnJpYmFsZGFAdWFtLmVzPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDY0YWMxZWI1YWZhZmNlZDQ5YjMyNzQyNWFkMTgxNGIyZGM0MjJkNmUKQXV0aG9yOiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIFNlcCAyIDE1OjIxOjE2IDIwMDggLTA1MDAKCiAgICBtcGM4M3h4OiBmaXggbXBjODMxMyBpbi10cmVlIGJ1aWxkaW5nIHdpdGggTkFORAoKICAgIGFuZCBhZGQgbXBjODMxMyBOQU5EIGJ1aWxkIHRvIE1BS0VBTEwKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmViMmE0NGUyNzkxOWZkYzYwMWUwYzA1NDA0YjI5OGE3NjAyYzBlMwpBdXRob3I6IE5pY2sgU3BlbmNlIDxuaWNrLnNwZW5jZUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDI4IDE0OjA5OjI1IDIwMDggLTA3MDAKCiAgICBtcGM4M3h4OiBjbGVhbiB1cCBjYWNoZSBvcGVyYXRpb25zIGFuZCB1bmxvY2tfcmFtX2luX2NhY2hlKCkgZnVuY3Rpb25zCgogICAgQ2xlYW5zIHVwIHNvbWUgbGF0ZW50IGlzc3VlcyB3aXRoIHRoZSBkYXRhIGNhY2hlIGNvbnRyb2wgc28gdGhhdAogICAgZGNhY2hlX2VuYWJsZSgpIGFuZCBkY2FjaGVfZGlzYWJsZSgpIHdpbGwgd29yayByZWxpYWJseSAoYWZ0ZXIKICAgIHVubG9ja19yYW1faW5fY2FjaGUoKSBoYXMgYmVlbiBjYWxsZWQpCgogICAgU2lnbmVkLW9mZi1ieTogTmljayBTcGVuY2UgPG5pY2suc3BlbmNlQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ2NDk3MDU2YWUzYjFlODFlNzM2ZTljZjNhMTcwNDcyYzVkOTcxOWYKQXV0aG9yOiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAyOCAxNDowOToxOSAyMDA4IC0wNzAwCgogICAgbXBjODN4eDogU3RvcmUgYW5kIGRpc3BsYXkgQXJiaXRlciBFdmVudCBSZWdpc3RlciB2YWx1ZXMKCiAgICBSZWNvcmQgdGhlIEFyYml0ZXIgRXZlbnQgUmVnaXN0ZXIgdmFsdWVzIGFuZCBvcHRpb25hbGx5IGRpc3BsYXkgdGhlbS4KCiAgICBUaGUgQXJiaXRlciBFdmVudCBSZWdpc3RlciBjYW4gcmVjb3JkIHRoZSB0eXBlIGFuZCBlZmZlY3RpdmUgYWRkcmVzcyBvZgogICAgYW4gYXJiaXRlciBlcnJvciwgZXZlbiB0aHJvdWdoIGFuIEhSRVNFVC4gVGhpcyBwYXRjaCBzdG9yZXMgdGhlIHZhbHVlcyBpbgogICAgdGhlIGdsb2JhbCBkYXRhIHN0cnVjdHVyZS4KCiAgICBEaXNwbGF5IG9mIHRoZSBBcmJpdGVyIEV2ZW50IHJlZ2lzdGVycyBpbW1lZGlhdGVseSBhZnRlciB0aGUgUlNSIHZhbHVlCiAgICBjYW4gYmUgZW5hYmxlZCB3aXRoIGRlZmluZXMuIFRoZSBBcmJpdGVyIHZhbHVlcyB3aWxsIG9ubHkgYmUgZGlzcGxheWVkCiAgICBpZiBhbiBhcmJpdGVyIGV2ZW50IGhhcyBvY2N1cmVkIHNpbmNlIHRoZSBsYXN0IFBvd2VyIE9uIFJlc2V0LCBhbmQgZWl0aGVyCiAgICBvZiB0aGUgZm9sbG93aW5nIGRlZmluZXMgZXhpc3Q6CiAgICAgI2RlZmluZSBDT05GSUdfRElTUExBWV9BRVJfQlJJRUYgLSBkaXNwbGF5IG9ubHkgdGhlIGFyYml0ZXIgYWRkcmVzcyBhbmQKCQkJCQlhbmQgdHlwZSByZWdpc3RlciB2YWx1ZXMKICAgICAjZGVmaW5lIENPTkZJR19ESVNQTEFZX0FFUl9GVUxMICAtIGRpc3BsYXkgYW5kIGludGVycHJldCB0aGUgYXJiaXRlcgoJCQkJCWV2ZW50IHJlZ2lzdGVyIHZhbHVlcwoKICAgIEFkZHJlc3MgT25seSB0cmFuc2FjdGlvbnMgYXJlIG9uZSBvZiB0aGUgdHJhcHBlZCBldmVudHMgdGhhdCBjYW4gcmVnaXN0ZXIKICAgIGFzIGFuIGFyYml0ZXIgZXZlbnQuIFRoZXkgb2NjdXIgd2l0aCBzb21lIGNhY2hlIG1hbmlwdWxhdGlvbiBpbnN0cnVjdGlvbnMKICAgIGlmIHRoZSBISUQwX0FCRSAoQWRkcmVzcyBCcm9hZGNhc3QgRW5hYmxlKSBpcyBzZXQgYW5kIHRoZSBtZW1vcnkgcmVnaW9uCiAgICBoYXMgdGhlIE1FTU9SWV9DT0hFUkVOQ0UgV0lNRyBiaXQgc2V0LiBTZXR0aW5nOgogICAgICNkZWZpbmUgQ09ORklHX01BU0tfQUVSX0FPIC0gcHJldmVudHMgdGhlIGFyYml0ZXIgZnJvbSByZWNvcmRpbmcgYWRkcmVzcwoJCQkJICBvbmx5IGV2ZW50cywgc28gdGhhdCBpdCBjYW4gc3RpbGwgY2FwdHVyZQoJCQkJICBvdGhlciByZWFsIHByb2JsZW1zLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pY2sgU3BlbmNlIDxuaWNrLnNwZW5jZUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhZGU1MGM3ZmExYjE2ZWY5OGJlMTdlOWMzYWUyODZhZWNmNGY1NjA1CkF1dGhvcjogTmljayBTcGVuY2UgPG5pY2suc3BlbmNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMjggMTQ6MDk6MTEgMjAwOCAtMDcwMAoKICAgIG1wYzgzeHg6IHVzZSByNCBpbnN0ZWFkIG9mIHIyIGluIGxvY2tfcmFtX2luX2NhY2hlIGFuZCB1bmxvY2tfcmFtX2luX2NhY2hlCgogICAgVGhpcyBpcyBuZWVkZWQgaW4gdW5sb2NrX3JhbV9pbl9jYWNoZSgpIGJlY2F1c2UgaXQgaXMgY2FsbGVkIGZyb20gQyBhbmQKICAgIHdpbGwgY29ycnVwdCB0aGUgc21hbGwgZGF0YSBhcmVhIGFuY2hvciB0aGF0IGlzIGtlcHQgaW4gUjIuCgogICAgbG9ja19yYW1faW5fY2FjaGUoKSBpcyBtb2RpZmllZCBzaW1pbGFybHkgYXMgZ29vZCBjb2RpbmcgcHJhY3RpY2UsIGJ1dAogICAgaXMgbm90IGNhbGxlZCBmcm9tIEMuCgogICAgU2lnbmVkLW9mZi1ieTogTmljayBTcGVuY2UgPG5pY2suc3BlbmNlQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ5ZmU4ODE3M2NiNGY3ZDI5Mzc5NmZmZTEwYzdhMGQzZDQyNmQ4ZjkKQXV0aG9yOiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEF1ZyAyMiAyMzo1Mjo1MCAyMDA4IC0wNzAwCgogICAgTVBDODNYWDogRml4IEdQSU8gY29uZmlndXJhdGlvbiAtIHNldCBncGlvIGxldmVsIGJlZm9yZSBkaXJlY3Rpb24KCiAgICBTZXQgREFUIHZhbHVlIGJlZm9yZSBESVIgdmFsdWVzIHRvIGF2b2lkIGNyZWF0aW5nIGdsaXRjaGVzIG9uIHRoZQogICAgR1BJTyBzaWduYWxzLgoKICAgIFNldCBncGlvIGxldmVsIHJlZ2lzdGVyIGJlZm9yZSBkaXJlY3Rpb24gcmVnaXN0ZXIgdG8gaW5oaWJpdAogICAgZ2xpdGNoZXMgb24gaGlnaCBsZXZlbCBvdXRwdXQgcGlucy4KCiAgICBEaXIgYW5kIGRhdGEgZ2V0cyBjbGVhcmVkIGF0IHBvd2VydXAsIHNvIGhpZ2ggbGV2ZWwgb3V0cHV0IGxpbmVzIHNlZQogICAgYSBzaG9ydCBsb3cgcHVsc2UgYmV0d2VlbiBzZXR0aW5nIHRoZSBkaXJlY3Rpb24gYW5kIGxldmVsIHJlZ2lzdGVycy4KCiAgICBJc3N1ZSB3YXMgc2VlbiBvbiBhIG5ldyBib2FyZCB3aXRoIHRoZSBuUmVzZXQgbGluZSBvZiB0aGUgTk9SIGZsYXNoCiAgICBjb25uZWN0ZWQgdG8gYSBHUElPLiBTZXR0aW5nIHRoZSBkaXJlY3Rpb24gcmVnaXN0ZXIgcHV0cyB0aGUgTk9SIGZsYXNoCiAgICBpbiByZXNldCBzbyB0aGUgbmV4dCBpbnN0cnVjdGlvbiB0byBzZXQgdGhlIGxldmVsIGNhbm5vdCBnZXQgZXhlY3V0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogTmljayBTcGVuY2UgPG5pY2suc3BlbmNlQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBLb3JzZ2FhcmQgPGphY21ldEBzdW5zaXRlLmRrPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MDA3YzU5NzVlZTkwMGFkNzA5ODNiMDY4MWQzMjUxZTIyMWY4MzIxCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIFNlcCAyIDAyOjU4OjMyIDIwMDggKzAyMDAKCiAgICBkb2MvcWVtdV9taXBzOiBhZGQgZG9jIGhvd3RvIGRlYnVnIHUtYm9vdCB3aXRoIGdkYgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgN2RlYjNiM2VjZDBlODFlZjA5YmI2OGFhMGVjMjM0NmY0YWUwYTQwNQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglXZWQgU2VwIDMgMTc6MTU6NDUgMjAwOCArMDIwMAoKICAgIHBweDR4eDogRml4IGJyb2tlbiBEQVNBX1NJTSBib2FyZAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBpbml0ZHJhbSgpIHRvIERBU0FfU0lNIGJvYXJkcyB0aGF0IGhhcyBiZWVuCiAgICByZW1vdmVkIGFjY2lkZW50YWxseSBieSBhIHByZXZpb3VzIGNvbW1pdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3ZTQxMGFhMzBmYmNiMWQxOWEyNmJiZjFlODRhOWNhNjEwMmQ1MzRiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gU2VwIDEgMDg6MzU6MzcgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogUmVtb3ZlIHJlZmVyZW5jZSB0byBjb21tb24vbGlzdHMubyBmcm9tIHNvbWUgZXNkIGxpbmtlciBzY3JpcHRzCgogICAgVGhpcyBwYXRjaCByZW1vdmVzIHNvbWUgZGlyZWN0IHJlZmVyZW5jZXMgdG8gY29tbW9uL2xpc3RzLm8gZnJvbSBzb21lCiAgICBlc2QgbGlua2VyIHNjcmlwdHMuIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIGxpc3RzIHNvdXJjZSB3YXMgbW92ZWQKICAgIGFuZCBpcyBub3QgaW4gdGhlICJjb21tb24iIGRpcmVjdG9yeSBhbnltb3JlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5N2IwNzM0ZDY1ZjhhMGIwM2RmMGEzMzVhMmFkZGM3NTlkYTU2MTA3CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBTZXAgMiAxNjozMzowNSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBSZW1vdmUgb2Jzb2xldGUgb3IgdW51c2VkIGZ1bmN0aW9ucyBmcm9tIHNvbWUgZXNkIGJvYXJkcwoKICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBpbml0ZHJhbSgpIGFuZCB0ZXN0ZHJhbSgpIGZyb20gbW9zdCBlc2QgNDA1IHBsYXRmb3Jtcy4KICAgIFNvbWUgYm9hcmRzIGFsc28gaGF2ZSBhbiBlbXB0eSBkdW1teSBpbXBsZW1lbnRhdGlvbiBvZgogICAgbWlzY19pbml0X2YoKS4gVGhpcyBpcyBhbHNvIHJlbW92ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTA5MmNlMjE4YzUxNGU1Y2NiMTg0NTBhYzVhZjUwMWQ5NmQ2ZTNlOQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUdWUgU2VwIDIgMTU6MDc6NTQgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIFZPTTQwNSBib2FyZCBjb25maWd1cmF0aW9uCgogICAgLSByZW1vdmUgUENJIGNvZGUKICAgIC0gYWRkIGNvbW1hbmQgbGluZSBlZGl0aW5nCiAgICAtIG1pbm9yIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4MzBjODAwZTI4ZTk2ZWM3YzNjNjkzNmEwYmQxYjk0NjFmM2U3N2Q0CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBTZXAgMiAxNTowNzo1MyAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBSZW1vdmUgb2Jzb2xldGUgaW5pdGRyYW0oKSBmdW5jdGlvbiBmcm9tIFZPTTQwNSBib2FyZAoKICAgIFRoaXMgcGF0Y2ggcmVtb3ZlZCB0aGUgb2Jzb2xldGUgaW5pdGRyYW0oKSBmdW5jdGlvbiBmcm9tCiAgICBWT000MDUgcGxhdGZvcm0gZmlsZS4KCiAgICBTb21lIG1pbm9yIGNsZWFudXAuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgM2Q0ZGQ3YTk0MWIyMzI3YjhjMmZjNTM1Yjc4MmNhMzA3ZmY4YjZjOApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUdWUgU2VwIDIgMTU6MDc6NTIgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQ2xlYW51cCBWT000MDUgbGlua2VyIHNjcmlwdAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGZjYWZmZDU5N2Y2ZjUxOTFiMTJjYTY2YzJhNDc4OWJiZGVlYTg1YzIKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWZAZXNkLmV1PgpEYXRlOglUdWUgU2VwIDIgMTU6MDc6NTEgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQWRkIGZkdCBzdXBwb3J0IGZvciBWT000MDUgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1mQGVzZC5ldT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5ZWMzNjdhYTJjNWRjZjc5NTU4YWEyYjIwOWI0NWQ3Njg2NjU0YzE0CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBTZXAgMiAxMTozNjoxNCAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBDb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFdyYXAgbG9uZyBsaW5lcyBldGMuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTdlNjVjMjFhZGZiNjM5ODBlNmFmZjgwYmZiZDJkZjBlZWIxMjA2MApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUdWUgU2VwIDIgMTE6MzU6NTYgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRW5hYmxlIFVTQiBvbiBQTFU0MDUgYm9hcmRzCgogICAgVGhpcyBwYXRjaCBlbmFibGVzIHRoZSBQQ0ktT0hDSSBjb250cm9sbGVyIG9uIFBMVTQwNSBib2FyZC4KCiAgICBBbHNvIHRoZSBkZWZhdWx0IENQVSBmcmVxdWVuY3kgaXMgdXBkYXRlZCB0byAyNjYgTUh6IGFuZAogICAgY29tbWFuZCBsaW5lIGVkaXRpbmcgaXMgZW5hYmxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0MGU0M2UzYjg3ZDU3YjJhYzc4NmUyN2Y2ZTI1YTdkZjk5NDBkOTNiCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBTZXAgMiAxMTozNTozNSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBDbGVhbnVwIFBMVTQwNSBwbGF0Zm9ybSBmaWxlCgogICAgVGhpcyBwYXRjaAogICAgLSB3cmFwcyBzb21lIGxvbmcgbGluZXMKICAgIC0gcmVtb3ZlcyB1bnVzZWQvb2Jzb2xldGUgZnVuY3Rpb25zOiBtaXNjX2luaXRfZigpIGFuZCBpbml0ZHJhbSgpCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1mQGVzZC5ldT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkNzRjZGIxZDA2MTRhYjc4MTI4ZTA3MzVhNTFlNzk4OGE3YjdlYTMzCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBTZXAgMiAxMTozNTowNCAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBDbGVhbnVwIFBMVTQwNSBsaW5rZXIgc2NyaXB0CgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1mQGVzZC5ldT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzYmMxMDU0Y2VjMmY2YjI1ODIyZjMwMWVhOTIyYTE2MjMzYmFhNGM3CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBTZXAgMiAxMTozNDozNiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBBZGQgZmR0IHN1cHBvcnQgZm9yIFBMVTQwNSBib2FyZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWZAZXNkLmV1PgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDVhM2U0ODBiNzgzYmZiYzEzOTU4NjI5M2E1NGZiODc1ZDdjNWM1ZDQKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIFNlcCAyIDExOjM0OjA4IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEluY3JlYXNlIFUtQm9vdCBzaXplIHRvIDM4NGtCIGZvciBQTFU0MDUgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1mQGVzZC5ldT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBiZTFiMGQyNzc3ZTE3OTE5MWE1N2IxMzhiNjYwNTQ3YTE3ZTU1YWFkCkF1dGhvcjogSm9jaGVuIEZyaWVkcmljaCA8am9jaGVuQHNjcmFtLmRlPgpEYXRlOglUdWUgU2VwIDIgMTE6MjQ6NTkgMjAwOCArMDIwMAoKICAgIERvbid0IHRmdHAgdG8gdW5rbm93biBmbGFzaAoKICAgIElmIGEgYm9hcmQgaGFzIGEgdmFyaWFibGUgbnVtYmVyIG9mIGZsYXNoIGJhbmtzLCB0aGVyZSBhcmUgZW1wdHkgZW50cmllcwogICAgaW4gZmxhc2hfaW5mb1tdIGFuZCBDRkdfRElSRUNUX0ZMQVNIX1RGVFAgaXMgc2V0LCB0ZnRwIGJvb3QgZmFpbHMgd2l0aAogICAgIk91dHNpZGUgYXZhaWxhYmxlIEZsYXNoIi4gVGhpcyBwYXRjaCBza2lwcyBmbGFzaCBiYW5rcyB3aXRoIHVua25vd24KICAgIGZsYXNoIGlkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2NoZW4gRnJpZWRyaWNoIDxqb2NoZW5Ac2NyYW0uZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDMzMzE0NDcwYWIzMmEzZjU0MTJiYjYxYjVmM2Q2YzIxNmM4OGJmOWIKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVRodSBBdWcgMjggMTM6NDA6NDQgMjAwOCArMDkwMAoKICAgIG5ldDogc21jOTExeDogQWRkIHBrdF9kYXRhX3B1bGwgYW5kIHBrdF9kYXRhX3B1c2ggZnVuY3Rpb24KCiAgICBUaGUgUlNLNzIwMyBib2FyZCBoYXMgdGhlIFNNU0M5MTE4IHdpcmVkIHVwICdpbmNvcnJlY3RseScuCiAgICBCeXRlLXN3YXBwaW5nIGlzIG5lY2Vzc2FyeSwgYW5kIHNvIHBvb3IgcGVyZm9ybWFuY2UgaXMgaW5ldml0YWJsZS4KICAgIFRoaXMgcHJvYmxlbSBjYW5ub3QgZXZhZGUgYnkgdGhlIHN3YXAgZnVuY3Rpb24gb2YgQ0hJUCwgdGhpcyBjYW4KICAgIGV2YWRlIGJ5IHNvZnR3YXJlIEJ5dGUtc3dhcHBpbmcuCiAgICBBbmQgdGhpcyBoYXMgcHJvYmxlbSBieSBGSUZPIGFjY2VzcyBvbmx5LiBwa3RfZGF0YV9wdWxsL3BrdF9kYXRhX3B1c2gKICAgIGZ1bmN0aW9ucyBuZWNlc3NhcnkgdG8gc29sdmUgdGhpcyBwcm9ibGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgMTBlZmEwMjRiOGZmZDllNmFhY2E2M2RhOGJkZGZkZmZkYzY3MjI3NApBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CVN1biBBdWcgMzEgMjA6Mzc6MDAgMjAwOCAtMDcwMAoKICAgIE1vdmVkIGluaXRpYWxpemF0aW9uIG9mIEVFUFJPMTAwIEV0aGVybmV0IGNvbnRyb2xsZXIgdG8gYm9hcmRfZXRoX2luaXQoKQoKICAgIEFmZmVjdGVkIGJvYXJkczoKCWRiNjQzNjAKCWRiNjQ0NjAKCWthdG1haQoJdGFpaHUKCXRhaXNoYW4KCXl1Y2NhCgljcGM0NQoJY3B1ODcKCWVYYWxpb24KCWVscHBjCglkZWJyaXMKCWt2bWUwODAKCW1wYzgzMTVlcmRiCglpbnRlZ3JhdG9yYXAKCWl4ZHA0MjUKCW94YwoJcG04MjYKCXBtODI4CglwbTg1NAoJcG04NTYKCXBwbWM3eHgKCXNjMwoJc2M1MjBfc3B1bmsKCXNvcmNlcnkKCXRxbTgyNzIKCXRxbTg1eHgKCXV0eDgyNDUKCiAgICBSZW1vdmVkIGluaXRpYWxpemF0aW9uIG9mIHRoZSBkcml2ZXIgZnJvbSBuZXQvZXRoLmMKICAgIEFsc28sIHdyYXBwZWQgY29udGVudHMgb2YgcGNpX2V0aF9pbml0KCkgYnkgQ09ORklHX1BDSS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDhjYTBiM2Y5OWM0ZmNlN2E1OTlkY2FmOTJhZTA5NTQ5NmRjOGM4ZTAKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglTdW4gQXVnIDMxIDEwOjQ1OjQ0IDIwMDggLTA3MDAKCiAgICBNb3ZlZCBpbml0aWFsaXphdGlvbiBvZiBUVUxJUCBFdGhlcm5ldCBjb250cm9sbGVyIHRvIGJvYXJkX2V0aF9pbml0KCkKCiAgICBBZmZlY3RlZCBib2FyZHM6CgljdTgyNAoJYmFiN3h4CglhZGNpb3AKCWRhc2Ffc2ltCgltb3Vzc2UKCW1wYzg1NDBldmFsCgltdXNlbmtpCgltdmJsdWUKCXBjaXBwYzIvcGNpcHBjNgoJc2JjODI0MAoJc3R4c3NhCgogICAgUmVtb3ZlZCBpbml0aWFsaXphdGlvbiBvZiB0aGUgZHJpdmVyIGZyb20gbmV0L2V0aC5jCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBhZDMzODFjZjQxNjcxMjBkYjVjN2I4OGU0OTcwMjQ1ZTFkNWMwYTMyCkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJU3VuIEF1ZyAzMSAxMDo0NDoxOSAyMDA4IC0wNzAwCgogICAgTW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgRTEwMDAgRXRoZXJuZXQgY29udHJvbGxlciB0byBib2FyZF9ldGhfaW5pdCgpCgogICAgQWZmZWN0ZWQgYm9hcmRzOgoJYXAxMDAwCgltdmJjX3AKCVBNODU0CgogICAgUmVtb3ZlZCBpbml0aWFsaXphdGlvbiBvZiB0aGUgZHJpdmVyIGZyb20gbmV0L2V0aC5jCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA0ZmNlMmFjZWFmOGFmZDMxYTI1MmJjNzgyYzlkYmM0OTdiZjQwNDg3CkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJU3VuIEF1ZyAzMSAxMDo0MDo1MSAyMDA4IC0wNzAwCgogICAgTW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgcGxiMjgwMCBFdGhlcm5ldCBkcml2ZXIgdG8gYm9hcmRfZXRoX2luaXQKCiAgICBBZmZlY3RlZCBib2FyZHM6CglwdXJwbGUKCiAgICBSZW1vdmVkIGluaXRpYWxpemF0aW9uIG9mIGNvbnRyb2xsZXIgZnJvbSBuZXQvZXRoLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGUxZDc0ODBiNWRlMWZkNDgzMGJmN2NmNWUyMjM3ZDNiMDg0NmQwOGQKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglTdW4gQXVnIDMxIDEwOjM5OjEyIDIwMDggLTA3MDAKCiAgICBNb3ZlZCBpbml0aWFsaXphdGlvbiBvZiBNUEM1eHh4X0ZFQyBFdGhlcm5ldCBkcml2ZXIgdG8gQ1BVIGRpcmVjdG9yeQoKICAgIE1vZGlmaWVkIGJvYXJkX2V0aF9pbml0KCkgZnVuY3Rpb25zIG9mIGJvYXJkcyB0aGF0IGhhdmUgdGhpcyBGRUMgaW4gYWRkaXRpb24KICAgIHRvIG90aGVyIEV0aGVybmV0IGNvbnRyb2xsZXJzLgoKICAgIEFmZmVjdGVkIGJvYXJkczoKCWJjMzQ1MAoJaWNlY3ViZQoJbXZiY19wCglvMmRudAoJcG01MjAKCXRvdGFsNTIwMAoJdHE1MjAwCgogICAgUmVtb3ZlZCBpbml0aWFsaXphdGlvbiBvZiBjb250cm9sbGVyIGZyb20gbmV0L2V0aC5jCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBhMGFhZDA4Zjk0MjdhYzAwMjE4YmRiMmNiNjQ5ODMzY2U2ZWM5YjhkCkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJU3VuIEF1ZyAzMSAxMDozNjozOCAyMDA4IC0wNzAwCgogICAgTW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgTVBDNTEyeF9GRUMgRXRoZXJuZXQgZHJpdmVyIHRvIENQVSBkaXJlY3RvcnkKCiAgICBBZGRlZCBhIGNwdV9ldGhfaW5pdCgpIGZ1bmN0aW9uIHRvIE1QQzUxMnggQ1BVIGRpcmVjdG9yeSBhbmQKICAgIHJlbW92ZWQgY29kZSBmcm9tIG5ldC9ldGguYwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgODIxOGJkMmFhNjg4MjBiODc4YTg0MTM0OTNhZTE3ZmQ4ZDIxZjk0NApBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CVN1biBBdWcgMzEgMTA6MTY6NTkgMjAwOCAtMDcwMAoKICAgIE1vdmVkIGluaXRpYWxpemF0aW9uIG9mIEluY2FJUCBFdGhlcm5ldCBjb250cm9sbGVyIHRvIGJvYXJkX2V0aF9pbml0CgogICAgQWZmZWN0ZWQgYm9hcmRzOgoJSW5jYUlQCgogICAgUmVtb3ZlZCBpbml0aWFsaXphdGlvbiBvZiB0aGUgZHJpdmVyIGZyb20gbmV0L2V0aC5jCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCAxNjQ4NDZlZWIyNWNiMmE1ZWRlN2FiOTM3MWZkY2E3ZjQ4MzFhMDU1CkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJU3VuIEF1ZyAzMSAxMDoxNToyNiAyMDA4IC0wNzAwCgogICAgTW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgM0NPTSBFdGhlcm5ldCBjb250cm9sbGVyIChBbWlnYU9uZSkgdG8gYm9hcmRfZXRoX2luaXQoKQoKCUFmZmVjdGVkIGJvYXJkczoKCSAgICBBbWlnYU9uZUczU0UKCglSZW1vdmVkIGluaXRpYWxpemF0aW9uIG9mIHRoZSBkcml2ZXIgZnJvbSBuZXQvZXRoLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDZhY2ExNDVlMDY3ZWZlNzUzOThlOWZhYzk3ODIyYmQzNzAwZGUwYjIKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglTdW4gQXVnIDMxIDEwOjEzOjM0IDIwMDggLTA3MDAKCiAgICBNb3ZlZCBpbml0aWFsaXphdGlvbiBvZiBHVDY0MjZ4IEV0aGVybmV0IGNvbnRyb2xsZXIgdG8gYm9hcmRfZXRoX2luaXQoKQoKICAgIEFmZmVjdGVkIGJvYXJkczoKCUVWQjY0MjYwCglQM0c0CglaVU1BCgogICAgUmVtb3ZlZCBpbml0aWFsaXphdGlvbiBvZiB0aGUgZHJpdmVyIGZyb20gbmV0L2V0aC5jCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBlMzA5MDUzNGQ2MjA0NWRjYjczZjUzOTJiYWNjNjRhNGU4ZTQ0M2RjCkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJU3VuIEF1ZyAzMSAxMDowODo0MyAyMDA4IC0wNzAwCgogICAgTW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgUENORVQgRXRoZXJuZXQgY29udHJvbGxlciB0byBib2FyZF9ldGhfaW5pdCgpCgogICAgQWZmZWN0ZWQgYm9hcmRzOgoJUE42MgoJc2M1MjBfY2RwCgogICAgUmVtb3ZlZCBpbml0aWFsaXphdGlvbiBvZiB0aGUgZHJpdmVyIGZyb20gbmV0L2V0aC5jCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBiOTAyYjhkZGE1ZTFmZDRkNWZlMmYyMDJjNzFlZTM1MjFkMmM0MGVkCkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJU3VuIEF1ZyAzMSAxMDowNzoxNiAyMDA4IC0wNzAwCgogICAgTW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgTkFUU0VNSSBFdGhlcm5ldCBjb250cm9sbGVyIHRvIGJvYXJkX2V0aF9pbml0KCkKCiAgICBBZmZlY3RlZCBib2FyZHM6CglhMzAwMAoKICAgIFJlbW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGRyaXZlciBmcm9tIG5ldC9ldGguYwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgMTk0MDM2MzNkZDcwMzMzODkzYzJkYTc5MjZhMWQwZGNkNmRhYjdkOApBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CVN1biBBdWcgMzEgMTA6MDM6MjIgMjAwOCAtMDcwMAoKICAgIE1vdmVkIGluaXRpYWxpemF0aW9uIG9mIE5TODM4MlggRXRoZXJuZXQgY29udHJvbGxlciB0byBib2FyZF9ldGhfaW5pdCgpCgogICAgQWZmZWN0ZWQgYm9hcmRzOgoJYmMzNDUwCgljcGNpNTIwMAoJbWVjcDUyMDAKCXBmMjAwMAoJaWNlY3ViZQoJbzJkbnQKCXBtNTIwCglzYW5kcG9pbnQ4MjQ1Cgl0b3RhbDUyMDAKCXRxbTUyMDAKCiAgICBSZW1vdmVkIGluaXRpYWxpemF0aW9uIG9mIHRoZSBkcml2ZXIgZnJvbSBuZXQvZXRoLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGNjZGQxMmY4M2VmOTM3MTlmYmU4NWY2NDJhYTRkYzY0OGI5NDk4ZjAKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglTdW4gQXVnIDMxIDA5OjU5OjMzIDIwMDggLTA3MDAKCiAgICBNb3ZlZCBpbml0aWFsaXphdGlvbiBvZiBUU0kxMDggRXRoZXJuZXQgY29udHJvbGxlciB0byBib2FyZF9ldGhfaW5pdCgpCgogICAgQWZmZWN0ZWQgYm9hcmRzOgoJbXBjNzQ0OGhwYzIKCiAgICBSZW1vdmVkIGluaXRpYWxpemF0aW9uIG9mIHRoZSBkcml2ZXIgZnJvbSBuZXQvZXRoLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDBiMjUyZjUwYWUyMThhZTE1YmZiNjNhZjQ0MjI3OTcyNjg2ZWJjNTYKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglTdW4gQXVnIDMxIDIxOjQxOjA4IDIwMDggLTA3MDAKCiAgICBNb3ZlZCBpbml0aWFsaXphdGlvbiBvZiBSVEw4MTM5IEV0aGVybmV0IGNvbnRyb2xsZXIgdG8gYm9hcmRfZXRoX2luaXQoKQoKICAgIEFmZmVjdGVkIGJvYXJkczoKCWhpZGRlbl9kcmFnb24KCU1QQzg1NDREUwoJTVBDODYxMEhQQ04KCVIyRFBMVVMKCVRCMDIyOQoKICAgIFJlbW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGRyaXZlciBmcm9tIG5ldC9ldGguYwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgMDJkNjk4OTFkOTVlZTc2YjBlODZlMTcxNWE0ZGMwYjk2NGE1N2NiNwpBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CVN1biBBdWcgMzEgMDk6NDk6NDIgMjAwOCAtMDcwMAoKICAgIE1vdmVkIGluaXRpYWxpemF0aW9uIG9mIFJUTDgxNjkgRXRoZXJuZXQgY29udHJvbGxlciB0byBib2FyZF9ldGhfaW5pdCgpCgogICAgQWZmZWN0ZWQgYm9hcmRzOgoJbGlua3N0YXRpb24KCXI3NzgwbXAKCiAgICBSZW1vdmVkIGluaXRpYWxpemF0aW9uIG9mIHRoZSBkcml2ZXIgZnJvbSBuZXQvZXRoLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDNhZTA3MWU0NDI1NjE0NGQ2YzFlM2ZlYmI2NWY2YzU2YmQ0MzM3NjkKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglUdWUgQXVnIDEyIDIyOjExOjUzIDIwMDggLTA3MDAKCiAgICBNb3ZlZCBpbml0aWFsaXphdGlvbiBvZiBFdGhlcm5ldCBjb250cm9sbGVycyBvbiBBdG1lbCBBVDkxIHRvIGJvYXJkX2V0aF9pbml0KCkKCiAgICBSZW1vdmVkIGF0OTFzYW05X2V0aF9pbml0aWFsaXplKCkgZnJvbSBuZXQvZXRoLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDg5OTczZjhhODJjMjhhZDg5M2M0YzNjYzU2ODM5YThlMTBmZTVmMTMKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglTdW4gQXVnIDMxIDIyOjIyOjA0IDIwMDggLTA3MDAKCiAgICBJbnRyb2R1Y2UgbmV0ZGV2LmggaGVhZGVyIGZpbGUgYW5kIHJlbW92ZSBleHRlcm5zCgogICAgVGhpcyBhZGRyZXNzZXMgYWxsIGRyaXZlcnMgd2hvc2UgaW5pdGlhbGl6ZXJzIGhhdmUgYWxyZWFkeQogICAgYmVlbiBtb3ZlZCB0byBib2FyZF9ldGhfaW5pdCgpL2NwdV9ldGhfaW5pdCgpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNWE4YTE2M2FjMzk0ZDlmNGY3ZmY1N2Y0MTVkODJiZDY3M2IwMDY4YwpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEF1ZyAzMSAxNjozMzozMCAyMDA4IC0wNTAwCgogICAgQWRkIHBpeGlzX3NldF9zZ21paSBjb21tYW5kCgogICAgVGhlIDg1NDREUyBhbmQgODU3MkRTIHBsYXRmb3JtcyBzdXBwb3J0IGFuIG9wdGlvbmFsIFNHTUlJIHJpc2VyIGNhcmQgdG8KICAgIGV4cG9zZSBldGhlcm5ldCBvdmVyIGFuIFNHTUlJIGludGVyZmFjZS4gIE9uY2UgdGhlIGNhcmQgaXMgaW4sIGl0IGlzIGFsc28KICAgIG5lY2Vzc2FyeSB0byBjb25maWd1cmUgdGhlIGJvYXJkIHN1Y2ggdGhhdCBpdCB1c2VzIHRoZSBjYXJkLCByYXRoZXIgdGhhbgogICAgdGhlIG9uLWJvYXJkIGV0aGVybmV0IHBvcnRzLiAgVGhpcyBjYW4gZWl0aGVyIGJlIGRvbmUgYnkgZmxpcHBpbmcgZGlwIHN3aXRjaGVzCiAgICBvbiB0aGUgbW90aGVyYm9hcmQsIG9yIGJ5IG1vZGlmeWluZyByZWdpc3RlcnMgaW4gdGhlIHBpeGlzLiAgRWl0aGVyIHdheQogICAgcmVxdWlyZXMgYSByZWJvb3QuCgogICAgVGhpcyBhZGRzIGEgY29tbWFuZCB0byBhbGxvdyB1c2VycyB0byBjaG9vc2Ugd2hpY2ggcG9ydHMgYXJlIHJvdXRlZCB0aHJvdWdoCiAgICB0aGUgU0dNSUkgY2FyZCwgYW5kIHdoaWNoIHRocm91Z2ggdGhlIG9uYm9hcmQgcG9ydHMuICBJdCBhbHNvIGFsbG93cyB1c2VycwogICAgdG8gcmV2ZXJ0IHRvIHRoZSBjdXJyZW50IHN3aXRjaCBzZXR0aW5ncy4KCiAgICBUaGlzIGNvZGUgZG9lcyBub3Qgd29yayBvbiB0aGUgODU3MiwgYXMgdGhlIFBJWElTIGlzIGRpZmZlcmVudC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDIxNmYyYTcxNTZhNWZkZTdiNDdhZGM0MGFkNTUzYzg4OGE5Y2JhYTcKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBBdWcgMzEgMTY6MzM6MjkgMjAwOCAtMDUwMAoKICAgIEFkZCBTR01JSSBzdXBwb3J0IGZvciB0aGUgODU0NCBEUwoKICAgIFRoZSA4NTQ0IERTIGhhcyBhbiBvcHRpb25hbCBTR01JSSBSaXNlciBjYXJkLCB3aGljaCB1c2VzIGRpZmZlcmVudCBQSFkKICAgIGFkZHJlc3Nlcy4JQ2hlY2sgaWYgd2UgYXJlIGluIFNHTUlJIG1vZGUsIGFuZCBpbnZva2UgdGhlIFNHTUlJIFJpc2VyCiAgICBzZXR1cCBjb2RlIGlmIHNvLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNjUyZjdjMmVlZjc2YTEzNDA5MjhiZDY2MDg0NTQ0MWU5MzJkODZhMgpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEF1ZyAzMSAxNjozMzoyOCAyMDA4IC0wNTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIEZyZWVzY2FsZSBTR01JSSBSaXNlciBDYXJkCgogICAgVGhlIDg1NDREUyBhbmQgODU3MkRTIHN5c3RlbXMgaGF2ZSBhbiBvcHRpb25hbCBTR01JSSByaXNlciBjYXJkIHdoaWNoCiAgICBleHBvc2VzIG5ldyBldGhlcm5ldCBwb3J0cyB3aGljaCBhcmUgY29ubmVjdGVkIHRvIHRoZSBlVFNFQ3MgdmlhIGFuCiAgICBTR01JSSBpbnRlcmZhY2UuICBUaGUgU0dNSUkgUEhZcyBmb3IgdGhpcyBib2FyZCBhcmUgb2Zmc2V0IGZyb20gdGhlIHN0YW5kYXJkCiAgICBQSFkgYWRkcmVzc2VzLCBzbyB0aGlzIGNvZGUgbW9kaWZpZXMgdGhlIHBhc3NlZCBpbiB0c2VjX2luZm8gc3RydWN0dXJlIHRvCiAgICB1c2UgdGhlIFNHTUlJIFBIWXMgb24gdGhlIGNhcmQsIGluc3RlYWQuCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCAyYWJlMzYxYzAzYjQzZTZkY2Y2OGY1NGU5NmI1YzA1MTU2YzQ5Mjg0CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gQXVnIDMxIDE2OjMzOjI3IDIwMDggLTA1MDAKCiAgICBBZGQgU0dNSUkgc3VwcG9ydCB0byB0aGUgdHNlYwoKICAgIEFkZHMgc3VwcG9ydCBmb3IgY29uZmlndXJpbmcgdGhlIFRCSSB0byB0YWxrIHByb3Blcmx5IHdpdGggdGhlIFNlckRlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDc1YjlkNGFlMGQ2OWYyMTRlYWI2NDFjYWYxMmNlOGFmODNhMzlhNDIKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBBdWcgMzEgMTY6MzM6MjYgMjAwOCAtMDUwMAoKICAgIFBhc3MgaW4gdHNlY19pbmZvIHN0cnVjdCB0aHJvdWdoIHRzZWNfaW5pdGlhbGl6ZQoKICAgIFRoZSB0c2VjIGRyaXZlciBjb250YWlucyBhIGhhcmQtY29kZWQgYXJyYXkgb2YgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbgogICAgZm9yIHRoZSB0c2VjIGV0aGVybmV0IGNvbnRyb2xsZXJzLglXZSBjcmVhdGUgYSBkZWZhdWx0IGZ1bmN0aW9uIHRoYXQgd29ya3MKICAgIGZvciBtb3N0IHRzZWNzLCBhbmQgYWxsb3cgdGhhdCB0byBiZSBvdmVycmlkZGVuIGJ5IGJvYXJkIGNvZGUuICBJdCBjcmVhdGVzCiAgICBhbiBhcnJheSBvZiB0c2VjX2luZm8gc3RydWN0dXJlcywgd2hpY2ggYXJlIHRoZW4gcGFyc2VkIGJ5IHRoZSBjb3JyZXNwb25kaW5nCiAgICBkcml2ZXIgaW5zdGFuY2UgdG8gZGV0ZXJtaW5lIGNvbmZpZ3VyYXRpb24uICBBbHNvLCBhZGQgcmVncywgbWlpcmVncywgYW5kCiAgICBkZXZuYW1lIGZpZWxkcyB0byB0aGUgdHNlY19pbmZvIHN0cnVjdHVyZSwgc28gdGhhdCB3ZSBkb24ndCBuZWVkIHRoZSBrbHVkZ3kKICAgICJpbmRleCIgcGFyYW1ldGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZGQzZDFmNTZhMDFmNDYwZDU2MDc2NjEyNmVlN2RmZWQyZWE5YmMxMApBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEF1ZyAzMSAxNjozMzoyNSAyMDA4IC0wNTAwCgogICAgdHNlYzogTW92ZSB0c2VjLmggdG8gaW5jbHVkZS8KCiAgICBUaGlzIGlzIHRvIHByZXBhcmUgdGhlIHdheSBmb3IgYm9hcmQgY29kZSBwYXNzaW5nIGluIHRoZSB0c2VjX2luZm8gc3RydWN0dXJlCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBkMjNkYzM5NGFhNjkwOTNiNjMyNmFkOTE3ZGIwNGRjMGQxYWZmM2Y4CkF1dGhvcjogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KRGF0ZToJRnJpIEp1biA2IDE1OjUyOjQ0IDIwMDggKzAyMDAKCiAgICBQSFk6IEFkZCBzdXBwb3J0IGZvciB0aGUgTTg4RTExMjFSIE1hcnZlbGwgY2hpcC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCAxNzExZjNiZDE2ZDFjNWU5ZDE3YjRjMDE5OGI0MjZkODY5OTk3ODFiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIFNlcCAyIDIxOjE3OjM2IDIwMDggKzAyMDAKCiAgICBmd19lbnYuYzogZml4IGJ1aWxkIHByb2JsZW1zIHdpdGggTVREX1ZFUlNJT049b2xkCgogICAgKGFzIG5lZWRlZCB0byBzdXBwb3J0IG9sZCAyLjQgTGludXgga2VybmVsIGJhc2VkIHJlbGVhc2VzKQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNjI4ZmZkNzNiY2ZmMGM5ZjNiYzVhOGVlYjJjNzQ1NWZlOWQyOGE1MQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBTZXAgMSAxNzoxMToyNiAyMDA4ICswMjAwCgogICAgZGV2aWNlOiBtYWtlIGRldmljZV9yZWdpc3RlcigpIGNsb25lIHRoZSBkZXZpY2UKCiAgICBUaGlzIGlzIGV4cGVjdGVkIGJ5IHRoZSBjYWxsZXJzLCBidXQgdGhpcyBmYWN0IHdhcyBoaWRkZW4gd2VsbCB3aXRoaW4KICAgIHRoZSBvbGQgbGlzdCBpbXBsZW1lbnRhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGM3NWU3NzJhMmYwNjFhNTA4YmJhMjhkZWQxYjViZWE5MWYwNDQyYjAKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVN1biBBdWcgMzEgMjM6Mjg6MTUgMjAwOCArMDkwMAoKICAgIHNoOiBSZW1vdmUgQ0MgbGluZSBmcm9tIGJvYXJkJ3MgTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNDY4ZWFlMDY2MGRlNmZkZmQ5OTk5OTQ0YzUzNmVjYzQ3OTdiZDk0NApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJU3VuIEF1ZyAzMSAyMzoyNTo1NyAyMDA4ICswOTAwCgogICAgc2g6IFJlcGxhY2VkICJALi9ta2NvbmZpZyIgZm9yIEAkKE1LQ09ORklHKQoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAzYWViMWZmNzQ4MmE3MzI1MDMxODZjNzQyZDNhNWRlZDRiN2EwZDM0CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgpEYXRlOglUaHUgQXVnIDI4IDE0OjUwOjUyIDIwMDggKzA5MDAKCiAgICBzaDogQWRkIHN1cHBvcnQgc2gyIHRvIE1BS0VBTEwKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNmYzZDhiYjVmYWExMmRiZjMwMzEzODIyODY3ODRjOTc4ZGYwMzhlZQpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJVGh1IEF1ZyAyOCAxNDo1MjoyMyAyMDA4ICswOTAwCgogICAgc2g6IEZpeCBjb21waWxlIGVycm9yIHJzazcyMDMgYm9hcmQKCiAgICBUaGlzIGJvYXJkcyB1c2VkIG9sZCB0eXBlIHByZXByb2Nlc3Nvci4KICAgIFRoaXMgcGF0Y2ggZml4IGNvbXBpbGUgZXJyb3IuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDFjOTgxNzJlMDI1MDE4NTUyZTliYjRjNDNiMGFhZWU3NmY3OWIxYWEKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVRodSBBdWcgMjggMTQ6NTM6MzEgMjAwOCArMDkwMAoKICAgIHNoOiBGaXggY29tcGlsZSBlcnJvciBzaDc3ODVsY3IgYm9hcmQKCiAgICBUaGlzIGJvYXJkcyB1c2VkIG9sZCB0eXBlIHByZXByb2Nlc3Nvci4KICAgIFRoaXMgcGF0Y2ggZml4IGNvbXBpbGUgZXJyb3IuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDZmMGRhNDk3MmU0OGY5OWQzN2JjNTIyODE0OTQwYTYwMjJjZDMwODQKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CUZyaSBBdWcgMjIgMTc6Mzk6MDkgMjAwOCArMDkwMAoKICAgIHNoOiBSZW5lc2FzIFNvbHV0aW9ucyBBUDMyNVJYQSBib2FyZCBzdXBwb3J0CgogICAgQVAzMjVSWEEgaXMgU0g3NzIzJ3MgcmVmZXJlbmNlIGJvYXJkLgogICAgVGhpcyBoYXMgU0NJRiwgTk9SIEZsYXNoLCBFdGhlcm5ldCwgVVNCIGhvc3QsIExDREMsIFNEIEhvc3QsIENhbWVyYSBhbmQgb3RoZXIuCiAgICBJbiB0aGlzIHBhdGNoLCBzdXBwb3J0IFNDSUYsIE5PUiBGbGFzaCwgYW5kIEV0aGVybmV0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBhYjA5ZjQzM2I1MGJiODNiNWU0NDBjMzM1YmMzODM5ZWUwNjllNTM0CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgpEYXRlOglGcmkgQXVnIDIyIDE3OjQ4OjUxIDIwMDggKzA5MDAKCiAgICBzaDogYWRkIHN1cHBvcnQgUmVuZXNhcyBTSDc3MjMKCiAgICBSZW5lc2FzIFNINzcyMyBoYXMgNSBTQ0lGLCBTRCwgQ2FtZXJhLCBMQ0RDIGFuZCBvdGhlci4KICAgIFRoaXMgcGF0Y2ggc3VwcG9ydHMgQ1BVIHJlZ2lzdGVyJ3MgaGVhZGVyIGZpbGUgYW5kIFNDSUYgc2VyaWFsIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgYzY1NWZhZDA2YmEzZmIwNDJkYmM2Njc3MjRhNDBlMWE5YTA5MTI0OApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJU3VuIEF1ZyAzMSAyMzowMjowNCAyMDA4ICswOTAwCgogICAgc2g6IFJlbmVzYXMgUlNLKyA3MjAzIGJvYXJkIHN1cHBvcnQKCiAgICBUaGlzIGFkZHMgaW5pdGlhbCBzdXBwb3J0IGZvciB0aGUgUlRFIFJTSysgU0g3MjAzIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA2ZWRlNzUzZGRmNTJhN2IwZjk5MmQ5YmNjYmU1ZTRhMDk2OGNhNDc1CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgpEYXRlOglUaHUgSnVsIDMgMjM6MTE6MDIgMjAwOCArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBSZW5lc2FzIFNINzIwMyBwcm9jZXNzb3IKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNmFkNDNkMGRkODZiNjEyODk1ZGRjN2Y0ODBlYjZjZGZlNzkzYWRmOQpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJU3VuIEF1ZyAzMSAyMjo0ODozMyAyMDA4ICswOTAwCgogICAgc2g6IEFkZCBzdXBwb3J0IFNIMi9TSDJBIHdoaWNoIGlzIENQVSBvZiBSZW5lc2FzIFRlY2hub2xvZ3kKCiAgICBBZGQgc3VwcG9ydCBTSDIvU0gyQSBiYXNpYyBmdW5jdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMGQ1M2E0N2RjMDczN2I2YWEzYTM5Y2FlZTIxNDEwYzE2OTQ0MWFlNQpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJU3VuIEF1ZyAzMSAyMjo0NTowOCAyMDA4ICswOTAwCgogICAgc2g6IFJlbmVzYXMgUjBQNzc4NUxDMDAxMVJMIGJvYXJkIHN1cHBvcnQKCiAgICBUaGlzIGJvYXJkIGhhcyBTSDc3ODUsIDUxMk1CIEREUjItU0RSQU0sIE5PUiBGbGFzaCwKICAgIEdyYXBoaWMsIEV0aGVybmV0LCBVU0IsIFNELCBSVEMsIGFuZCBJMkMgY29udHJvbGxlci4KCiAgICBUaGlzIHBhdGNoIHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zOgogICAgIC0gMTI4TUIgRERSMi1TRFJBTSAoMjktYml0IGFkZHJlc3MgbW9kZSBvbmx5KQogICAgIC0gTk9SIEZsYXNoCiAgICAgLSBVU0IgaG9zdAogICAgIC0gRXRoZXJuZXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBZb3NoaWhpcm8gU2hpbW9kYSA8c2hpbW9kYS55b3NoaWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgYjBiNjIxODkyOWJjN2RlOWE2YmRiOGU1NjRmYThlYzJlZmE3MWI0ZQpBdXRob3I6IFlvc2hpaGlybyBTaGltb2RhIDxzaGltb2RhLnlvc2hpaGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJVGh1IEp1bCAxMCAxOTozMjo1MyAyMDA4ICswOTAwCgogICAgc2g6IGFkZCBzdXBwb3J0IGZvciBTSDc3ODUKCiAgICBSZW5lc2FzIFNINzc4NSBoYXMgRERSMi1TRFJBTSBjb250cm9sbGVyLCBQQ0ksIGFuZCBvdGhlci4KICAgIFRoaXMgcGF0Y2ggc3VwcG9ydHMgQ1BVIHJlZ2lzdGVyJ3MgaGVhZGVyIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogWW9zaGloaXJvIFNoaW1vZGEgPHNoaW1vZGEueW9zaGloaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGQ2ZTA0MjU4YmU4ZjI0MDg4NDU0NjhkM2NmNzIyYTRjZjA0MzM0NDUKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gQXVnIDMxIDA0OjQ1OjQyIDIwMDggKzAyMDAKCiAgICBkYXZpbmNpOiBmaXggcmVtYWluaW5nIGRtNjQ0eF9ldGgKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDA4YWI0ZTE3ODBmYTYzYzg4ZGQ1YTVhYjUyZjRmZjRlZDFlZTE4NzgKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gQXVnIDMxIDA0OjI0OjU2IDIwMDggKzAyMDAKCiAgICBmczogTW92ZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYzFkZTdhNmRhZjljNjU3NDg0ZTFjNmQ0MzNmMDFmY2NkNDlhN2Y0OApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBBdWcgMzEgMDQ6MjQ6NTUgMjAwOCArMDIwMAoKICAgIGRldmljZXM6IG1lcmdlIHRvIGxpc3RfaGVhZAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZWYwMjU1ZmM3NWYyODY1NWY5NjgxNDIyMDc5Mjg3ZDY4YTE0ZGJhYQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBBdWcgMzEgMDQ6MjQ6NTEgMjAwOCArMDIwMAoKICAgIHVwZGF0ZSBsaW51eC9saXN0CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA3MWNiMzEyMjdiZWU3NDFiMjc0ZjZjMDI3OWIyYWFjMWFiOGUyOGUzCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIEF1ZyAzMSAwMDozOTo0OCAyMDA4ICswMjAwCgogICAgc21kazY0MDA6IGFkZCBnaXRpZ25vcmUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGY5ZjY5MmUyYjE0NmQ0ZTMwNmI3NzdlNmQ1ZjY5ZjFkNzI1YjllYjkKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gQXVnIDMxIDAwOjM5OjQ4IDIwMDggKzAyMDAKCiAgICBzbWRrNjQwMDogVXNlIENPTkZJR19GTEFTSF9DRklfRFJJVkVSCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA3YzBlNWE4ZGIzZDEzNThiMGNlM2NjODVhZGEwZGU2MzQxY2E0YTE1CkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglTdW4gQXVnIDMxIDAwOjM5OjQ3IDIwMDggKzAyMDAKCiAgICBzbWRrNjQwMDogcmVtb3ZlIHJlZHVuZGFudCBib290YXJncyBkZWZpbml0aW9uCgogICAgRG91YmxlIGJvb3RhcmdzIHNldHRpbmcgbGVhZHMgdG8gYSBkdXBsaWNhdGVkIGVudmlyb25tYW50IGVudHJ5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCAxMWVkY2ZlMjYwZjIwZGNlYTc5Mjg0YTNlOTUyNzA5ODlkNDMzODU0CkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglTdW4gQXVnIDMxIDAwOjM5OjQ3IDIwMDggKzAyMDAKCiAgICBBUk06IEFkZCBzdXBwb3J0IGZvciBTM0M2NDAwIGJhc2VkIFNNREs2NDAwIGJvYXJkCgogICAgU01ESzY0MDAgY2FuIG9ubHkgYm9vdCBVLUJvb3QgZnJvbSBOQU5ELWZsYXNoLiBUaGlzIHBhdGNoIGFkZHMgYSBuYW5kX3NwbAogICAgZHJpdmVyIGZvciBpdCB0b28uIFRoZSBib2FyZCBjYW4gYWxzbyBib290IGZyb20gdGhlIE5PUiBmbGFzaCwgYnV0IGR1ZSB0bwogICAgaGFyZHdhcmUgbGltaXRhdGlvbnMgaXQgY2FuIG9ubHkgYWRkcmVzcyA2NEtpQiBvbiBpdCwgd2hpY2ggaXMgbm90IGVub3VnaAogICAgZm9yIFUtQm9vdC4gQmFzZWQgb24gdGhlIG9yaWdpbmFsIHNvdXJjZXMgYnkgU2Ftc3VuZyBmb3IgVS1Cb290IDEuMS42LgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCBlMDA1NmIzNDEwNjk3OTZlYWVhMTFlYWUwZmM4ZWI5M2EzZGNlYWFjCkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglTdW4gQXVnIDMxIDAwOjM5OjQ3IDIwMDggKzAyMDAKCiAgICBOQU5EOiBhZGQgTkFORCBkcml2ZXIgZm9yIFMzQzY0WFgKCiAgICBCYXNlZCBvbiB0aGUgb3JpZ2luYWwgUzNDNjRYWCBOQU5EIGRyaXZlciBieSBTYW1zdW5nIGZvciBVLUJvb3QgMS4xLjYuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDNmZTdiNTg5ZjljNzQ2M2RmMzkwNTZmODg3MjAwNmE2N2Y1NmE5MWMKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVN1biBBdWcgMzEgMDA6Mzk6NDcgMjAwOCArMDIwMAoKICAgIFMzQzY0WFg6IHJlbW92ZSBicm9rZW4gSFdGTE9XIHN1cHBvcnQgZnJvbSB0aGUgc2VyaWFsIGRyaXZlcgoKICAgIEFzIG5vdGVkIGJ5IEhhcmFsZCBXZWx0ZSwgSFdGTE9XIHN1cHBvcnQgaW4gdGhlIFMzQzY0WFggc2VyaWFsIGRyaXZlciBpcwogICAgYnJva2VuIGFuZCBjdXJyZW50bHkgdW51c2VkLiBSZW1vdmUgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDJmYjI4ZGNmODIwNDgwNDVlMWJmNTAxNGU5MzhlNDg2ZmE2YzIzODMKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVN1biBBdWcgMzEgMDA6Mzk6NDcgMjAwOCArMDIwMAoKICAgIHNlcmlhbDogYWRkIFMzQzY0WFggc2VyaWFsIGRyaXZlcgoKICAgIEJhc2VkIG9uIHRoZSBvcmlnaW5hbCBTM0M2NFhYIFVBUlQgZHJpdmVyIGJ5IFNhbXN1bmcgZm9yIFUtQm9vdCAxLjEuNi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgODI2MjgxM2NhMDRmYzU3ZjVkODg1NmUxODI4MDg1YzEzNmUwZjFlYgpBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJU3VuIEF1ZyAzMSAwMDozOTo0NiAyMDA4ICswMjAwCgogICAgVVNCOiBBZGQgc3VwcG9ydCBmb3IgT0hDSSBjb250cm9sbGVyIG9uIFMzQzY0MDAKCiAgICBOb3RpY2U6IFVTQiBvbiBTM0M2NDAwIGN1cnJlbnRseSB3b3JrcyBfb25seV8gd2l0aCBzd2l0Y2hlZCBvZmYgTU1VLiBPbmUgY291bGQKICAgIHRyeSB0byBlbmFibGUgdGhlIE1NVSwgYnV0IG1hcCBhZGRyZXNzZXMgMS10by0xLCBhbmQgZGlzYWJsZSBkYXRhIGNhY2hlLCB0aGVuCiAgICBpdCBzaG91bGQgd29yayB0b28gYW5kIHdlIGNvdWxkIHN0aWxsIHByb2ZpdCBmcm9tIGluc3RydWN0aW9uIGNhY2hlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCA5YjA3NzczZjg4ODM2NjViMDAyNTAwYzE5MDUwN2U5ZmQ5OWI3MTgxCkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglTdW4gQXVnIDMxIDAwOjM5OjQ2IDIwMDggKzAyMDAKCiAgICBBUk06IEFkZCBhcm0xMTc2IGNvcmUgd2l0aCBTM0M2NDAwIFNvQwoKICAgIEJhc2VkIG9uIHRoZSBvcmlnaW5hbCBTM0M2NFhYIHBvcnQgYnkgU2Ftc3VuZyBmb3IgVS1Cb290IDEuMS42LgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCBmY2FhYzU4OWE2ODExNTgxOWRkYWRjZjVjMThkZWQ5YTVmOWUyYzc1CkF1dGhvcjogU2FuZGVlcCBQYXVscmFqIDxzLXBhdWxyYWpAdGkuY29tPgpEYXRlOglTdW4gQXVnIDMxIDAwOjM5OjQ2IDIwMDggKzAyMDAKCiAgICBBUk0gRGFWaW5jaTogQ2hhbmdpbmcgZnVuY3Rpb24gbmFtZXMgZm9yIEVNQUMgZHJpdmVyCgogICAgRE02NDR4IGlzIGp1c3Qgb25lIG9mIGEgc2VyaWVzIG9mIERhVmluY2kgY2hpcHMgdGhhdCB1c2UgdGhlIEVNQUMgZHJpdmVyLgogICAgQnkgcmVwbGFjaW5nIGFsbCB0aGUgZnVuY3Rpb24gbmFtZXMgdGhhdCBzdGFydCB3aXRoIGRtNjQ0eF8qIHRvIGRhdmluY2lfKgogICAgd2UgbWFrZSB0aGVzZSBmdW5jdGlvbiBtb3JlIHBvcnRhYmxlLiBJIGhhdmUgdGVzdGVkIHRoaXMgY2hhbmdlIG9uIG15IEVWTS4KICAgIERNNjQ2NyBpcyBhbm90aGVyIERhVmluY2kgU09DIHdoaWNoIHVzZXMgdGhlIEVNQUMgZHJpdmVyIGFuZCBpIHdpbGwKICAgIGJlIHNlbmRpbmcgcGF0Y2hlcyB0aGF0IGFkZCBEYVZpbmNpIERNNjQ2NyBzdXBwb3J0IHRvIHRoZSBsaXN0IHNvb24uCgogICAgU2lnbmVkLW9mZi1ieTogU2FuZGVlcCBQYXVscmFqIDxzLXBhdWxyYWpAdGkuY29tPgoKY29tbWl0IGZiYmIxZGUzNjljYTdkNWFjZTZmN2IwY2U5ZDBhZWUyNGE2ZjQ1N2IKQXV0aG9yOiBHdXJ1cmFqYSBIZWJiYXIgSyBSIDxndXJ1cmFqYWtyQHNhbnlvLmNvLmluPgpEYXRlOglTYXQgQXVnIDMwIDIzOjIxOjMwIDIwMDggKzAyMDAKCiAgICBJbnRlZ3JhdG9yW0FQL0NQXSAtIFJlbW92ZSB1bnVzZWQgZmlsZSBtZW1zZXR1cC5TCgogICAgLSBtZW1zZXR1cC5zIGlzIGNoYW5nZWQvbWVyZ2VkIHRvIGxvd2xldmVsX2luaXQuUwogICAgICBtZW1zZXR1cC5TIGhhcyBhIGdsb2JhbCBsYWJlbCBtZW1zZXR1cCB0aGF0IGp1c3QgcmV0dXJucyBiYWNrIHRvIGNhbGxlcgogICAgLSBtZW1zZXR1cCBnbG9iYWwgbGFiZWwgaXMgY2hhbmdlZC9tZXJnZWQgdG8gbG93bGV2ZWxfaW5pdAogICAgICBUaGlzIGxhYmVsIGlzIG5vdCBjYWxsZWQgZnJvbSBhbnl3aGVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdXJ1cmFqYSBIZWJiYXIgPGd1cnVyYWpha3JAc2FueW8uY28uaW4+Cgpjb21taXQgODlkNTFkMDIyYTYzYmUxYTg1MWVkYTk4M2M4Y2JjZTFhMDQ0ZjY1ZgpBdXRob3I6IEh1Z28gVmlsbGVuZXV2ZSA8aHVnby52aWxsZW5ldXZlQGx5cnRlY2guY29tPgpEYXRlOglXZWQgQXVnIDI3IDIxOjM1OjUyIDIwMDggKzAyMDAKCiAgICBBUk0gRGFWaW5jaTogU3RhbmRhcmRpemUgbmFtZXMgb2YgZGlyZWN0b3JpZXMvZmlsZXMKCiAgICBBUk0gRGFWaW5jaTogU3RhbmRhcmRpemUgbmFtZXMgb2YgZGlyZWN0b3JpZXMvZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSHVnbyBWaWxsZW5ldXZlIDxodWdvLnZpbGxlbmV1dmVAbHlydGVjaC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDI2NGJiZGQxMWQwMWYxNGY1ZWE0NjI5NTU2YWU2M2IwMGIxMzQwMmQKQXV0aG9yOiBIdWdvIFZpbGxlbmV1dmUgPGh1Z28udmlsbGVuZXV2ZUBseXJ0ZWNoLmNvbT4KRGF0ZToJRnJpIEp1bCAxMSAxNToxMDoxMyAyMDA4IC0wNDAwCgogICAgQVJNIERhVmluY2k6IE1vdmUgY29tbW9uIGZ1bmN0aW9ucyB0byBib2FyZC9kYXZpbmNpL2NvbW1vbgoKICAgIEFSTSBEYVZpbmNpOiBNb3ZlIGNvbW1vbiBmdW5jdGlvbnMgdG8gYm9hcmQvZGF2aW5jaS9jb21tb24uCgogICAgU2lnbmVkLW9mZi1ieTogSHVnbyBWaWxsZW5ldXZlIDxodWdvLnZpbGxlbmV1dmVAbHlydGVjaC5jb20+Cgpjb21taXQgYzJiNGIyZTQ4MTRmNGFjZTkwMTVmZGI2NDEzMjg5NDMyNzQwMGJmMApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEF1ZyAyOSAxMTo1Njo0OSAyMDA4ICswMjAwCgogICAgcHBjNHh4L05BTkQ6IEFkZCBzZWxlY3RfY2hpcCBmdW5jdGlvbiB0byA0eHggTkRGQyBkcml2ZXIKCiAgICBUaGlzIGZ1bmN0aW9uIGlzIG5lZWRlZCBmb3IgdGhlIG5ldyBOQU5EIGluZnJhc3RydWN0dXJlLiBXZSBvbmx5IG5lZWQKICAgIGEgZHVtbXkgaW1wbGVtZW50YXRpb24gdGhvdWdoIGZvciB0aGUgTkRGQy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgM2Q0YTc0NmUyZmI0NTQ1ZjA3ZDg3MTA0OTgwNWZiMzRhZTk3Y2M5NApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEF1ZyAyOSAxMjowNjoyNyAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBJbmNyZWFzZSBpbWFnZSBzaXplIGZvciBOQU5EIGJvb3QgdGFyZ2V0CgogICAgVGhpcyBpcyBuZWVkZWQgc2luY2Ugbm93IHdpdGggSFVTSCBlbmFibGVkIChhbWNjLWNvbW1vbi5oKSB0aGUgaW1hZ2UKICAgIHJlYWQgZnJvbSBOQU5EIGV4Y2VlZHMgdGhlIHByZXZpb3VzIGxpbWl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2YjUwNDlkMDU2Y2Q4ZWY3MmQxZjJmNDYxY2ViMmQwMzNkOTNmNzU5CkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJVGh1IEF1ZyAyOCAyMzo1ODozMCAyMDA4IC0wNzAwCgogICAgTW92ZSBNUEM1MTJ4X0ZFQyBkcml2ZXIgdG8gZHJpdmVycy9uZXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDgwYjAwYWYwMWIzYzkxNTQ3NzRkZTI5MzZmMDVhMDUxZTkyZjZhMDMKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglUaHUgQXVnIDI4IDIzOjU4OjI5IDIwMDggLTA3MDAKCiAgICBNb3ZlIE1QQzV4eHhfRkVDIGRyaXZlciB0byBkcml2ZXJzL25ldAoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgM2RlN2JmMGU2YjFhZDI2MDgwMTQwOTZjODE5MmYxMzIyOWIyZTlkNwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBBdWcgMjkgMjE6NTM6NTcgMjAwOCArMDIwMAoKICAgIGNtZF90ZXJtaW5hbDogcmVtb3ZlIG5vIG5lZWQgaWZkZWYKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDU3ODExOGJkZjEyMjg3N2FlNzY5Nzc2YmUwMDIyNTViZTQ0N2I0ZmEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgQXVnIDI5IDIxOjUzOjU3IDIwMDggKzAyMDAKCiAgICBjb21tb24vTWFrZWZpbGU6IG9yZGVyIGJ5IGZ1bmN0aW9uYWxpdHkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGJhN2I1YjIzNDhiNjg0Y2Y4ZWM0MjRiMmUzOGUyNjdkYzFjZmQyZmIKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgQXVnIDI5IDIxOjUzOjU2IDIwMDggKzAyMDAKCiAgICBtaWlwaHl1dGlsOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA4MTc4OWMzOWRiM2YwZjZiNjIxZGY4YzBlYzY2MDE0ZDcwMWYzNjhlCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIEF1ZyAyOSAyMTo1MzozNyAyMDA4ICswMjAwCgogICAgYXV0b3NjcmlwdDogTW92ZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYmJmNTJkZjlhYTk0ZmZiMTE1YjhiMWViZWIwMGQwMTM3NGJiMGExZApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBBdWcgMjkgMDE6MTg6MTEgMjAwOCArMDIwMAoKICAgIGNyYzE2OiBtb3ZlIHRvIGxpYl9nZW5lcmljCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA1NTE5NTc3M2VhY2VmYjIyZGQ0ODNhM2M1NjBlYTMwYTE0MjYzY2UxCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIEF1ZyAyOSAwMToxODowMSAyMDA4ICswMjAwCgogICAgbWlpcGh5YmI6IG1vdmUgdG8gZHJpdmVycy9uZXQvcGh5CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBlODMxNDAzNTk5NmE5MTE4YWM1OTQ4ZGYyZmY4YTJmMjE2MWVkNjdhCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVGh1IEF1ZyAyOCAxMjozMTo1MSAyMDA4ICswMjAwCgogICAgc29mdF9zcGk6IG1vdmUgdG8gZHJpdmVycy9zcGkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDRkNzVlMGFhOWNhY2E2NGQ0YTFkNTVkOTVjZDFjYTVmMzBkOWZjNTYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUaHUgQXVnIDI4IDEyOjMxOjUxIDIwMDggKzAyMDAKCiAgICBzb2Z0X2kyYzogbW92ZSB0byBkcml2ZXJzL2kyYwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNzE3YTIyMjIyOWZkYjc3NzAzZTkxNzRkMGViMDhhNGI0MWZlYmY0OQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVRodSBBdWcgMjggMTI6MzE6NDggMjAwOCArMDIwMAoKICAgIGd1bnppcDogbW92ZSB0byBsaWJfZ2VuZXJpYwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNTJhZWY4ZjliYTI4Yjc0Nzk3M2JmNzY3NDFjMjNkYjY1OGQ1NzczYwpBdXRob3I6IFdvbGZnYW5nIE9ja2VyIDx3ZW9AcmVjY293YXJlLmRlPgpEYXRlOglUdWUgQXVnIDI2IDE5OjU1OjIzIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IE5BTkQgY29uZmlndXJhdGlvbgoKICAgIE1hZGUgTkFORCBiYW5rIGNvbmZpZ3VyYXRpb24gc2V0dGluZyBhIGNvbmZpZyB2YXJpYWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBPY2tlciA8d2VvQHJlY2Nvd2FyZS5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1YmM1NDJhNTkzYWJjOWU5NzRmYmQzNDcwNGFmODVjMzdjMzY2YzYwCkF1dGhvcjogVmljdG9yIEdhbGxhcmRvIDx2Z2FsbGFyZG9AYW1jYy5jb20+CkRhdGU6CVRodSBBdWcgMjggMTY6MDM6MjggMjAwOCAtMDcwMAoKICAgIHBwYzR4eDogZml4IFVJQyBleHRlcm5hbF9pbnRlcnJ1cHQgaGFuZyBvbiBVSUMwCgogICAgVGhpcyBwYXRjaCBmaXhlcyBhIFVJQyBleHRlcm5hbF9pbnRlcnJ1cHQgaGFuZyBpZiBjcml0aWNhbCBvciBub24tY3JpdGljYWwKICAgIGludGVycnVwdCBpcyBzZXQgYXQgdGhlIHNhbWUgdGltZSBhcyBhIG5vcm1hbCBpbnRlcnJ1cHQgaXMgc2V0IG9uIFVJQzAuCgogICAgU2lnbmVkLW9mZi1ieTogVmljdG9yIEdhbGxhcmRvIDx2Z2FsbGFyZG9AYW1jYy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDQ3MzdkNWZmZDE2MjQ4Y2I4MGFiM2RkNGYzNzY1MDU3YTgwM2YxOApBdXRob3I6IFByb2R5dXQgIEhhemFyaWthIDxwaGF6YXJpa2FAYW1jYy5jb20+CkRhdGU6CVdlZCBBdWcgMjcgMTY6Mzk6MDAgMjAwOCAtMDcwMAoKICAgIHBwYzR4eDogT3B0aW1pemF0aW9ucy9DbGVhbnVwcyBmb3IgSUJNIEREUjIgTWVtb3J5IENvbnRyb2xsZXIKCiAgICBSZW1vdmVkIE1hZ2ljIG51bWJlcnMgZnJvbSBJbml0aWFsaXphdGlvbiBwcmVsb2FkIHJlZ2lzdGVycwogICAgVGVzdGVkIHdpdGggS2lsYXVlYSwgR2xhY2llciwgQ2FueW9ubGFuZHMgYW5kIEthdG1haSBib2FyZHMKICAgIEFib3V0IDUtNyUgaW1wcm92ZW1lbnQgc2VlbiBmb3IgTE1CZW5jaCBtZW10ZXN0cwoKICAgIFNpZ25lZC1vZmYtYnk6IFByb2R5dXQgSGF6YXJpa2EgPHBoYXphcmlrYUBhbWNjLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4YTQ5MDQyMmJlZDY4NWM5NDkxMjc0ZWM5OTdmNjIwNjFkODg2MjBiCkF1dGhvcjogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMjggMTM6MTc6MDcgMjAwOCAtMDYwMAoKICAgIEFEUzUxMjE6IEZpeCBOT1IgYW5kIENQTEQgQUxFIHRpbWluZyBmb3IgcmV2IDIgc2lsaWNvbgoKICAgIE1QQzUxMjEgcmV2IDIgc2lsaWNvbiBoYXMgYSBuZXcgcmVnaXN0ZXIgZm9yIGNvbnRyb2xsaW5nIGhvdyBsb25nCiAgICBDUyBpcyBhc3NlcnRlZCBhZnRlciBkZWFzc2VydGlvbiBvZiBBTEUgaW4gbXVsdGlwbGV4ZWQgbW9kZS4KCiAgICBUaGUgZGVmYXVsdCBpcyB0byBhc3NlcnQgQ1MgdG9nZXRoZXIgd2l0aCBBTEUuICBUaGUgYWx0ZXJuYXRpdmUKICAgIGlzIHRvIGFzc2VydCBDUyAoQUxFTisxKSpMUENfQ0xLIGNsb2NrcyBhZnRlciBkZWFzc2VydGlvbiBvZiBBTEUuCgogICAgVGhlIGRlZmF1bHQgaXMgd3JvbmcgZm9yIHRoZSBOT1IgZmxhc2ggYW5kIENQTEQgb24gdGhlIEFEUzUxMjEuCgogICAgVGhpcyBwYXRjaCB0dXJucyBvbiB0aGUgYWx0ZXJuYXRpdmUgZm9yIENTMCAoTk9SKSBhbmQgQ1MyIChDUExEKQogICAgaXQgZG9lcyBzbyBjb25kaXRpb25hbGx5IGJhc2VkIG9uIHNpbGljb24gcmV2IDIuMCBvciBncmVhdGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRoYSBKIE1hcnggPG1tYXJ4QHNpbGljb250a3guY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWQ5YTVlZmE0YjMzMmY0NDJiNTRhNzU1ZDQ5OTY5MTIzYzNhODc0MgpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTkgMDA6NTY6NDYgMjAwOCArMDYwMAoKICAgIEFkZCBJMkMgZnJlcXVlbmN5IGRpdmlkZXJzIGZvciBDb2xkRmlyZQoKICAgIFRoZSBleGlzdGluZyBJMkMgZnJlcWVuY3kgZGl2aWRlcnMgZm9yIEZEUiBkb2VzIG5vdCBhcHBseQogICAgdG8gQ29sZEZpcmUgcGxhdGZvcm1zOyB0aHVzLCBhIHNlcGVyYXRlIHRhYmxlIGlzIGFkZGVkCiAgICBiYXNlZCBvbiBNQ0Y1eHh4IFJlZmVyZW5jZSBNYW51YWwKCiAgICBTaWduZWQtb2ZmLWJ5OiBMdWlnaSAnQ29taW8nIE1hbnRlbGxpbmkgPGx1aWdpLm1hbnRlbGxpbmlAaWRmLWhpdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IFRhYmkgVGltdXIgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZWVjNTY3YTY3ZTAwZDFlZDhkOTQxZTkwOThiN2Q0MjFmNDA5MWFiZgpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTkgMDM6MDE6MTkgMjAwOCArMDYwMAoKICAgIENvbGRGaXJlOiBJMkMgZml4IGZvciBtdWx0aXBsZSBwbGF0Zm9ybXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ1M2NmNmE5Yzc0MjNjYmE2NjhiODY3OTc4NjQ4NjQ1ZjcxYzMwOTAKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE5IDAwOjM3OjEzIDIwMDggKzA2MDAKCiAgICBDb2xkRmlyZTogQWRkIENPTkZJR19NSUlfSU5JVCBmb3IgTTUyNzJDMwoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjc4Y2VkMzAyOGQ0MTMwYjI0YTMxODk0M2E3MGNmNTU4NGFiMTZmNApBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTkgMDA6MjY6MjUgMjAwOCArMDYwMAoKICAgIENvbGRGaXJlOiBNdWx0aXBsZSBmaXhlcyBmb3IgTUNGNTQ0NXggcGxhdGZvcm1zCgogICAgQWRkIEZFQyBwaW4gc2V0IGFuZCBtaWkgcmVzZXQgaW4gX19taWlfaW5pdCgpLiBDaGFuZ2UKICAgIGxlZ2FjeSBmbGFzaCB2ZW5kb3IgZnJvbSAyIHRvIEFNRCBMRUdBQ1kgKDB4RkZGMCksCiAgICBjaGFuZ2UgY2ZpX29mZnNldCB0byAwLCBhbmQgY2hhbmdlIENGR19GTEFTSF9DRkkgdG8KICAgIENPTkZJR19GTEFTSF9DRklfTEVHQUNZLiBDb3JyZWN0IE01NDQ1MUVWQiBhbmQKICAgIE01NDQ1NUVWQiBlbnYgc2V0dGluZ3MgaW4gY29uZmlndXJhdGlvbiBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDU0ZTcyNWIzYTk1MzdiN2YyNzNiYmQwY2JjYTE4MGYyM2E3YTZlOApBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBdWcgMTUgMTg6MjQ6MjUgMjAwOCArMDAwMAoKICAgIENvbGRGaXJlOiBDaGFuZ2UgdGhlIFNEUkFNIEJSRDJXVCB0aW1pbmcgZnJvbSAzIHRvIDcKCiAgICBUaGUgdXNlciBtYW51YWxzIHJlY29tbWVuZCA3LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1cnQgTWFoYW4gPGttYWhhbkBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzllMDc5OWNmNmU4OGQ5OGQ3N2IyMTZhNTUyMzRiZjY3NGI1OWE0ZQpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBdWcgMTUgMTY6NTA6MDcgMjAwOCArMDAwMAoKICAgIENvbGRGaXJlOiBSYWlzZSB1YXJ0IGJhdWRyYXRlIHRvIDExNTIwMCBicHMKCiAgICBNNTI0OUVWQiwgTTUyNzFFVkIsIE01MjcyQzMsIE01Mjc1RVZCIGFuZCBNNTI4MkVWQiBwbGF0Zm9ybXMKICAgIHVhcnQgYmF1ZHJhdGUgaW5jcmVhc2UgZnJvbSAxOTIwMCB0byAxMTUyMDAgYnBzCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhYjZiYTg0MjY4MjU1MmNjZjA3MWQwMDM0ZGEwYTIwNjMzZDFkMWFjCkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxMyAxMjowNzowMyAyMDA4ICswMDAwCgogICAgQ29sZEZpcmU6IEZpeCBib2FyZC5jIHdhcm5pbmcgbWVzc2FnZQoKICAgIEltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIG5hbmRfaW5pdCgpIHdhcm5pbmcgbWVzc2FnZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTc5OGIxYzQ2NTBlOWE4NzEzYzk1YjI1YzFlNjY5YTJiYzgwYTk3YgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBBdWcgMjcgMDE6MTA6MzQgMjAwOCAtMDUwMAoKICAgIEZTTCBERFI6IFJlbW92ZSBkdXBsaWNhdGUgc2V0dGluZyBvZiBjczBfYm5kcyByZWdpc3RlciBvbiA4Nnh4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMjU4YzM3YjE0NzM1M2JjNTIyZmZjMzNkZmJkN2QwZDljZDdjMzJkNwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglUaHUgQXVnIDIxIDIwOjQ0OjQ5IDIwMDggKzAyMDAKCiAgICBtcGM1Mnh4OiBhZGRlZCBzdXBwb3J0IGZvciB0aGUgTVBDNTIwMCBiYXNlZCBNVUMuTUM1MiBib2FyZCBmcm9tIE1BTi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA5Y2ZmNDQ0OGE5Y2I4ODJkZWZlNmM4YmRlNzNiNzdmYzBjNjM2Nzk5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEF1ZyAxOSAxNDo0NjozNiAyMDA4IC0wNTAwCgogICAgbXBjODV4eDogcmVtb3ZlIHJlZHVkYW50IGNvZGUgd2l0aCBsaWJfcHBjL2ludGVycnVwdHMuYwoKICAgIEZvciBzb21lIHJlYXNvbiB3ZSBkdXBsaWNhdGVkIHRoZSBtYWpvcml0eSBvZiBjb2RlIGluIGxpYl9wcGMvaW50ZXJydXB0cy5jCiAgICBub3Qgc2hvdyBob3cgdGhhdCBoYXBwZW5lZCwgYnV0IHRoZXJlIGlzIG5vIGdvb2QgcmVhc29uIGZvciBpdC4KCiAgICBVc2UgdGhlIGludGVycnVwdF9pbml0X2NwdSgpIGFuZCB0aW1lcl9pbnRlcnJ1cHRfY3B1KCkgc2luY2UgaXRzIHdoeQogICAgdGhleSBleGlzdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDk0OTBhN2YxYTk0ODQ2MTdiYWQ3NWM2MDgwN2NlMDJjOGEzYTZkNTYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgSnVsIDI1IDEzOjMxOjA1IDIwMDggLTA1MDAKCiAgICBtcGM4NXh4OiBBZGQgc3VwcG9ydCBmb3IgdGhlIE1QQzg1MzZEUyByZWZlcmVuY2UgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgU2lnbmVkLW9mZi1ieTogU3Jpa2FudGggU3Jpbml2YXNhbiA8c3Jpa2FudGguc3Jpbml2YXNhbkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogRGVqYW4gTWluaWMgPG1pbmljQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZWY1MGQ2YzA2ZWNlNzRmYjE3ZThkNzUxMGU2MmNhZDlkZjhiODEwZApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBBdWcgMTIgMTE6MTQ6MTkgMjAwOCAtMDUwMAoKICAgIG1wYzg1eHg6IEFkZCBzdXBwb3J0IGZvciB0aGUgTVBDODUzNgoKICAgIFRoZSBNUEM4NTM2IEFkZHMgU0RIQyBhbmQgU0FUQSBjb250cm9sbGVycyB0byB0aGUgUFEzIGZhbWlseS4gIFdlCiAgICBhbHNvIGhhdmUgU0VSREVTIGluaXQgY29kZSBmb3IgdGhlIDg1MzYuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFNyaWthbnRoIFNyaW5pdmFzYW4gPHNyaWthbnRoLnNyaW5pdmFzYW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IERlamFuIE1pbmljIDxtaW5pY0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTI5YmE2MTZiMzgxM2RkZTg2MWYyNWYzZDhhM2M0N2M1YzM2YWQ1ZgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBBdWcgMTIgMTE6MTM6MDggMjAwOCAtMDUwMAoKICAgIG1wYzg1eHg6IEFkZCBzdXBwb3J0IGZvciB0aGUgTVBDODU3MkRTIHJlZmVyZW5jZSBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNDU3Y2FlY2RiY2EzZGYyMWE5M2FiZmYxOWVhYjEyZGJjNjFiNzg5NwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBBdWcgMjcgMDE6MDU6MzUgMjAwOCAtMDUwMAoKICAgIEZTTCBERFI6IFJlbW92ZSBvbGQgU1BEIHN1cHBvcnQgZnJvbSBjcHUvbXBjODV4eAoKICAgIEFsbCA4NXh4IGJvYXJkcyBoYXZlIGJlZW4gY29udmVydGVkIHRvIHRoZSBuZXcgY29kZSBzbyB3ZSBjYW4KICAgIHJlbW92ZSB0aGUgb2xkIFNQRCBERFIgc2V0dXAgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDBlNzkyN2RiMTM4OTc2NDY5ZTcyNTdlMjljMTMzODA1MGE1MGZjZDkKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgQXVnIDI3IDAxOjA0OjA3IDIwMDggLTA1MDAKCiAgICBGU0wgRERSOiBDb252ZXJ0IFNUWFNTQSB0byBuZXcgRERSIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBjMzYwZDliOTcwZmJiOWMxMzc0NGMzNTU4Nzk2NzExNjViYmI5YjllCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEF1ZyAyNyAwMTowMzo0MiAyMDA4IC0wNTAwCgogICAgRlNMIEREUjogQ29udmVydCBTVFhHUDMgdG8gbmV3IEREUiBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgOGU1NTMxM2I3YWUxMjM1MmEzNDNmOWI5OTYyZTY2MmRiZDg5NzE4NwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBBdWcgMjYgMjM6NTI6NTggMjAwOCAtMDUwMAoKICAgIEZTTCBERFI6IENvbnZlcnQgU0JDODU2MCB0byBuZXcgRERSIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA5NjU4YmVjMmU4ZjU1ZDU2Y2ExYmU3MDA5MGNlNWEzNDhiZTQ5ODBmCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEF1ZyAyNiAyMzo1MjozMiAyMDA4IC0wNTAwCgogICAgRlNMIEREUjogQ29udmVydCBNUEM4NTQwRVZBTCB0byBuZXcgRERSIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA2YmZhOGY3MjNjZmQ4MmM1NWUzZWY1NjIwYWRlMzk2OTE2NDcwYTcwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEF1ZyAyNiAyMzo1MjowNyAyMDA4IC0wNTAwCgogICAgRlNMIEREUjogQ29udmVydCBQTTg1NiB0byBuZXcgRERSIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBkNTNiZDNlMTdiZDRmNDYwMjU3YzE5MjU1NTY5ZWE2ZGNmYWFlODE3CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEF1ZyAyNiAyMzo1MTo0OSAyMDA4IC0wNTAwCgogICAgRlNMIEREUjogQ29udmVydCBQTTg1NCB0byBuZXcgRERSIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAzM2I5MDc5YmEyMDkyNmYxNDIzOGZmZjg2M2I2OGE5OGU5Mzg5NDhlCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEF1ZyAyNiAyMzoxNToyOCAyMDA4IC0wNTAwCgogICAgRlNMIEREUjogQ29udmVydCBzYmM4NTQ4IHRvIG5ldyBERFIgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGE5NDdlNGM3ZWIxNWNlYTFkOWZiNjMzOTU1YzUxNmFhYjVhZDM1ZGQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgQXVnIDI2IDIzOjE0OjE0IDIwMDggLTA1MDAKCiAgICBGU0wgRERSOiBDb252ZXJ0IGF0dW04NTQ4IHRvIG5ldyBERFIgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGJlMGJkODIzNGI5Nzc3ZWNkNjNjNGM2ODZmNzJhZjA3MGQ4ODY1MTcKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgQXVnIDI2IDIyOjU2OjU2IDIwMDggLTA1MDAKCiAgICBGU0wgRERSOiBDb252ZXJ0IHNvY3JhdGVzIHRvIG5ldyBERFIgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDExNjdhMmZkNTYxMzhiNzE2ZTAxMzcwYzQyNjdmM2I3MGJmOWZmYTAKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgQXVnIDI2IDA4OjAyOjMwIDIwMDggLTA1MDAKCiAgICBGU0wgRERSOiBDb252ZXJ0IE1QQzg1NDREUyB0byBuZXcgRERSIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBlNmY1YjM1YjQxZGRiZDYzN2JiOWNhNGFkOTg1YjFlMGIwN2RhZTBlCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1hciAxOCAxMzo1MTowNSAyMDA4IC0wNTAwCgogICAgRlNMIEREUjogQ29udmVydCBNUEM4NTY4TURTIHRvIG5ldyBERFIgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBlMzFkMmMxZTJiYzk1NGRjMzJlMzNiYjIwNzYxMzlmODViOTVmOGU2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1hciAxOCAxMzo1MTowNiAyMDA4IC0wNTAwCgogICAgRlNMIEREUjogQ29udmVydCBNUEM4NTQ4Q0RTIHRvIG5ldyBERFIgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBhYTExZDg1Y2YzMThiOTYxZTAyOWZlNTBkNjhjYTQ3ZDAwNGJjZTkzCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE1hciAxNyAxNTo0ODoxOCAyMDA4IC0wNTAwCgogICAgRlNMIEREUjogQ29udmVydCBNUEM4NTQxQ0RTIHRvIG5ldyBERFIgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAyYjQwZWRiMTBkODFkYTdiYmE3MjRlZGJjY2Q3ZjUzNzc3MTEyNTc5CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1hciAxOCAxMToxMjo0MiAyMDA4IC0wNTAwCgogICAgRlNMIEREUjogQ29udmVydCBNUEM4NTU1QURTIHRvIG5ldyBERFIgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA4YjYyNTExNGU4YmM1YTZiNDM2MTgxMTY3YTZlN2ZjZDMzMDNkZDJjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1hciAxOCAxMToxMjo0NCAyMDA4IC0wNTAwCgogICAgRlNMIEREUjogQ29udmVydCBNUEM4NTYwQURTIHRvIG5ldyBERFIgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA5NjE3YzhkNDlhMjE3MDNlYWYxM2E0MDMzYWIxYTU2ZWVjYzAzM2NjCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIEp1biA2IDEzOjEyOjE4IDIwMDggLTA1MDAKCiAgICBGU0wgRERSOiBDb252ZXJ0IE1QQzg1NDBBRFMgdG8gbmV3IEREUiBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMmE2YzJkN2FiMmE2NjY2MGY0MGE2Y2QzZGUyZWIyOWVlMjlkOTY5MwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBBdWcgMjYgMjE6MzQ6NTUgMjAwOCAtMDUwMAoKICAgIEZTTCBERFI6IEFkZCA4NXh4IHNwZWNpZmljIHJlZ2lzdGVyIHNldHRpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDZmYjFiNzM0Njg0OWNjZDBjMjAzMDYxNDNlMzM0ZjViNzYxNDMwNzAKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gSnVuIDkgMTE6MDc6NDYgMjAwOCAtMDUwMAoKICAgIEZTTCBERFI6IEFkZCBlNTAwIFRMQiBoZWxwZXIgZm9yIEREUiBjb2RlCgogICAgUHJvdmlkZSBhIGhlbHBlciBmdW5jdGlvbiB0aGF0IGJvYXJkIGNvZGUgY2FuIGNhbGwgdG8gbWFwIFRMQnMgd2hlbgogICAgc2V0dGluZyB1cCBERFIuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBkMjZiNzM5YWZlNWE2NzYwYmQzNDU3NDMxODg3NTljZDlkMGYzYjQ3CkF1dGhvcjogQW5kcmV3IER5ZXIgPGFkeWVyQHJpZ2h0aGFuZHRlY2guY29tPgpEYXRlOglUdWUgQXVnIDI2IDE3OjAzOjM4IDIwMDggLTA1MDAKCiAgICBkbTkwMDAgcmVtb3ZlIGRlYWQgZXh0ZXJuYWwgcGh5IHN1cHBvcnQsIGdwaW8gZml4CgogICAgZG05MDAwIGhhcyBjb2RlIHRvIGRldGVjdCBhbmQgaW5pdGlhbGl6ZSBleHRlcm5hbCBwaHkgcGFydHMsIGJ1dCBsYXRlcgogICAgb24gaW4gdGhlIGNvZGUgdGhlIHBhcnQgaXMgZm9yY2VkIHRvIHVzZSB0aGUgaW50ZXJuYWwgcGh5CiAgICB1bmNvbmRpdGlvbmFsbHkuICBSZW1vdmUgdGhlIHVudXNlZC91bnRlc3RlZCBjb2RlLgoKICAgIGNoYW5nZSB0aGUgR1BJTyBpbml0aWFsaXphdGlvbiBzbyB0aGF0IG9ubHkgdGhlIEdQSU8gdXNlZCBhcyBhbgogICAgaW50ZXJuYWwgcGh5IHJlc2V0IChoYXJkd2lyZWQgaW4gdGhlIGNoaXApIGlzIHNldCBhcyBhbiBvdXRwdXQuICBUaGUKICAgIHJlbWFpbmluZyBHUElPIG5lZWQgdG8gYmUgaGFuZGxlZCBieSBib2FyZCBzcGVjaWZpYyBjb2RlIHRvIHByZXZlbnQKICAgIHBvc3NpYmxlIGRyaXZlIGNvbmZsaWN0cy4gIFNldCBhcyBpbnB1dHMgZm9yIHNhZmV0eS4KCiAgICByZXBsYWNlIGEgZmV3IG1hZ2ljIG51bWJlcnMgd2l0aCBkZWZpbmVzCgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmV3IER5ZXIgPGFkeWVyQHJpZ2h0aGFuZHRlY2guY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBhMTU3M2RiMGMwN2M4YmE5OWU5YzM3M2JiMDdlY2Q2ZjU5ZGE2NzJjCkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJVHVlIEF1ZyAyNiAxMToxNzo0OCAyMDA4IC0wNTAwCgogICAgU3RhbmRhcmRpemUgYm9vdHAsIHRmdHBib290LCByYXJwYm9vdCwgZGhjcCwgYW5kIG5mcyBjb21tYW5kIGRlc2NyaXB0aW9ucwoKICAgIGNtZF9uZXQuYyBjb21tYW5kIGRlc2NyaXB0aW9ucyB3ZXJlIHVwZGF0ZWQgdG8gZGVzY3JpYmUgdGhlIG9wdGlvbmFsCiAgICBob3N0SVBhZGRyIGFyZ3VtZW50LiAgVGhlIGRoY3AgY29tbWFuZCBoZWxwIG1lc3NhZ2Ugd2FzIGFsc28gdXBkYXRlZAogICAgdG8gbW9yZSBjbG9zZWx5IHJlZmxlY3QgdGhlIG90aGVyIGNvbW1hbmRzIGluIGNtZF9uZXQuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDUxZGZlMTM4MmViYWY2OTE0ODViYWRmYTBlYTVlNzViMDcxMDUzMWIKQXV0aG9yOiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KRGF0ZToJV2VkIEF1ZyAyMCAxMTozMDoyOCAyMDA4ICswMjAwCgogICAgRml4IGJvZ3VzIGVycm9yIG1lc3NhZ2UgaW4gdGhlIERIQ1AgaGFuZGxlcgoKICAgIFRoZSBESENQIGhhbmRsZXIgaGFzIDEgc3RhdGUgdGhhdCBpcyBub3QgbGlzdGVkIGluIHRoaXMgY2FzZSwgY2F1c2luZyBhCiAgICBmYWlsdXJlIG1lc3NhZ2Ugd2hlbiB0aGVyZSBpcyBhY3R1YWxseSBubyBmYWlsdXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA2MTM2NTUwMWEwZTJjYWU5YzFkZjI4MThiN2I1YjNmNTJjNDUwZDE4CkF1dGhvcjogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CkRhdGU6CVdlZCBBdWcgMjAgMTE6MzA6MjcgMjAwOCArMDIwMAoKICAgIEZpeCBjb21waWxlIGVycm9yIHdoZW4gQ09ORklHX0JPT1RQX1JBTkRPTV9ERUxBWSBpcyBzZXQuCgogICAgVGhlIG9wdGlvbiBDT05GSUdfQk9PVFBfUkFORE9NX0RFTEFZIGRvZXMgbm90IGNvbXBpbGUsIGJlY2F1c2Ugb2YgYQogICAgbWlzc2luZyBleHRlcm4gaW5zaWRlIHRoZSBuZXQvYm9vdHAuaCBoZWFkZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgMTgwM2Y3ZjkxZmYzNWNhNDAyMjU5MDY1ZGY3NTU3MTA3ZGNmMjhhMgpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTkgMjE6MjY6MzIgMjAwOCArMDAwMAoKICAgIENvbGRGaXJlOiBBZGQgRkVDIEJ1ZmZlciBkZXNjcmlwdG9ycyBpbiBTUkFNCgogICAgQWRkIEZFQyBCdWZmZXIgZGVzY3JpcHRvcnMgYW5kIGRhdGEgYnVmZmVyIGluIFNSQU0gZm9yCiAgICBmYXN0ZXIgZXhlY3V0aW9uIGFuZCBhY2Nlc3MuCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNDI5YmUyN2NlMTk1MjEwZDRiOWRlY2Y5ZTg2N2I5Y2E2MTU1YTg3ZApBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMjEgMjM6NTU6MTEgMjAwOCArMDAwMAoKICAgIEZpeCBDb2xkRmlyZSBGRUMgd2FybmluZyBtZXNzYWdlcwoKICAgIFR5cGVzIG1pc21hdGNoIGFuZCBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBpY2FjaGVfaW52YWxpZCgpCiAgICB3YXJuaW5nIG1lc3NhZ2VzCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNmEwMDIxNzEwOThlOTY4YmQ1YjM2MjM0N2QyODMxMjI0ZmFiNjA0OApBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CVNhdCBKdWwgMTIgMDA6MTc6NTAgMjAwOCAtMDcwMAoKICAgIE1vdmVkIGluaXRpYWxpemF0aW9uIG9mIFNLR0UgRXRoZXJuZXQgZHJpdmVyIHRvIGJvYXJkIGNvZGUuCgogICAgVGhlIG9ubHkgYm9hcmQgdXNpbmcgdGhpcyBkcml2ZXIgaXMgdGhlIFNMODI0NSBib2FyZC4KICAgIFJlbW92ZWQgaW5pdGlhbGl6YXRpb24gZm9yIHRoZSBkcml2ZXIgZnJvbSBuZXQvZXRoLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDgzNzlmNDJiYzc0NWViOWU0Y2E1NTFhMzBmZDJkMGE2M2Y3NDBkNzUKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglTYXQgSnVsIDEyIDAwOjA4OjQ1IDIwMDggLTA3MDAKCiAgICBNb3ZlZCBjb25kaXRpb25hbCBjb21waWxhdGlvbiB0byBNYWtlZmlsZSBmb3IgU0s5OCBFdGhlcm5ldCBkcml2ZXIKCiAgICBCcnV0ZS1mb3JjZSByZW1vdmFsIG9mICNpZmRlZnMuICBEaWRuJ3QgdG91Y2ggdGhlIGNvZGUuCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDY1ZDNkOTljMjhkYzM2M2QxNWVhZWU3ODIyNWZmNjQzZGY0OTliOTcKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglGcmkgSnVsIDExIDIzOjQyOjE5IDIwMDggLTA3MDAKCiAgICBNb3ZlZCBpbml0aWFsaXphdGlvbiBvZiBVTEk1MjZYIEV0aGVybmV0IGRyaXZlciB0byBib2FyZCBjb2RlLgoKICAgIFRoZSBvbmx5IGJvYXJkIHVzaW5nIHRoaXMgZHJpdmVyIGlzIHRoZSBGcmVlc2NhbGUgTVBDODYxMEhQQ0QgYm9hcmQuCiAgICBSZW1vdmVkIGluaXRpYWxpemF0aW9uIGZvciB0aGUgZHJpdmVyIGZyb20gbmV0L2V0aC5jCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA5MTQ5NDczMTNhNzEwZjVkY2YwNmJlYWY3ZjJhYTI0ZjFlYmNjZTRmCkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJRnJpIEp1bCAxMSAyMzoxNToyOCAyMDA4IC0wNzAwCgogICAgTW92ZWQgaW5pdGlhbGl6YXRpb24gb2YgQmxhY2tmaW4gRU1BQyBFdGhlcm5ldCBjb250cm9sbGVyIHRvIGJvYXJkX2V0aF9pbml0KCkKCiAgICBBZGRlZCBib2FyZF9ldGhfaW5pdCgpIGZ1bmN0aW9uIHRvIGJmNTM3LXN0YW1wIGJvYXJkLgogICAgUmVtb3ZlZCBpbml0aWFsaXphdGlvbiBmb3IgdGhlIEJsYWNraW4gRU1BQyBkcml2ZXIgZnJvbSBuZXQvZXRoLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGZjMzYzY2UzNTQwOGYzNDhjYWNjZWQ2ODUwNWYzNzQ3YTUzZTNkN2MKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglXZWQgSnVsIDkgMDE6MDQ6MTkgMjAwOCAtMDcwMAoKICAgIE1vdmVkIGluaXRpYWxpemF0aW9uIG9mIEdSRVRIIEV0aGVybmV0IGRyaXZlciB0byBDUFUgZGlyZWN0b3J5CgogICAgQWRkZWQgYSBjcHVfZXRoX2luaXQoKSBmdW5jdGlvbiB0byBsZW9uMi9sZW9uMyBDUFUgZGlyZWN0b3JpZXMgYW5kCiAgICByZW1vdmVkIGNvZGUgZnJvbSBuZXQvZXRoLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDg2ODgyYjgwNzcxMzA5YmNlYjExYzZhY2NmZDdmNmY5MGFkZThiZmMKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglUdWUgQXVnIDI2IDIyOjE2OjI1IDIwMDggLTA3MDAKCiAgICBNb3ZlZCBpbml0aWFsaXphdGlvbiBvZiBNQ0ZGRUMgRXRoZXJuZXQgZHJpdmVyIHRvIENQVSBkaXJlY3RvcnkKCiAgICBBZGRlZCBhIGNwdV9ldGhfaW5pdCgpIGZ1bmN0aW9uIHRvIGNvbGRmaXJlIENQVSBkaXJlY3RvcmllcyBhbmQKICAgIHJlbW92ZWQgY29kZSBmcm9tIG5ldC9ldGguYwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgYjMxZGE4OGI5YzE2MGQ4MGQ0MmE1OWNiYmIzMWUyNGYyNzE4NGQ1YwpBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CVR1ZSBBdWcgMjYgMjI6MTI6MzYgMjAwOCAtMDcwMAoKICAgIE1vdmVkIGluaXRpYWxpemF0aW9uIG9mIEZTTF9NQ0RNQUZFQyBFdGhlcm5ldCBkcml2ZXIgdG8gQ1BVIGRpcmVjdG9yeQoKICAgIEFkZGVkIGEgY3B1X2V0aF9pbml0KCkgZnVuY3Rpb24gdG8gY3B1L21jZjU0N3hfOHggZGlyZWN0b3J5IGFuZAogICAgcmVtb3ZlZCBjb2RlIGZyb20gbmV0L2V0aC5jCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBiNTcxMGQ5OTc0ZjZmMGYzZGRiNGU2N2Q2Y2NjYzI2MmFiMzcwNDllCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEF1ZyAyNiAxNTowMTozOCAyMDA4IC0wNTAwCgogICAgRlNMIEREUjogUmVtb3ZlIG9sZCBTUEQgc3VwcG9ydCBmcm9tIGNwdS9tcGM4Nnh4CgogICAgQWxsIDg2eHggYm9hcmRzIGhhdmUgYmVlbiBjb252ZXJ0ZWQgdG8gdGhlIG5ldyBjb2RlIHNvIHdlIGNhbgogICAgcmVtb3ZlIHRoZSBvbGQgU1BEIEREUiBzZXR1cCBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgOWJkNGU1OTExYjc1MDgzNzUxNTQ2NmJjNzQ0OTA4NzY5OGI4OGUwZQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBBdWcgMjYgMTU6MDE6MzcgMjAwOCAtMDUwMAoKICAgIEZTTCBERFI6IENvbnZlcnQgU0JDODY0MUQgdG8gbmV3IEREUiBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMzlhYTFhNzM0ODNlMWFjMmJkNTZkNTUyM2FiZmMzOTcwZWU4MmM3NwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjYgMTU6MDE6MzYgMjAwOCAtMDUwMAoKICAgIEZTTCBERFI6IENvbnZlcnQgTVBDODYxMEhQQ0QgdG8gbmV3IEREUiBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDZhOGU1NjkyOTMzZThlNmQ2ZTViYTdlNTk0ZjQ5ZGQ2ZDRjM2EyNjMKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgQXVnIDI2IDE1OjAxOjM1IDIwMDggLTA1MDAKCiAgICBGU0wgRERSOiBDb252ZXJ0IE1QQzg2NDFIUENOIHRvIG5ldyBERFIgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA0NmZmNGYxMTAwZWE2NGEwMWQyMWNjMDA4Y2U4NWFjMTVlYjE4MjFmCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEF1ZyAyNiAxNTowMTozNCAyMDA4IC0wNTAwCgogICAgRlNMIEREUjogQWRkIDg2eHggc3BlY2lmaWMgcmVnaXN0ZXIgc2V0dGluZwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMjMzZmRkNTAyYTZjMjI3ZjQ3NjIxMmIzMDk3NjUzYWQ0OGQ3ZTI1NApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBBdWcgMjYgMTU6MDE6MzIgMjAwOCAtMDUwMAoKICAgIEZTTCBERFI6IEFkZCBERFIyIERJTU0gcGFyYW10ZXIgc3VwcG9ydAoKICAgIENvbXB1dGUgRElNTSBwYXJhbWV0ZXJzIGJhc2VkIHVwb24gdGhlIFNQRCBpbmZvcm1hdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAwNWMwNWEyMzYzYTZhYzExZTBlNDA1OTI2MDM0NTQ2ZmZhZDcxZmFkCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEF1ZyAyNiAxNTowMTozMCAyMDA4IC0wNTAwCgogICAgRlNMIEREUjogQWRkIEREUjEgRElNTSBwYXJhbXRlciBzdXBwb3J0CgogICAgQ29tcHV0ZSBESU1NIHBhcmFtZXRlcnMgYmFzZWQgdXBvbiB0aGUgU1BEIGluZm9ybWF0aW9uIGluIHNwZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA1OGU1ZTlhZmYxNDdlOGM3ZTJiYzE0MDZiZjkzODRmNjVmMDIwZmZhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEF1ZyAyNiAxNTowMToyOSAyMDA4IC0wNTAwCgogICAgRlNMIEREUjogUmV3cml0ZSB0aGUgRlNMIG1wYzh4eHggRERSIGNvbnRyb2xsZXIgc2V0dXAgY29kZS4KCiAgICBUaGUgbWFpbiBwdXJwb3NlIG9mIHRoaXMgcmV3cml0ZSBpdCB0byBiZSBhYmxlIHRvIHNoYXJlIHRoZSBzYW1lCiAgICBpbml0aWFsaXphdGlvbiBjb2RlIG9uIGFsbCBGU0wgUG93ZXJQQyBwcm9kdWN0cyB0aGF0IGhhdmUgRERSCiAgICBjb250cm9sbGVycy4gICg4M3h4LCA4NXh4LCA4Nnh4KS4KCiAgICBUaGUgY29kZSBpcyBicm9rZW4gdXAgaW50byB0aGUgZm9sbG93aW5nIHN0ZXBzOgoJR0VUX1NQRAoJQ09NUFVURV9ESU1NX1BBUk1TCglDT01QVVRFX0NPTU1PTl9QQVJNUwoJR0FUSEVSX09QVFMKCUFTU0lHTl9BRERSRVNTRVMKCUNPTVBVVEVfUkVHUwoJUFJPR1JBTV9SRUdTCgogICAgVGhpcyBhbGxvd3MgdXMgdG8gc2hhcmUgbW9yZSBjb2RlIGFuIGVhc2lseSBhbGxvdyBmb3IgYm9hcmQgc3BlY2lmaWMgY29kZQogICAgb3ZlcnJpZGVzLgoKICAgIEFkZGl0aW9uYWxseSB0aGlzIGNvZGUgYmFzZSBhZGRzIHN1cHBvcnQgZm9yID40RyBvZiBERFIgYW5kIHByb3ZpZGVzIGEKICAgIGZvdW5kYXRpb24gZm9yIHN1cHBvcnRpbmcgaW50ZXJsZWF2aW5nIG9uIHByb2Nlc3NvcnMgd2l0aCBtb3JlIHRoYW4gb25lCiAgICBjb250cm9sbGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGY3ODRlMzJiNGJjZTAwMTM5ODM1MDZiMTFhZjRiODViOGNhM2QzNmUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgQXVnIDI2IDE1OjAxOjI4IDIwMDggLTA1MDAKCiAgICBGU0wgRERSOiBQcm92aWRlIGEgZ2VuZXJpYyBzZXRfZGRyX2xhd3MoKQoKICAgIFByb3ZpZGUgYSBoZWxwZXIgZnVuY3Rpb24gdGhhdCB3aWxsIHNldHVwIHRoZSBsYXN0IGF2YWlsYWJsZQogICAgTEFXcyAodXB0byAyKSBmb3IgRERSLiAgVXNlZnVsIGZvciBTUEQvZHlhbm1pYyBERFIgc2V0dGluZyBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMGYyY2JlM2Y1ZWRkYmRmMzg0ODI2NWYzNWU0ZjcxNDQzNDkyOWNmZgpBdXRob3I6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyNiAxNTowMToyNyAyMDA4IC0wNTAwCgogICAgQWRkIHByb3BlciBTUEQgZGVmaW5pdGlvbnMgZm9yIEREUjEvMi8zCgogICAgQWxzbyBhZGRzIGhlbHBlciBmdW5jdGlvbnMgZm9yIEREUjEvMiB0byB2ZXJpZnkgdGhlIGNoZWNrc3VtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMjg1ZGI3NDcxNmM3MjRhZThhMGZmMTc3ODc4ZmQwOWE3NDQyOGM3YgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBdWcgMjcgMDE6MDI6NDggMjAwOCArMDIwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGFkZjIyYjY2ZDhiZjA1YmQ0NmUwOThjZjcxZTZkY2EyOWIzMGFhN2IKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxOSAxMDowODo0OSAyMDA4ICswMjAwCgogICAgQWRkIHN1cHBvcnQgZm9yIG11YXMzMDAxIGJvYXJkIChNUEM4MjcwKQoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDMyMjA5OGJmZjMyNDEwZDJhMDAwMzE2NDliNDdjNGVjOTBhNjZkOWEKQXV0aG9yOiBHdXJ1cmFqYSBIZWJiYXIgSyBSIDxndXJ1cmFqYWtyQHNhbnlvLmNvLmluPgpEYXRlOglUdWUgQXVnIDE5IDA4OjMxOjE4IDIwMDggKzA1MzAKCiAgICBjb21tb24vY21kX2xvYWQuYyBjbGVhbnVwIC0gcmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMKCiAgICAtIFJlbW92ZSB1bnVzZWQgZ2xvYmFsIHZhcmlhYmxlIG9zX2RhdGFfY291bnQuCiAgICAtIFJlbW92ZSB1bnVzZWQgdmFyaWFibGUgei4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdXJ1cmFqYSBIZWJiYXIgPGd1cnVyYWpha3JAc2FueW8uY28uaW4+Cgpjb21taXQgMzA2NjIwYjc2MmE0ZjlmYTY2Nzg1NjhhZDJlODc3MmRlYzE0NTIwOApBdXRob3I6IEFuZHJlIFNjaHdhcnogPGFuZHJlLnNjaHdhcnpAbWF0cml4LXZpc2lvbi5kZT4KRGF0ZToJTW9uIEF1ZyAxOCAxMzozNToyNyAyMDA4ICswMjAwCgogICAgcmVtb3ZlIE1WUzEgYm9hcmQKCiAgICBNVlMxIGJvYXJkIGhhcyByZWFjaGVkIGVuZC1vZi1saWZlIGFuZCBjYW4gYmUgcmVtb3ZlZCBjb21wbGV0ZWx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJlIFNjaHdhcnogPGFuZHJlLnNjaHdhcnpAbWF0cml4LXZpc2lvbi5kZT4KCmNvbW1pdCA0MGQ3ZTk5ZDM3NGJhMGEwYTI5Y2QxYThiYTQwZDNiN2MyYzE3NWM3CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIEF1ZyAxNSAwODoyNDo0NSAyMDA4IC0wNTAwCgogICAgYm9vdG06IHJlZmFjdG9yIGRvX3Jlc2V0IGFuZCBvcyBib290IGZ1bmN0aW9uIGFyZ3MKCiAgICBUaGVyZSBpcyBubyBuZWVkIGZvciBlYWNoIE9TIHNwZWNpZmljIGZ1bmN0aW9uIHRvIGNhbGwgZG9fcmVzZXQoKSB3ZQogICAgY2FuIGp1c3QgZG8gaXQgb25jZSBpbiBib290bS4gVGhpcyBtZWFucyBpdHMgZmVhc2libGUgb24gYW4gZXJyb3IgZm9yCiAgICB0aGUgT1MgYm9vdCBmdW5jdGlvbiB0byByZXR1cm4uCgogICAgQWxzbywgcmVtb3ZlIHBhc3NpbmcgaW4gY21kX3RibF90IGFzIGl0cyBub3QgbmVlZGVkIGJ5IHRoZSBPUyBib290CiAgICBmdW5jdGlvbnMuCWZsYWcgaXNuJ3QgY3VycmVudGx5IHVzZWQgYnV0IG1pZ2h0IGJlIGluIHRoZSBmdXR1cmUgc28KICAgIHdlIGxlZnQgaXQgYWxvbmUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA0MGFmYWMyMmE5YzYwMmU1NWM1MDFjODAwZjFjMDY0MzI0NzExYjU2CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIEF1ZyAxNSAwODoyNDo0NCAyMDA4IC0wNTAwCgogICAgZmR0OiBBZGRlZCByZXNpemUgY29tbWFuZAoKICAgIFJlc2l6ZSB0aGUgZmR0IHRvIHNpemUgKyBwYWRkaW5nIHRvIDRrIGJvdW5kYXJ5CgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAyYTFhMmNiNmUyYjg3ZWU1NTBlNmYyN2I2NDdkMjMzMzFkZmQ1ZTFiCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIEF1ZyAxNSAwODoyNDo0MyAyMDA4IC0wNTAwCgogICAgZmR0OiByZWZhY3RvciBpbml0cmQgcmVsYXRlZCBjb2RlCgogICAgQ3JlYXRlZCBhIG5ldyBmZHRfaW5pdHJkKCkgdG8gZGVhbCB3aXRoIHNldHRpbmcgdGhlIGluaXRyZCBwcm9wZXJ0aWVzCiAgICBpbiB0aGUgZGV2aWNlIHRyZWUgYW5kIGZpeGluZyB1cCB0aGUgbWVtIHJlc2VydmUuICBXZSBjYW4gdXNlIHRoaXMKICAgIGJvdGggaW4gdGhlIGNob29zZW4gbm9kZSBoYW5kbGluZyBhbmQgbGV0cyB1cyByZW1vdmUgc29tZSBkdXBsaWNhdGVkCiAgICBjb2RlIHdoZW4gd2UgZml4dXAgdGhlIGluaXRyZCBpbmZvIGluIGJvb3RtIG9uIFBQQy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDMwODJkMjM0OGM4ZTEzMzQyZjVmZGQxMGU5YjNmNzQwODA2MmRiZjkKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgQXVnIDE1IDA4OjI0OjQyIDIwMDggLTA1MDAKCiAgICBmZHQ6IHJlZmFjdG9yIGZkdCByZXNpemUgY29kZQoKICAgIE1vdmUgdGhlIGZkdCByZXNpemluZyBjb2RlIG91dCBvZiBwcGMgc3BlY2lmaWMgYm9vdCBjb2RlIGFuZCBpbnRvCiAgICBjb21tb24gZmR0IHN1cHBvcnQgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDM5NmY2MzViOGZmM2NjYmMzOGQ3NWQ1ZWRhOTg0NDRjNjQ2NjgxMGEKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgQXVnIDE1IDA4OjI0OjQxIDIwMDggLTA1MDAKCiAgICBib290bTogcmVmYWN0b3IgaW1hZ2UgZGV0ZWN0aW9uIGFuZCBvcyBsb2FkIHN0ZXBzCgogICAgQ3JlYXRlZCBhIGJvb3RtX3N0YXJ0KCkgdGhhdCBoYW5kbGVzIHRoZSBwYXJzaW5nIGFuZCBkZXRlY3Rpb24gb2YgYWxsCiAgICB0aGUgaW1hZ2VzIHRoYXQgd2lsbCBiZSB1c2VkIGJ5IHRoZSBib290bSBjb21tYW5kIChPUywgcmFtZGlzaywgZmR0KS4KICAgIEFzIHBhcnQgb2YgdGhpcyB3ZSBub3cgdHJhY3QgYWxsIHRoZSByZWxldmFudCBpbWFnZSBvZmZzZXRzIGluIHRoZQogICAgYm9vdG1faGVhZGVyc190IHN0cnVjdC4gVGhpcyB3aWxsIGFsbG93IHVzIHRvIGhhdmUgYWxsIHRoZSBuZWVkZWQKICAgIHN0YXRlIGZvciBmdXR1cmUgc3ViLWNvbW1hbmRzIGFuZCBsZXRzIHVzIHJlZHVjZSBhIGJpdCBvZiBhcmNoCiAgICBzcGVjaWZpYyBjb2RlIG9uIFNQQVJDLgoKICAgIENyZWF0ZWQgYSBib290bV9sb2FkX29zKCkgdGhhdCBkZWFscyB3aXRoIGRlY29tcHJlc3Npb24gYW5kIGxvYWRpbmcKICAgIHRoZSBPUyBpbWFnZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGU5MDZjZmFlMDhlOGNjMjQ0N2Y1OWIxYmM0YzIyYWI5YzNjMjg2ZDIKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgQXVnIDE1IDA4OjI0OjQwIDIwMDggLTA1MDAKCiAgICBib290bTogbW92ZSBsbWIgaW50byB0aGUgYm9vdG1faGVhZGVyc190IHN0cnVjdHVyZQoKICAgIFRvIGFsbG93IGZvciBwZXJzaXN0ZW50IHN0YXRlIGJldHdlZW4gZnV0dXJlIGJvb3RtIHN1YmNvbW1hbmRzIHdlCiAgICBuZWVkIHRoZSBsbWIgdG8gZXhpc3QgaW4gYSBnbG9iYWwgc3RhdGUuCiAgICBNb3ZpbmcgaXQgaW50byB0aGUgYm9vdG1faGVhZGVyc190IGFsbG93cyB1cyB0byBkbyB0aGF0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNTRmOWM4NjY5MTMwOWIyZjkxOWY1NjdmOTI1NWI4YmNhZDJjNzY1MQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CUZyaSBBdWcgMTUgMDg6MjQ6MzkgMjAwOCAtMDUwMAoKICAgIGJvb3RtOiBTZXQgd29ya2luZyBmZHQgYWRkcmVzcyBhcyBwYXJ0IG9mIHRoZSBib290bSBmbG93CgogICAgU2V0IHRoZSBmZHQgd29ya2luZyBhZGRyZXNzIHNvICJmZHQgRk9PIiBjb21tYW5kcyBjYW4gYmUgdXNlZCBhcyBwYXJ0CiAgICBvZiB0aGUgYm9vdG0gZmxvdy4JQWxzbyBzZXQgYW4gdGhlIGVudmlyb25tZW50IHZhcmlhYmxlICJmZHRhZGRyIgogICAgd2l0aCB0aGUgdmFsdWUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAwNmEwOTkxOGYzOTAzNDUwMzEzZTIwNDdhOWNjMjU4YmY1ODcyZjQ2CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIEF1ZyAxNSAwODoyNDozOCAyMDA4IC0wNTAwCgogICAgYm9vdG06IHJlZmFjdG9yIGZkdCBsb2NhdGluZyBhbmQgcmVsb2NhdGlvbiBjb2RlCgogICAgTW92ZSB0aGUgY29kZSB0aGF0IGhhbmRsZXMgZmluZGluZyBhIGRldmljZSB0cmVlIGJsb2IgYW5kIHJlbG9jYXRpbmcKICAgIGl0IChpZiBuZWVkZWQpIGludG8gY29tbW9uIGNvZGUgc28gYWxsIGFyY2gncyBoYXZlIGFjY2VzcyB0byBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGM0Zjk0MTljNmI1NDk1OGUwZWRkYmNiYzllNWE0YTdiN2VjOTk4NjUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgQXVnIDE1IDA4OjI0OjM3IDIwMDggLTA1MDAKCiAgICBib290bTogcmVmYWN0b3IgcmFtZGlzayBsb2NhdGluZyBjb2RlCgogICAgTW92ZSBkZXRlcm1pbmcgaWYgd2UgaGF2ZSBhIHJhbWRpc2sgYW5kIHdoZXJlIGl0cyBsb2NhdGVkIGludG8gdGhlCiAgICBjb21tb24gY29kZS4gS2VlcCB0cmFjayBvZiB0aGUgcmFtZGlzayBzdGFydCBhbmQgZW5kIGluIHRoZQogICAgYm9vdG1faGVhZGVyc190IGltYWdlIHN0cnVjdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGMxNjBhOTU0NDc0M2U4MGU4ODg5ZWRiMjI3NTUzOGU3NzY0Y2UzMzQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgQXVnIDE1IDA4OjI0OjM2IDIwMDggLTA1MDAKCiAgICBib290bTogcmVmYWN0b3IgZW50cnkgcG9pbnQgY29kZQoKICAgIE1vdmUgZW50cnkgcG9pbnQgY29kZSBvdXQgb2YgZWFjaCBhcmNoIGFuZCBpbnRvIGNvbW1vbiBjb2RlLgogICAgS2VlcCB0aGUgZW50cnkgcG9pbnQgaW4gdGhlIGJvb3RtX2hlYWRlcnNfdCBpbWFnZXMgc3RydWN0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMjAyMjBkMjJiOWY0MTQ0NjI4ODU4OGNkMmU0NTdlMDA3N2ExOGJlZApBdXRob3I6IFJhbmR5IFZpbnNvbiA8cnZpbnNvbkBtdmlzdGEuY29tPgpEYXRlOglXZWQgQXVnIDEzIDExOjQ0OjU3IDIwMDggLTA3MDAKCiAgICBtcGM3NDQ4aHBjMjogRml4IFBDSSBJL08gc3BhY2UgbWFwcGluZy4KCiAgICBQQ0kgSS9PIHNwYWNlIGlzIGN1cnJlbnRseSBtYXBwZWQgMToxIGF0IDB4RkEwMDAwMDAuIExpbnV4IHJlcXVpcmVzCiAgICBQQ0kgSS9PIHNwYWNlIHRvIHN0YXJ0IGF0IDAgb24gdGhlIFBDSSBidXMuIFRoaXMgcGF0Y2ggbWFwcyBQQ0kgSS9PCiAgICBzcGFjZSBzdWNoIHRoYXQgMHhGQTAwMDAwMCBpbiB0aGUgcHJvY2Vzc29yJ3MgYWRkcmVzcyBzcGFjZSBtYXBzIHRvIDAKICAgIG9uIHRoZSBQQ0kgSS9PIGJ1cy4KCiAgICBTaWduZWQtb2ZmLWJ5IFJhbmR5IFZpbnNvbiA8cnZpbnNvbkBtdmlzdGEuY29tPgogICAgQWNrZWQtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNGUwNzUyMGJiYjU0NjdhZDcyZWI5MmE1YzkxNzdkMjc5N2I5ZTMwCkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglXZWQgQXVnIDEzIDE4OjEwOjI2IDIwMDggKzAyMDAKCiAgICBpLk1YMzE6IFNwZWNpZnkgbWFpbnRhaW5lcnMgZm9yIGkuTVgzMS1iYXNlZCBib2FyZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDUxZTQ2ZTI4ZmRhNGJiZGY1MTQ5YWM3ZjY3ZDYyZmNjOGRmNGRhNjMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDI2IDE1OjAxOjI4IDIwMDggKzAyMDAKCiAgICBBRFM1MTIxOiBhZGp1c3QgaW1hZ2UgYWRkcmVzc2VzIGluIFJBTSBhbmQgZmxhc2gKCiAgICBVc2UgdGhlIHNhbWUgbWFwcGluZyBpbiBmbGFzaCBhcyB1c2VkIGJ5IExpbnV4CgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAxOWYxMDE0MTJjMTZlZGVlOWZkNTVkYjQwMzllMWQ2OGE4MzNiMjhiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAyNiAxMzoxNDozNCAyMDA4ICswMjAwCgogICAgY21kX21lbS5jOiBGaXggaGVscCBtZXNzYWdlIGFsaWdubWVudAoKICAgIEJ1ZyB3YXMgaW50cm9jZWQgYnkgIkJpZyB3aGl0ZS1zcGFjZSBjbGVhbnVwIiAoNTM2NzdlZjEpCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAxYTllZWI3OGI4MjViZmFkZTMxZDc2MDZhMmZlM2I5ZWNhOWUzNWJlCkF1dGhvcjogQW5kcmUgU2Nod2FyeiA8YW5kcmUuc2Nod2FyekBtYXRyaXgtdmlzaW9uLmRlPgpEYXRlOglXZWQgQXVnIDIwIDExOjExOjUyIDIwMDggKzAyMDAKCiAgICBjaGFuZ2UgbXZCTC1NNyBkZWZhdWx0IGVudiBhbmQgbW92ZSB0byB2ZW5kb3Igc3ViZGlyCgogICAgZml4IG12QkwtTTcgY29uZmlnIGFuZCBtb3ZlIHRvIG1hdHJpeF92aXNpb24gc3ViZGlyCgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmUgU2Nod2FyeiA8YW5kcmUuc2Nod2FyekBtYXRyaXgtdmlzaW9uLmRlPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwMDJkMjdjYWYyNmU3ZWI5MTNkNDc0ZDNhOTFmNjdkNTZjOGMzMWQ1CkF1dGhvcjogTmljayBTcGVuY2UgPG5pY2suc3BlbmNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBdWcgMjIgMjM6NTI6NDAgMjAwOCAtMDcwMAoKICAgIE1QQzgzWFg6IEFkZCBtaXNjZWxsYW5lb3VzIHJlZ2lzdGVycyBhbmQgI2RlZmluZXMgdG8gc3VwcG9ydCBNUEM4M3h4IGZhbWlseSBkZXZpY2VzCgogICAgVGhpcyBwYXRjaCBhZGRzIGVsZW1lbnRzIHRvIHRoZSA4M3h4IHN5c2NvbmYgc3RydWN0dXJlIGFuZCAjZGVmaW5lIHZhbHVlcyB0aGF0IGFyZSB1c2VkCiAgICBieSBtcGM4M3h4IGZhbWlseSBkZXZpY2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pY2sgU3BlbmNlIDxuaWNrLnNwZW5jZUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0NDdhZDU3NjhhYmRhNjY5YWMwZTdmNDZmY2RiNjJmYmU4MjhkNjM3CkF1dGhvcjogSXJhIFcuIFNueWRlciA8aXdzQG92cm8uY2FsdGVjaC5lZHU+CkRhdGU6CUZyaSBBdWcgMjIgMTE6MDA6MTUgMjAwOCAtMDcwMAoKICAgIE1QQzgzNDlFTURTOiBBZGQgUENJIEFnZW50IChQQ0lTTEFWRSkgc3VwcG9ydAoKICAgIEFkZCB0aGUgYWJpbGl0eSBmb3IgdGhlIE1QQzgzNDlFTURTIHRvIHJ1biBpbiBQQ0kgQWdlbnQgbW9kZSwgYWN0aW5nIGFzIGEKICAgIFBDSSBjYXJkIHJhdGhlciB0aGFuIGEgaG9zdCBjb21wdXRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBJcmEgVy4gU255ZGVyIDxpd3NAb3Zyby5jYWx0ZWNoLmVkdT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGZmOWFlYTlkNmI1NjAyNjgzYTkyMDk1MWVmODk2OTk2NDM4YWY2MgpBdXRob3I6IElyYSBXLiBTbnlkZXIgPGl3c0BvdnJvLmNhbHRlY2guZWR1PgpEYXRlOglGcmkgQXVnIDIyIDExOjAwOjE0IDIwMDggLTA3MDAKCiAgICBtcGM4M3h4OiBhZGQgUENJU0xBVkUgc3VwcG9ydCB0byA4M1hYX0dFTkVSSUNfUENJIHNldHVwIGNvZGUKCiAgICBUaGlzIGFkZHMgYSBoZWxwZXIgZnVuY3Rpb24gdG8gdW5sb2NrIHRoZSBQQ0kgY29uZmlndXJhdGlvbiBiaXQsIHNvIHRoYXQKICAgIGFueSBleHRyYSBQQ0kgc2V0dXAgKHN1Y2ggYXMgb3V0Ym91bmQgd2luZG93cywgZXRjLikgY2FuIGJlIGRvbmUgYWZ0ZXIKICAgIHVzaW5nIHRoZSA4M1hYX0dFTkVSSUNfUENJIGNvZGUgdG8gc2V0IHVwIHRoZSBQQ0kgYnVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IElyYSBXLiBTbnlkZXIgPGl3c0BvdnJvLmNhbHRlY2guZWR1PgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxNjIzMzhlMWZjZGUyMzFjYTRkNTYyZTVlYmQ3ODU5NDU2NzMxNjkxCkF1dGhvcjogSXJhIFcuIFNueWRlciA8aXdzQG92cm8uY2FsdGVjaC5lZHU+CkRhdGU6CUZyaSBBdWcgMjIgMTE6MDA6MTMgMjAwOCAtMDcwMAoKICAgIE1QQzgzNDlFTURTOiB1c2UgODNYWF9HRU5FUklDX1BDSSBzZXR1cCBjb2RlCgogICAgQ2hhbmdlIHRoZSBNUEM4MzQ5RU1EUyBib2FyZCB0byB1c2UgdGhlIGdlbmVyaWMgUENJIGluaXRpYWxpemF0aW9uIGNvZGUKICAgIGZvciB0aGUgbXBjODN4eCBjcHUuCgogICAgU2lnbmVkLW9mZi1ieTogSXJhIFcuIFNueWRlciA8aXdzQG92cm8uY2FsdGVjaC5lZHU+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY0ZTU1YTQ5NDFlOGJhNDZiYzA2MDIwYjI3NDc5MjhhZGY4ZmRlZTcKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDI1IDE0OjUzOjA5IDIwMDggLTA1MDAKCiAgICBmaXggb3V0IG9mIHRyZWUgYnVpbGRpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE0OWQxMGNmMDI3ZDA1OWVlMTVjMjYyMDEwYTA1Y2RhZWMwOTYxZTEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gQXVnIDI1IDIzOjQ1OjQxIDIwMDggKzAyMDAKCiAgICBNaW5vciBjb2Rpbmcgc3R5bGUgY2xlYW51cCwgdXBkdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0ZDU2ZThkZWE2NzA3NTdjODAxYTZhNjU1MzFmMDJhOGY5ODFjZTFmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgQXVnIDIwIDIwOjI5OjM4IDIwMDggKzAyMDAKCiAgICBSVEM6IEZpeCBNYWtlZmlsZSBwcm9ibGVtIHdpdGggQ09CSlMtJChDT05GSUdfUlRDX0RTMTMwNyB8fCBDT05GSUdfUlRDX0RTMTMzOCkKCiAgICBUaGlzICJ8fCIgZG9lc24ndCBzZWVtIHRvIHdvcmsuIE5vdyB1c2luZyB0aGUgaWRlYSBzdWdnZXN0IGJ5IFNjb3R0IFdvb2QKICAgIHRvIGNvbWJpbmUgYm90aCBjb25maWcgb3B0aW9ucyBpbnRvIG9uZSBsaW5lLiBUaGlzIGV2ZW4gYWxsb3dzIGRlZmluaW5nCiAgICBib3RoIG9wdGlvbnMgYW5kIG5vdCBnZW5lcmF0aW5nIHRoZSB0YXJnZXQgb2JqZWN0IHR3aWNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwNzllZGI5MTNkYmFlMTQ3YjUwYTQ4OGNmMDJlMDNmNDczZmM1ZjI4CkF1dGhvcjogSmVucyBHZWhybGVpbiA8c2V3X3NAdHFzLmRlPgpEYXRlOglGcmkgSnVsIDQgMTY6NTA6MDUgMjAwOCArMDIwMAoKICAgIE1YMzE6IGZpeCBiaXQgbWFza3MgaW4gZnVuY3Rpb24gbXgzMV9kZWNvZGVfcGxsKCkKCiAgICBCaXRzIE1QQ1RMW01GTl0gYW5kIE1QQ1RMW01GRF0gd2VyZSBub3QgZnVsbHkgY292ZXJlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZW5zIEdlaHJsZWluIDxzZXdfc0B0cXMuZGU+Cgpjb21taXQgZThmMTIwN2JiZjJkZjZmYjY5M2VlMWFhMzMyOWIyMDE0YzkyZTVlNgpBdXRob3I6IEd1cnVyYWphIEhlYmJhciBLIFIgPGd1cnVyYWpha3JAc2FueW8uY28uaW4+CkRhdGU6CU1vbiBBdWcgMjUgMTE6MTE6MzQgMjAwOCArMDIwMAoKICAgIENvcnJlY3QgQVJNIFZlcnNhdGlsZSBUaW1lciBJbml0aWFsaXphdGlvbgoKICAgICAtIEFjY29yZGluZyB0byBBUk0gRHVhbC1UaW1lciBNb2R1bGUgKFNQODA0KSBUUk0gKEFSTSBEREkwMjcxKSwKICAgICAgIC0tIFRpbWVyIFZhbHVlIFJlZ2lzdGVyIEAgVElNRVIgQmFzZSArIDQgaXMgUmVhZC1vbmx5LgogICAgICAgLS0gUHJlc2NhbGUgVmFsdWUgKEJpdHMgMy0yIG9mIFRJTUVSIENvbnRyb2wgcmVnaXN0ZXIpCgljYW4gb25seSBiZSBvbmUgb2YgMDAsMDEsMTAuIDExIGlzIHVuZGVmaW5lZC4KICAgICAgIC0tIENGR19IWiBmb3IgVmVyc2F0aWxlIGJvYXJkIGlzIHNldCB0bwoJI2RlZmluZSBDRkdfSFoJCSgxMDAwMDAwIC8gMjU2KQoJU28gUHJlc2NhbGUgYml0cyBpcyBzZXQgdG8gaW5kaWNhdGUKCS0gOCBTdGFnZXMgb2YgUHJlc2NhbGUsIENsb2NrIGRpdmlkZWQgYnkgMjU2CiAgICAgLSBUaGUgVGltZXIgQ29udHJvbCBSZWdpc3RlciBoYXMgb25lIFVuZGVmaW5lZC9TaG91bGRuJ3QgVXNlIEJpdAogICAgICAgU28gd2Ugc2hvdWxkIGRvIHJlYWQvbW9kaWZ5L3dyaXRlIE9wZXJhdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1cnVyYWphIEhlYmJhciA8Z3VydXJhamFrckBzYW55by5jby5pbj4KCmNvbW1pdCA1MzVjZmE0ZjNkZTg2Y2Y0OGQ2YzBhZjFkYWYzM2FlYmRjYTA4OWY5CkF1dGhvcjogR3VydXJhamEgSGViYmFyIEsgUiA8Z3VydXJhamFrckBzYW55by5jby5pbj4KRGF0ZToJTW9uIEF1ZyAyNSAxMTozMDoyOSAyMDA4ICswMjAwCgogICAgQWRkIEFSTSBBTUJBIFBMMDMxIFJUQyBTdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogR3VydXJhamEgSGViYmFyIEsgUiA8Z3VydXJhamFrckBzYW55by5jby5pbj4KCmNvbW1pdCBlMzk0MTE2NzQ2NjljYzg4MGUxZWM0YThjYTQ3OTRmYjE1YzMzYTQ1CkF1dGhvcjogSHVnbyBWaWxsZW5ldXZlIDxodWdvLnZpbGxlbmV1dmVAbHlydGVjaC5jb20+CkRhdGU6CVR1ZSBBdWcgMTkgMTY6MjE6MDMgMjAwOCAtMDQwMAoKICAgIEFSTSBEYVZpbmNpOiBSZW1vdmVkIHJlZHVuZGFudCBOQU5EIGluaXRpYWxpemF0aW9uIGNvZGUuCgogICAgQVJNIERhVmluY2k6IFJlbW92ZWQgcmVkdW5kYW50IE5BTkQgaW5pdGlhbGl6YXRpb24gY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIdWdvIFZpbGxlbmV1dmUgPGh1Z28udmlsbGVuZXV2ZUBseXJ0ZWNoLmNvbT4KCmNvbW1pdCBiM2ZiNjYzYjIwZDk5NWNhNDEzMjdkYjg3N2RkYjE2ODI3OWIzZjYyCkF1dGhvcjogSHVnbyBWaWxsZW5ldXZlIDxodWdvLnZpbGxlbmV1dmVAbHlydGVjaC5jb20+CkRhdGU6CVR1ZSBBdWcgMTkgMTY6MjE6MDAgMjAwOCAtMDQwMAoKICAgIEFSTSBEYVZpbmNpOiBGaXggY29tcGlsYXRpb24gZXJyb3Igd2l0aCBuZXcgTVREIGNvZGUuCgogICAgQVJNIERhVmluY2k6IEZpeCBjb21waWxhdGlvbiBlcnJvciB3aXRoIG5ldyBNVEQgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIdWdvIFZpbGxlbmV1dmUgPGh1Z28udmlsbGVuZXV2ZUBseXJ0ZWNoLmNvbT4KCmNvbW1pdCAxMDljMzBmYjhlZGVhMWExNWQzN2E2Y2U3ODdjZDVmYWYzM2Q4ZTQzCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJRnJpIEF1ZyAyMiAxNDozNzowNSAyMDA4IC0wNDAwCgogICAgQWRkIG5vdGUgb24gZGVyZWZlcmVuY2luZyAvYWxpYXNlcyBwb2ludGVycwoKICAgIFJlcGxhY2UgdGhlICJtdXN0IHF1b3RlIHNwZWNpYWwgY2hhcmFjdGVycyIgbm90ZSB3aXRoIGEgaGludCBvbgogICAgaG93IHRvIGRlcmVmZXJlbmNlIC9hbGlhc2VzIHBvaW50ZXJzIGJ5IG9taXR0aW5nIHRoZSBsZWFkaW5nICIvIi4KICAgIFRoaXMgZmVhdHVyZSB3YXMgaW50cm9kdWNlZCBieSBLdW1hciBHYWxhIGFzIGEgbGliZmR0IGVuaGFuY2VtZW50CiAgICBpbiBjb21taXQgZWQwMzU3MDgyMzUzMzJjM2MxMTdlZTNiYjFhNDI2MDYzZjAzY2ZjYi4KCiAgICBFeGFtcGxlOgoKICAgID0+IGZkdCBwcmludCAvYWxpYXNlcwogICAgYWxpYXNlcyB7CgkgICAgZXRoZXJuZXQwID0gIi9xZUBlMDEwMDAwMC91Y2NAMjAwMCI7CgkgICAgZXRoZXJuZXQxID0gIi9xZUBlMDEwMDAwMC91Y2NAMzAwMCI7CgkgICAgc2VyaWFsMCA9ICIvc29jODM2MEBlMDAwMDAwMC9zZXJpYWxANDUwMCI7CgkgICAgc2VyaWFsMSA9ICIvc29jODM2MEBlMDAwMDAwMC9zZXJpYWxANDYwMCI7CgkgICAgcGNpMCA9ICIvcGNpQGUwMDA4NTAwIjsKICAgIH07CiAgICA9PiBmZHQgcHJpbnQgZXRoZXJuZXQwCiAgICB1Y2NAMjAwMCB7CgkgICAgZGV2aWNlX3R5cGUgPSAibmV0d29yayI7CgkgICAgY29tcGF0aWJsZSA9ICJ1Y2NfZ2V0aCI7CgkgICAgY2VsbC1pbmRleCA9IDwweDE+OwoJICAgIHJlZyA9IDwweDIwMDAgMHgyMDA+OwoJICAgIGludGVycnVwdHMgPSA8MHgyMD47CgkgICAgaW50ZXJydXB0LXBhcmVudCA9IDwweDI+OwoJICAgIGxvY2FsLW1hYy1hZGRyZXNzID0gWzAwIDAwIDAwIDAwIDAwIDAwXTsKCSAgICByeC1jbG9jay1uYW1lID0gIm5vbmUiOwoJICAgIHR4LWNsb2NrLW5hbWUgPSAiY2xrOSI7CgkgICAgcGh5LWhhbmRsZSA9IDwweDM+OwoJICAgIHBoeS1jb25uZWN0aW9uLXR5cGUgPSAicmdtaWktaWQiOwoJICAgIHBpby1oYW5kbGUgPSA8MHg0PjsKICAgIH07CgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCBmZWVjYTNmNTc4YjdmNTNjMDMyYmEyMDM2OTg3NTFjOTgyZjhiZjVhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEF1ZyAxNCAwODoyODoxOSAyMDA4IC0wNTAwCgogICAgbGliZmR0OiBBZGQgc3VwcG9ydCBmb3IgdXNpbmcgYWxpYXNlcyBpbiBmZHRfcGF0aF9vZmZzZXQoKQoKICAgIElmIHRoZSBwYXRoIGRvZXNuJ3Qgc3RhcnQgd2l0aCAnLycgY2hlY2sgdG8gc2VlIGlmIGl0IG1hdGNoZXMgc29tZSBhbGlhcwogICAgdW5kZXIgIi9hbGlhc2VzIiBhbmQgc3Vic3RpdHV0ZSB0aGUgbWF0Y2hpbmcgYWxpYXMgdmFsdWUgaW4gdGhlIHBhdGgKICAgIGFuZCByZXRyeSB0aGUgbG9va3VwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBBY2tlZC1ieTogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+CiAgICBBY2tlZC1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCAwMjE5Mzk5YTRlM2E4ZWRiNDI4ZTE5MjRlMWEwM2Q1OGNjY2Y4ZDhlCkF1dGhvcjogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+CkRhdGU6CVdlZCBBdWcgNiAxNDo1MDo0OSAyMDA4ICsxMDAwCgogICAgbGliZmR0OiBJbXBsZW1lbnQgZmR0X2dldF9wcm9wZXJ0eV9uYW1lbGVuKCkgYW5kIGZkdF9nZXRwcm9wX25hbWVsZW4oKQoKICAgIEFzIHdlbGwgYXMgZmR0X3N1Ym5vZGVfb2Zmc2V0KCksIGxpYmZkdCBpbmNsdWRlcyBhbgogICAgZmR0X3N1Ym5vZGVfb2Zmc2V0X25hbWVsZW4oKSBmdW5jdGlvbiB0aGF0IHRha2VzIHRoZSBzdWJub2RlIG5hbWUgdG8KICAgIGxvb2sgdXAgbm90IGFzIGEgTlVMLXRlcm1pbmF0ZWQgc3RyaW5nLCBidXQgYXMgYSBzdHJpbmcgd2l0aCBhbgogICAgZXhwbGljaXQgbGVuZ3RoLiAgVGhpcyBjYW4gYmUgdXNlZnVsIHdoZW4gdGhlIGNhbGxlciBoYXMgdGhlIG5hbWUgYXMKICAgIHBhcnQgb2YgYSBsb25nZXIgc3RyaW5nLCBzdWNoIGFzIGEgZnVsbCBwYXRoLgoKICAgIEhvd2V2ZXIsIHdlIGRvbid0IGhhdmUgY29ycmVzcG9uZGluZyAnbmFtZWxlbicgdmVyc2lvbnMgZm9yCiAgICBmZHRfZ2V0X3Byb3BlcnR5KCkgYW5kIGZkdF9nZXRwcm9wKCkuICBUaGVyZSBhcmUgbGVzcyBvYnZpb3VzIHVzZQogICAgY2FzZXMgZm9yIHRoZXNlIHZhcmlhbnRzIG9uIHByb3BlcnR5IG5hbWVzLCBidXQgdGhlcmUgYXJlCiAgICBjaXJjdW1zdGFuY2VzIHdoZXJlIHRoZXkgY2FuIGJlIHVzZWZ1bCBlLmcuIGxvb2tpbmcgdXAgcHJvcGVydHkgbmFtZXMKICAgIHdoaWNoIG5lZWQgdG8gYmUgcGFyc2VkIGZyb20gYSBsb25nZXIgc3RyaW5nIGJ1ZmZlciBzdWNoIGFzIHVzZXIgaW5wdXQKICAgIG9yIGEgY29uZmlndXJhdGlvbiBmaWxlLCBvciBsb29raW5nIHVwIGFuIGFsaWFzIGluIGEgcGF0aCB3aXRoCiAgICBJRUVFMTI3NSBzdHlsZSBhbGlhc2VzLgoKICAgIFNvLCBzaW5jZSBpdCdzIHZlcnkgZWFzeSB0byBpbXBsZW1lbnQgc3VjaCB2YXJpYW50cywgdGhpcyBwYXRjaCBkb2VzCiAgICBzby4gIFRoZSBvcmlnaW5hbCBOVUwtdGVybWluYXRlZCB2YXJpYW50cyBhcmUsIG9mIGNvdXJzZSwgaW1wbGVtZW50ZWQKICAgIGluIHRlcm1zIG9mIHRoZSBuYW1lbGVuIHZlcnNpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgoKY29tbWl0IGYxNzE3NDZmNzAxZWE1OGJmNmE1M2U4MzViNTNkMmFhZWJlZTBkODEKQXV0aG9yOiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KRGF0ZToJVHVlIEp1bCAyOSAxNDo1MToyMiAyMDA4ICsxMDAwCgogICAgbGliZmR0OiBGb3Jnb3Qgb25lIGZ1bmN0aW9uIHdoZW4gY2xlYW5pbmcgdGhlIG5hbWVzcGFjZQoKICAgIEluIGNvbW1pdCBiNmQ4MGEyMGZjMjkzZjNiOTk1YzNjZTFhNjc0NGE1NTc0MTkyMTI1LCB3ZSByZW5hbWVkIGFsbAogICAgbGliZmR0IGZ1bmN0aW9ucyB0byBiZSBwcmVmaXhlZCB3aXRoIGZkdF8gb3IgX2ZkdF8gdG8gbWluaW1pc2UgdGhlCiAgICBjaGFuY2Ugb2YgY29sbGlzaW9ucyB3aXRoIHRoaW5ncyBmcm9tIHdoYXRldmVyIHBhY2thZ2UgbGliZmR0IGlzCiAgICBlbWJlZGRlZCBpbiwgcHVsbGVkIGludG8gdGhlIGxpYmZkdCBidWlsZCB2aWEgdGhhdCBlbnZpcm9ubWVudCdzCiAgICBsaWJmZHRfZW52LmguCgogICAgRXhjZXB0Li4uIEkgbWlzc2VkIG9uZS4gIFRoaXMgcGF0Y2ggYXBwbGllcyB0aGUgc2FtZSB0cmVhdG1lbnQgdG8KICAgIF9zdHJpbmdsaXN0X2NvbnRhaW5zKCkuICBXaGlsZSB3ZSdyZSBhdCBpdCwgYWxzbyBtYWtlIGl0IHN0YXRpYyBzaW5jZQogICAgaXQncyBvbmx5IHVzZWQgaW4gdGhlIHNhbWUgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KCmNvbW1pdCA0NjM5MGRhMTU0MTEzNTFmYzNiNDk4YmQ4YzE2MTVmNzhmZTgwZGYwCkF1dGhvcjogV29sZnJhbSBTYW5nIDx3LnNhbmdAcGVuZ3V0cm9uaXguZGU+CkRhdGU6CVdlZCBKdWwgOSAxMToyMjo0NCAyMDA4ICswMjAwCgogICAgbGliZmR0OiBJbXByb3ZlIGRvY3VtZW50YXRpb24gaW4gbGliZmR0LmgKCiAgICBGaXggYSBmZXcgdHlwb3MgYW5kIG1pc3Rha2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZyYW0gU2FuZyA8dy5zYW5nQHBlbmd1dHJvbml4LmRlPgogICAgQWNrZWQtYnk6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgoKY29tbWl0IGZjNzc1OGVlNGY1NzgyODc4ZjJlOTY4NzZiN2JjNTZjZmVlMGFjNjYKQXV0aG9yOiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KRGF0ZToJV2VkIEp1bCA5IDE0OjEwOjI0IDIwMDggKzEwMDAKCiAgICBsaWJmZHQ6IEluY3JlYXNlIG5hbWVzcGFjZS1wb2xsdXRpb24gcGFyYW5vaWEKCiAgICBsaWJmZHQgaXMgc3VwcG9zZWQgdG8gZWFzeSB0byBlbWJlZCBpbiBwcm9qZWN0cyBhbGwgYW5kIHN1bmRyeS4KICAgIE9mdGVuLCBpdCB3b24ndCBiZSBwcmFjdGljYWwgdG8gc2VwYXJhdGUgdGhlIGVtYmVkZGVkIGxpYmZkdCdzCiAgICBuYW1lc3BhY2UgZnJvbSB0aGF0IG9mIHRoZSBzdXJyb3VuZGluZyBwcm9qZWN0LiAgV2hpY2ggbWVhbnMgdGhlcmUgY2FuCiAgICBiZSBuYW1lc3BhY2UgY29uZmxpY3RzIGJldHdlZW4gZXZlbiBsaWJmZHQncyBpbnRlcm5hbC9zdGF0aWMgZnVuY3Rpb25zCiAgICBhbmQgZnVuY3Rpb25zIG9yIG1hY3JvcyBjb21pbmcgZnJvbSB0aGUgc3Vycm91bmRpbmcgcHJvamVjdCdzIGhlYWRlcnMKICAgIHZpYSBsaWJmZHRfZW52LmguCgogICAgVGhpcyBwYXRjaCwgdGhlcmVmb3JlLCByZW5hbWVzIGEgYnVuY2ggb2YgbGliZmR0IGludGVybmFsIGZ1bmN0aW9ucwogICAgYW5kIG1hY3JvcyBhbmQgbWFrZXMgYSBmZXcgb3RoZXIgY2hhbmNlcyB0byByZWR1Y2UgdGhlIGNoYW5jZXMgb2YKICAgIG5hbWVzcGFjZSBjb2xsaXNpb25zIHdpdGggZW1iZWRkaW5nIHByb2plY3RzLiAgU3BlY2lmaWNhbGx5OgoJLSBJbnRlcm5hbCBmdW5jdGlvbnMgKGV2ZW4gc3RhdGljIG9uZXMpIGFyZSBub3cgbmFtZWQgX2ZkdF8qKCkKCgktIFRoZSB0eXBlIGFuZCAoc3RhdGljKSBnbG9iYWwgZm9yIHRoZSBlcnJvciB0YWJsZSBpbgoJICAgICAgZmR0X3N0cmVycm9yKCkgZ2FpbiBhbiBmZHRfIHByZWZpeAoKCS0gVGhlIHVudXNlZCBtYWNybyBQQUxJR04gaXMgcmVtb3ZlZAoKCS0gVGhlIG1lbWVxIGFuZCBzdHJlcSBtYWNyb3MgYXJlIHJlbW92ZWQgYW5kIG9wZW4tY29kZWQgaW4gdGhlCgkgICAgICB1c2VycyAodGhleSB3ZXJlIG9ubHkgdXNlZCBvbmNlIGVhY2gpCgoJLSBPdGhlciBtYWNyb3MgZ2FpbiBhbiBGRFRfIHByZWZpeAoKCS0gVG8gc2F2ZSBzb21lIG9mIHRoZSBidWxrIGZyb20gdGhlIHByZXZpb3VzIGNoYW5nZSwgYW4KCSAgICAgIEZEVF9UQUdBTElHTigpIG1hY3JvIGlzIGludHJvZHVjZWQsIHdoZXJlIEZEVF9UQUdBTElHTih4KSA9PQoJICAgICAgRkRUX0FMSUdOKHgsIEZEVF9UQUdTSVpFKQoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgoKY29tbWl0IGM2NjgzMDI2M2FmMTk4MzFmMmI3ZGIzMDdmNzlkMTk0M2ZlYmY3ZjkKQXV0aG9yOiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KRGF0ZToJTW9uIEp1bCA3IDEwOjE0OjE1IDIwMDggKzEwMDAKCiAgICBkdGM6IEVuYWJsZSBhbmQgZml4IC1XY2FzdC1xdWFsIHdhcm5pbmdzCgogICAgRW5hYmxpbmcgLVdjYXN0LXF1YWwgd2FybmluZ3MgaW4gZHRjIHNob3dzIHVwIGEgbnVtYmVyIG9mIHBsYWNlcyB3aGVyZQogICAgd2UgYXJlIGluY29ycmVjdGx5IGRpc2NhcmRpbmcgYSBjb25zdCBxdWFsaWZpY2F0aW9uLiAgVGhlcmUgYXJlIGFsc28KICAgIHNvbWUgcGxhY2VzIHdoZXJlIHdlIGFyZSBpbnRlbnRpb25hbGx5IGRpc2NhcmRpbmcgdGhlICdjb25zdCcsIGFuZCB3ZQogICAgbmVlZCBhbiB1Z2x5IGNhc3QgdGhyb3VnaCB1aW50cHRyX3QgdG8gc3VwcHJlc3MgdGhlIHdhcm5pbmcuICBIb3dldmVyLAogICAgbW9zdCBvZiB0aGVzZSBhcmUgcHJldHR5IHdlbGwgaXNvbGF0ZWQgd2l0aCB0aGUgKl93KCkgZnVuY3Rpb25zLiAgU28KICAgIGluIHRoZSBpbnRlcmVzdHMgb2YgbWF4aW11bSBzYWZldHkgd2l0aCBjb25zdCBxdWFsaWZpY2F0aW9ucywgdGhpcwogICAgcGF0Y2ggZW5hYmxlcyB0aGUgd2FybmluZ3MgYW5kIGZpeGVzIHRoZSBleGlzdGluZyBjb21wbGFpbnRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgogICAgQWNrZWQtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgZWY0ZThjZTFiZWI1YjkzYWVkZGE1YTRjMWI5MGJmZDk4OWM2NzkxZQpBdXRob3I6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgpEYXRlOglNb24gSnVsIDcgMTA6MTA6NDggMjAwOCArMTAwMAoKICAgIGR0YzogRW5hYmxlIGFuZCBmaXggLVdwb2ludGVyLWFyaXRoIHdhcm5pbmdzCgogICAgVGhpcyBwYXRjaCB0dXJucyBvbiB0aGUgLVdwb2ludGVyLWFyaXRoIG9wdGlvbiBpbiB0aGUgZHRjIE1ha2VmaWxlLAogICAgYW5kIGZpeGVzIHRoZSByZXN1bHRpbmcgd2FybmluZ3MgZHVlIHRvIHVzaW5nICh2b2lkICopIGluIHBvaW50ZXIKICAgIGFyaXRobWV0aWMuICBXaGlsZSBjb252ZW5pZW50LCBwb2ludGVyIGFyaXRobWV0aWMgb24gdm9pZCAqIGlzIG5vdAogICAgcG9ydGFibGUsIHNvIGl0J3MgYmV0dGVyIHRoYXQgd2UgYXZvaWQgaXQsIHBhcnRpY3VsYXJseSBpbiBsaWJmZHQuCgogICAgQWxzbyBhZGQgbmVjZXNzYXJ5IGRlZmluaXRpb24gb2YgdWludHB0cl90IG5lZWRlZCBieSBEYXZpZCBHaWJzb24ncwogICAgY2hhbmdlc2V0ICJkdGM6IEVuYWJsZSBhbmQgZml4IC1XcG9pbnRlci1hcml0aCB3YXJuaW5ncyIgKHRoZSBkZWZpbml0aW9uCiAgICBjb21lcyBmcm9tIHN0ZGludC5oLCB3aGljaCB1LWJvb3QgZG9lc24ndCBoYXZlKS4gLS0gZ3ZiCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+CiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDVkNGIzZDJiMzFlNThmY2IyZDRiZDEwYWY3NjJmNWZmNDFiMjI5ZmQKQXV0aG9yOiBUaXJ1bWFsYSBSIE1hcnJpIDx0bWFycmlAYW1jYy5jb20+CkRhdGU6CVRodSBBdWcgMjEgMjE6NTQ6NTMgMjAwOCAtMDcwMAoKICAgIHBwYzR4eDogQU1DQyBQUEM0NjBHVC9FWCBQQ0ktRSBkZS1lbXBoYXNpcyBhZGp1c3RtZW50IGZpeAoKICAgIER1cmluZyByZWNlbnQgUENJLUUgdGVzdHMgaXQgaGFzIGJlZW4gZm91bmQgdGhhdCBjdXJyZW50CiAgICBkcml2ZXJsIGxldmVsIGFuZCBkZS1lbXBoYXNpcyB2YWx1ZXMgYXJlIG5vdCBzZXQgY29ycmVjdGx5LgogICAgQWZ0ZXIgc3dlZXBpbmcgdGhyb2doIGFsbCBkZS1lcGhhc2lzIHZhbHVlcywgaXQgd2FzIGZvdW5kIHRoYXQKICAgIDB4MTMwIGlzIGEgcmlnaHQgdmFsdWUuIFdoZXJlIDB4MTMgaXMgZHJpdmVyIGxldmVsIGFuZCAwIGlzCiAgICBkZS1lbXBoYXNpcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaXJ1bWFsYSBSIE1hcnJpIDx0bWFycmlAYW1jYy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMGJiODZkODIzYjZjMTUwYzdlZTE3ZGUwY2ZjYTlmZmNjYzE2NDYzYgpBdXRob3I6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgpEYXRlOglXZWQgQXVnIDIwIDIwOjQ2OjU2IDIwMDggKzAyMDAKCiAgICBNYWtlIHRoZSBZQUZGUyBmaWxlc3lzdGVtIHdvcmsKCiAgICBSZWNlbnRseSB0aGUgWUFGRlMgZmlsZXN5c3RlbSBzdXBwb3J0IGhhcyBiZWVuIGFkZGVkIHRvIFUtYm9vdC4KICAgIEhvd2V2ZXIsIGp1c3QgZW5hYmxpbmcgQ09ORklHX1lBRkZTMiBpcyBub3QgZW5vdWdoIHRvIGdldCBpdCB3b3JraW5nLgoKICAgIHltb3VudCB3aWxsIGdlbmVyYXRlIGFuIGV4Y2VwdGlvbiAod2hlbiBkZXJlZmVyZW5jaW5nIG10ZC0+cmVhZG9vYigpKSwgYmVjYXVzZQogICAgdGhlIGdlbmVyaWNEZXZpY2UgaXMgYSBudWxsIHBvaW50ZXIuIEZ1cnRoZXIsIGEgbG90IG9mIGxvZ2dpbmcgaXMgcHJvZHVjZWQKICAgIHdoaWxlIHVzaW5nIFlBRkZTIGZzLCBzbyBsb2dnaW5nIHNob3VsZCBhbHNvIGJlIGRpc2FibGVkLgogICAgQm90aCBpc3N1ZXMgYXJlIHNvbHZlZCBieSB0aGlzIHBhdGNoLgoKICAgIFdpdGggdGhpcyBwYXRjaCBhbmQgQ09ORklHX1lBRkZTMiBlbmFibGVkLCBJIGdldCBhIHJlYWRhYmxlIGZpbGVzeXN0ZW0KICAgIGluIFUtYm9vdCwgYXMgd2VsbCBhcyBpbiBMaW51eC4KCiAgICBUZXN0ZWQgb24gYSBBdG1lbCBBVDkxU0FNOTI2MUVLIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgogICAgQWNrZWQtYnk6IFdpbGxpYW0gSnV1bCA8d2lsbGlhbS5qdXVsQHRhbmRiZXJnLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJmZDdmMzg2MTRlMjFmNzQ1YjZkNjg0NWZjYzYxNmViYzVlNGQzNmYKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxrbXBhcmtAaW5mcmFkZWFkLm9yZz4KRGF0ZToJVHVlIEF1ZyAxOSAwODo0Mjo1MyAyMDA4ICswOTAwCgogICAgRml4IE9uZU5BTkQgcmVhZF9vb2Ivd3JpdGVfb29iIGZ1bmN0aW9ucyBjb21wYXRhYmlsaXR5CgogICAgQWxzbyBzeW5jIHdpdGgga2VybmVsIE9uZU5BTkQgY29kZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGQ3NjU0NTZjMWQzM2YyMDEwZDI3MTdlZTU4ZGU3NjQ3ZmRjNjM0NgpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDE4IDE3OjExOjIwIDIwMDggLTA1MDAKCiAgICBOQU5EOiBSZW1vdmUgZGVsYXkgZnJvbSBuYW5kX2Jvb3RfZnNsX2VsYmMuYy4KCiAgICBJdCB3YXMgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcywgYW5kIHNob3VsZG4ndCBoYXZlIGJlZW4gbGVmdCBpbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNTU2NDgzNzM0MTI2NzkzNTIyZmI3YThjZjM2YWY5MGRhNzhmMDg0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgQXVnIDIxIDExOjA1OjAzIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IENsZWFudXAgb2YgInBwYzR4eDogT3B0aW1pemUgUExCNCBBcmJpdGVyLi4uIiBwYXRjaAoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgc29tZSBtaW5vciBpc3N1ZXMgaW50cm9kdWNlZCB3aXRoIHRoZSBwYXRjaDoKICAgIHBwYzR4eDogT3B0aW1pemUgUExCNCBBcmJpdGVyLi4uIGZyb20gUHJvZHl1dCBIYXphcmlrYToKCiAgICAtIFJld29yayBtZW1vcnktcXVldWUgYW5kIFBMQiBhcmJpdGVyIG9wdGltaXphdGlvbiBjb2RlLCB0aGF0IHRoZQogICAgICBsb2NhbCB2YXJpYWJsZSBpcyBub3QgbmVlZGVkIGFueW1vcmUuIFRoaXMgcmVtb3ZlcyBvbmUgI2lmZGVmLgogICAgLSBVc2UgY29uc2lzdGFudCBzcGFjaW5nIGluIHBwYzR4eC5oIGhlYWRlciAoWFhYICsgMHgwMSBpbnN0ZWFkCiAgICAgIG9mIFhYWCsgMHgwMSkuIFRoaXMgd2FzIG5vdCBpbnRyb2R1Y2VkIGJ5IFByb2R5dXQsIGp1c3QgYQogICAgICBjb3B5LXBhc3RlIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDA3OTU4OWJjZmIyNGJhMTEwNjg0NjAyNzZhM2NjOTU0OWFiNTM0NmYKQXV0aG9yOiBQcm9keXV0ICBIYXphcmlrYSA8cGhhemFyaWthQGFtY2MuY29tPgpEYXRlOglXZWQgQXVnIDIwIDA5OjM4OjUxIDIwMDggLTA3MDAKCiAgICBwcGM0eHg6IE9wdGltaXplIFBMQjQgQXJiaXRlciBhbmQgTWVtb3J5IFF1ZXVlIHNldHRpbmdzIGZvciBQUEM0NDBTUC9TUGUsCglQUEM0MDVFWCBhbmQgUFBDNDYwRVgvR1QvU1gKCiAgICAtIFJlYWQgcGlwZWxpbmUgZGVwdGggc2V0IHRvIDQgZm9yIFBQQzQ0MFNQL1NQRSwgUFBDNDA1RVgsIFBQQzQ2MEVYL0dUL1NYCiAgICAgIHByb2Nlc3NvcnMKICAgIC0gTW92ZWQgUExCNCBBcmJpdGVyIHJlZ2lzdGVyIGRlZmluaXRpb25zIHRvIHBwYzR4eC5oIHNpbmNlIGl0IGlzIHNoYXJlZAogICAgICBhY3Jvc3MgcHJvY2Vzc29ycyAoNDA1IGFuZCA0NDAvNDYwKQogICAgLSBPcHRpbWl6ZSBNZW1vcnkgUXVldWUgc2V0dGluZ3MgZm9yIFBQQzQ0MFNQL1NQRSBhbmQgUFBDNDYwRVgvR1QvU1gKICAgICAgcHJvY2Vzc29ycwogICAgLSBBZGQgcmVnaXN0ZXIgYml0IGRlZmluaXRpb25zIGZvciBNZW1vcnkgUXVldWUgQ29uZmlndXJhdGlvbiByZWdpc3RlcnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBQcm9keXV0IEhhemFyaWthIDxwaGF6YXJpa2FAYW1jYy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYmEzN2FhMDMyODdjNTQ4M2M2MWMwYTNlMzIwYzg4ODhiZWUwMTQzYQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBBdWcgMTkgMTU6NDE6MTggMjAwOCAtMDUwMAoKICAgIGZkdDogcmV3b3JrIGZkdF9maXh1cF9ldGhlcm5ldCgpIHRvIHVzZSBlbnYgaW5zdGVhZCBvZiBiZF90CgogICAgTW92ZSB0byB1c2luZyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzICdldGhhZGRyJywgJ2V0aDFhZGRyJywgZXRjLi4KICAgIGluc3RlYWQgb2YgYmQtPmJpX2VuZXRhZGRyLCBiaV9lbmV0MWFkZHIsIGV0Yy4KCiAgICBUaGlzIG1ha2VzIHRoZSBjb2RlIGEgYml0IG1vcmUgZmxleGlibGUgdG8gdGhlIG51bWJlciBvZiBldGhlcm5ldAogICAgaW50ZXJmYWNlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDRjYWNmN2M2NDYwOTgzOWY4MDllMmY5YzQ1ODczZjFkNjU4NjE3MDMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMTkgMTQ6NTc6NTUgMjAwOCArMDIwMAoKICAgIGh1c2g6IEZpeCBwcmludGYgZGVidWcgbWFjcm8gaW4gaHVzaC5jIHNvIHRoYXQgaXQgdXNhYmxlIGluIFUtQm9vdAoKICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgZGVidWdfcHJpbnRmKCkgbWFyY28gZm9yIFUtQm9vdCBpbiBodXNoLmMgYW5kCiAgICBtb3ZlcyB0aGUgZGVmaW5pdGlvbiBvZiBERUJVR19TSEVMTCB0byBhIHBsYWNlIHRoYXQgaXMgYWN0dWFsbHkgY29tcGlsZWQKICAgIHVuZGVyIFUtQm9vdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOGYyYjQ1N2VmMjZhNDRkOWU1ZmQ3ZDZiMTZjMzk0ZTVjM2E3MWNhMgpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglUdWUgQXVnIDE5IDA5OjU3OjQxIDIwMDggKzAyMDAKCiAgICBjZmk6IHJlbmFtZSBDRkdfRkxBU0hfQ0ZJX0RSSVZFUiB0byBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgoKICAgIENvbW1pdAkwMGIxODgzYTRjYWM1OWQ5N2NkMjk3YjFhM2EzOThkYjg1OTgyODY1CiAgICBtaXNzZWQgYSBmZXcgYm9hcmRzOgoJaW5jbHVkZS9jb25maWdzL001MjUzREVNTy5oCglpbmNsdWRlL2NvbmZpZ3MvbWw1MDcuaAoJaW5jbHVkZS9jb25maWdzL3JlZHdvb2QuaAoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhpcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCAwNzY4YjdhODcyOTY0MDg1ZWVjZThkNWU5ZmVjOTE3NWU5ZGViMTYxCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglNb24gQXVnIDE4IDEzOjQxOjI3IDIwMDggKzAyMDAKCiAgICBDb25zb2xpZGF0ZSBzdHJtaHooKSBpbXBsZW1lbnRhdGlvbgoKICAgIEFSTSwgaTM4NiwgbTY4ayBhbmQgcHBjIGFsbCBoYXZlIGlkZW50aWNhbCBpbXBsZW1lbnRhdGlvbnMgb2Ygc3RybWh6KCkuCiAgICBPdGhlciBhcmNoaXRlY3R1cmVzIGRvbid0IHByb3ZpZGUgdGhpcyBmdW5jdGlvbiBhdCBhbGwuCgogICAgVGhpcyBwYXRjaCBtb3ZlcyBzdHJtaHooKSBpbnRvIGxpYl9nZW5lcmljLCByZWR1Y2luZyBjb2RlIGR1cGxpY2F0aW9uCiAgICBhbmQgcHJvdmlkaW5nIGEgbW9yZSB1bmlmaWVkIEFQSSBhY3Jvc3MgYXJjaGl0ZWN0dXJlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgYTkyOGQwZGYyMTFmMWQ4MjkzMDhkMzM1ZDE5YmUzY2E0MjU1OGRmYwpBdXRob3I6IEFuZHJlIFNjaHdhcnogPGFuZHJlLnNjaHdhcnpAbWF0cml4LXZpc2lvbi5kZT4KRGF0ZToJTW9uIEF1ZyAxOCAxMjowMjo1MSAyMDA4ICswMjAwCgogICAgZml4IG12YmNfcCBib2FyZCBidWlsZCB3YXJuaW5ncwoKICAgIGZpeCBidWlsZCB3YXJuaW5ncyBAIG12QkMtUCBib2FyZCBieSB1c2luZyBjb3JyZWN0IHR5cGVzLCBpLmUuIGNoYW5nZQogICAgb3V0X2JlMzIgdG8gb3V0X2JlMTYgYW5kIG91dF84IGFjY29yZGluZ2x5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJlIFNjaHdhcnogPGFuZHJlLnNjaHdhcnpAbWF0cml4LXZpc2lvbi5kZT4KCmNvbW1pdCBhOTU4YjY2M2QyN2Y2MTZiZDFkZmI3MjBkMWI0NzZkMWVjYWFhNTY5CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IEF1ZyAxNiAxODo1NDoyNyAyMDA4ICswMjAwCgogICAgTWFrZWZpbGU6IGZpeCBwb3NpeCBzdXBwb3J0IG9uIGZpbmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGJlZjkyZTIxNWQ5NDVjYzU3NDM5OWMxYTFiMDBhM2E3NmQzNWFhMDMKQXV0aG9yOiBBeGVsIEJlaWVybGVpbiA8YmVsYXRyb25peEB3ZWIuZGU+CkRhdGU6CVNhdCBBdWcgMTYgMDA6MzA6NDggMjAwOCArMDIwMAoKICAgIEFkZGluZyBib290bGltaXQvYm9vdGNvdW50IGZlYXR1cmUgZm9yIE1QQzVYWFggb24gVFFNNTIwMCBCb2FyZHMKCiAgICBUZXN0ZWQgd2l0aCBUUU01MjAwUyBvbiBTVEs1MlhYLjIwMCBCb2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IEF4ZWwgQmVpZXJsZWluIDxiZWxhdHJvbml4QHdlYi5kZT4KCmNvbW1pdCAwODAwNzA3YjZkNTA0MWE4NDBhNjVkNTU2MDMyYzE1YzU4NGI1NWY4CkF1dGhvcjogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KRGF0ZToJRnJpIEF1ZyAxNSAxNDozNjozMiAyMDA4IC0wNTAwCgogICAgbW9kX2kyY19tZW0oKSBidWdmaXgKCiAgICBUaGUgbGFzdCB1c2VkIGNoaXAsIGFkZHJlc3MsIGFuZCBhZGRyZXNzIGxlbmd0aCB3ZXJlIG5vdCBiZWluZwogICAgc3RvcmVkIGZvciB0aGUgaW1tIGFuZCBpbW4gY29tbWFuZHMuCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgVHlzZXIgPHB0eXNlckB4ZXMtaW5jLmNvbT4KCmNvbW1pdCA0YWZiZWY5NjcyNzViMmY2MzZhYmFlODZmOTFiODFiZWNlZTdhZDAzCkF1dGhvcjogU3RldmVuIEEuIEZhbGNvIDxzZmFsY29AaGFycmlzLmNvbT4KRGF0ZToJRnJpIEF1ZyAxNSAxNTozNzozMSAyMDA4IC0wNDAwCgogICAgRml4IHR5cG8gaW4gc3BlbGxpbmcgb2YgQVRBUEkuCgogICAgQ29ycmVjdCBhIHNtYWxsIHNwZWxsaW5nIG1pc3Rha2UuCgogICAgU2lnbmVkLW9mZi1ieTogU3RldmVuIEEuIEZhbGNvIDxzZmFsY29AaGFycmlzLmNvbT4KCmNvbW1pdCAzNmMyZDMwNjJlY2M2YWI4NWY4ZTIzNzE4MGViMTM0NDY0YzQ4NDE4CkF1dGhvcjogU3RldmVuIEEuIEZhbGNvIDxzZmFsY29AaGFycmlzLmNvbT4KRGF0ZToJRnJpIEF1ZyAxNSAxNTozNDoxMCAyMDA4IC0wNDAwCgogICAgQWRkIGEgaG9vayB0byBhbGxvdyBib2FyZC1zcGVjaWZpYyBQSU8gbW9kZSBzZXR0aW5nLgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBhIGhvb2sgd2hlcmVieSBhIGJvYXJkLXNwZWNpZmljIHJvdXRpbmUgY2FuIGJlIGNhbGxlZCB0bwogICAgY29uZmlndXJlIGhhcmR3YXJlIGZvciBhIFBJTyBtb2RlLglUaGUgcHJvdG90eXBlIGZvciB0aGUgYm9hcmQtc3BlY2lmaWMKICAgIHJvdXRpbmUgaXM6CgoJaW50IGlubGluZSBpZGVfc2V0X3Bpb21vZGUoaW50IHBpb19tb2RlKQoKICAgIGlkZV9zZXRfcGlvbW9kZSBzaG91bGQgYmUgcHJlcGFyZWQgdG8gY29uZmlndXJlIGhhcmR3YXJlIGZvciBhIHBpb19tb2RlCiAgICBiZXR3ZWVuIDAgYW5kIDYsIGluY2x1c2l2ZS4gIEl0IHNob3VsZCByZXR1cm4gMCBvbiBzdWNjZXNzIG9yIDEgb24gZmFpbHVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGV2ZW4gQS4gRmFsY28gPHNmYWxjb0BoYXJyaXMuY29tPgoKY29tbWl0IDk1NzFiODRjYjE0MjM4NzZmMTE1MzA4MWI5ZTZhNTFkOTBmYmNkYzQKQXV0aG9yOiBTdGV2ZW4gQS4gRmFsY28gPHNmYWxjb0BoYXJyaXMuY29tPgpEYXRlOglGcmkgQXVnIDE1IDE1OjI5OjEyIDIwMDggLTA0MDAKCiAgICBSZXBsYWNlIGVudW1zIGluIGF0YS5oIHdpdGggYW4gaW5jbHVkZSBvZiBsaWJhdGEuaAoKICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBzb21lIGVudW1zIGZyb20gYXRhLmggYW5kIHJlcGxhY2VzIHRoZW0gd2l0aCBhbgogICAgaW5jbHVkZSBvZiBsaWJhdGEuaC4gIFRoaXMgd2F5LCB3ZSBlbGltaW5hdGUgZHVwbGljYXRlZCBjb2RlLCBhbmQKICAgIHByZXZlbnQgZXJyb3JzIHdoZXJlYnkgdGhlIGRpZmZlcmVudCB2ZXJzaW9ucyBjb3VsZCBiZSBvdXQgb2Ygc3luYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGV2ZW4gQS4gRmFsY28gPHNmYWxjb0BoYXJyaXMuY29tPgoKY29tbWl0IDBkZTBhZmJjYTg2NWVjZjQ4MmI0ZDJiNjM1MjM2NzQ2ZGVmODUxOGYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgQXVnIDE1IDE4OjMyOjQxIDIwMDggKzAyMDAKCiAgICBjb2xkZmlyZTogZml4IENGSSBkcml2ZXJzIGFjdGl2YXRpb24gd2l0aCBuZXcgbWFjcm8KCiAgICByZW5hbWUgQ0ZHX0ZMQVNIX0NGSV9EUklWRVIgdG8gQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDdkYmMzOGFkOTE1ZjRhZTY3ZjRjZDE4MThiN2FjOGZlZDM2OGFhYTkKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgQXVnIDE1IDA4OjI0OjM1IDIwMDggLTA1MDAKCiAgICBmZHQ6IGZkdCBhZGRyIHcvbyBhbnkgYXJncyByZXBvcnRzIGJhY2sgdGhlIGN1cnJlbnQgd29ya2luZyBhZGRyZXNzCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmOTUzZDk5ZmQ1MjhhNDk2YjQwMGE3MDZiNTExZWFmOGUzZWE2NmFmCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIEF1ZyAxNSAwODoyNDozNCAyMDA4IC0wNTAwCgogICAgZmR0OiBhZGRlZCB0aGUgYWJpbGl0eSB0byBzZXQgaW5pdHJkIHN0YXJ0L2VuZCB2aWEgY2hvc2VuIGNvbW1hbmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGZmYTRiYWZhY2FlZjY3MDU4NDYzYjNkN2QwMDk5Y2VkNTc1NjlkZDIKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgQXVnIDE1IDA4OjI0OjMzIDIwMDggLTA1MDAKCiAgICBBZGQgY29tbWFuZCB0byBlbmFibGUvZGlzYWJsZSBpbnRlcnJ1cHRzCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA5ZThlNjNjY2U2OTU1NmFlZjEwYjU4YmNiYzU2ZDMyNGY1NzBlYzNhCkF1dGhvcjogTmljayBTcGVuY2UgPG5pY2suc3BlbmNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTkgMjI6MjE6MTYgMjAwOCAtMDcwMAoKICAgIENGSTogQWRkIENGSV9DTURTRVRfSU5URUxfRVhURU5ERUQgdG8gZml4IGZsYXNoX3JlYWxfcHJvdGVjdCgpCgogICAgVGhpcyBwYXRjaCBmaXhlcyBhIG1pc3NpbmcgdmVuZG9yIGNvZGUgaW4gdGhlIGZsYXNoX3JlYWxfcHJvdGVjdCgpIGZ1bmN0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pY2sgU3BlbmNlIDxuaWNrLnNwZW5jZUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDRlMDBhY2RlZDJlNmE4ZDY2M2UxMjY5MGEwZjBmMDhmNWJlYzVhNTgKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE5IDE2OjUzOjM5IDIwMDggKzAwMDAKCiAgICBDRkk6IEZpeCBBTUQgTGVnYWN5IHNlY3RvciBwcm90ZWN0CgogICAgTmV3IGltcGxlbWVudCBzZWN0b3IgbG9jayBhbmQgdW5sb2NrIG9yIHNvZnRsb2NrIGNvbW1hbmRzCiAgICBkbyBub3QgZXhpc3QgaW4gQU1EIGxlZ2FjeSBmbGFzaC4gVGh1cywgY2F1c2luZyBpc3N1ZQogICAgd2hlbiBlcmFzaW5nIEFNRCBsZWdhY3kgZmxhc2ggKHN1Y2ggYXMgbHYwNDApCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0OTI2NzE0MDQxNDBmMDlkNWIyMWIzZDJjZTRlMzYyYzA2OTJjMDY5CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgQXVnIDIwIDA5OjQwOjE2IDIwMDggKzAyMDAKCiAgICBoYW1tZXJoZWFkL21pbWMyMDA6IFVzZSBDT05GSUdfRkxBU0hfQ0ZJX0RSSVZFUgoKICAgIENGR19GTEFTSF9DRklfRFJJVkVSIHdhcyByZWNlbnRseSByZW5hbWVkIENPTkZJR19GTEFTSF9DRklfRFJJVkVSLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAzM2VhYzJiM2Q5NDZmYzk5OGEwOTI0NWRmZTU0ZDAxNzA3OWI5MDU2CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgQXVnIDIwIDA5OjI4OjM2IDIwMDggKzAyMDAKCiAgICBoYW1tZXJoZWFkOiBBZGQgbWlzc2luZyBwcmludGYgcGFyYW1ldGVyIHRvIENPTkZJR19BVVRPQk9PVF9QUk9NUFQKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMjVkYTBiODQxOTVmZGRhODlhOTQzYjJkMjU3NTdkYjVhZmVlZjViOApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIEF1ZyAyMCAwOToyNzozNyAyMDA4ICswMjAwCgogICAgZmF2ci0zMi1lemtpdDogRml4IHByaW50ZiBmb3JtYXQgd2FybmluZ3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNDYyZGEyNWU4OWIwYjU4YmY0YzY2MzQ2YzFmY2IzMDg3YzYxYjRiOApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJRnJpIEF1ZyAxNSAxMjowNDoyNSAyMDA4ICswMjAwCgogICAgTUFJTlRBSU5FUlM6IFNvcnQgYXZyMzIgc2VjdGlvbiBhbHBoYWJldGljYWxseQoKICAgIFRoZSByZXN0IG9mIHRoZSBNQUlOVEFJTkVSUyBmaWxlIGFwcGVhcnMgdG8gYmUgc29ydGVkCiAgICBhbG1vc3QtYWxwaGFiZXRpY2FsbHksIGJ1dCBlbnRyaWVzIGZvciB0aGUgbmV3bHkgYWRkZWQgQVZSMzIgYm9hcmRzIHdlcmUKICAgIGFkZGVkIHNvbWV3aGF0IHJhbmRvbWx5LiBUaGlzIHBhdGNoIHNvcnRzIHRoZSBsaXN0IGFscGhhYmV0aWNhbGx5IGFnYWluLgoKICAgIEFsc28gdXBkYXRlIG15IGUtbWFpbCBhZGRyZXNzLiBUaGUgb2xkIG9uZSBzdGlsbCB3b3JrcywgYnV0IGl0IG1heSBub3QKICAgIHdvcmsgZm9yZXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMTNiNTBmZTNiYzA2NWM0ODkxMWZhMzczMjMxNDIxMjgwODU1YTlkNgpBdXRob3I6IE1hcmsgSmFja3NvbiA8bXBmakBtaW1jLmNvLnVrPgpEYXRlOglXZWQgSnVsIDMwIDEzOjA3OjI3IDIwMDggKzAxMDAKCiAgICBhdnIzMjogQWRkIE1JTUMyMDAgYm9hcmQKCiAgICBUaGUgTUlNQzIwMCBib2FyZCBpcyBiYXNlZCBvbiBBdG1lbCdzIE5HVzEwMCBkZXYga2l0LCBidXQgd2l0aCBhbiBleHRyYQogICAgOE1CeXRlIEZMQVNIIGFuZCAxMjhLQnl0ZSBGUkFNLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmsgSmFja3NvbiA8bXBmakBtaW1jLmNvLnVrPgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGRiNzBiODQzMjkzMTVjNTJmNmVjNzdmNWFlNWNhMWFmZTk3MGE5YmIKQXV0aG9yOiBZb3NoaWhpcm8gU2hpbW9kYSA8c2hpbW9kYS55b3NoaWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVdlZCBKdWwgOSAyMTowNzozNCAyMDA4ICswOTAwCgogICAgcnRsODE2OTogYWRkIHN1cHBvcnQgZm9yIFJUTDgxMTBTQ0wKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGEgcHJvYmxlbSB0aGF0IFJUTDgxMTBTQ0wgc3RhcnRlZCB0cmFuc2ZlcgogICAgd2l0aCBhbiBpbmNvcnJlY3QgbWVtb3J5IGFkZHJlc3MuCgogICAgU2lnbmVkLW9mZi1ieTogWW9zaGloaXJvIFNoaW1vZGEgPHNoaW1vZGEueW9zaGloaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA5NDNiODI1YmYxNWU2YTI4YWM4MzI4ZTBmNjQ4OTQ3OGJjZWVmMWVhCkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyNSAxNTo0ODo1MiAyMDA4IC0wNTAwCgogICAgRml4IGRtOTAwMCByZWNlaXZlIHN0YXR1cyBhbmQgbGVuIGxpdHRsZSBlbmRpYW4gaXNzdWUKCiAgICBUaGUgcmVjZWl2ZWQgc3RhdHVzIGFuZCBsZW4gd2FzIGluIGxpdHRsZSBlbmRpYW4KICAgIGZvcm1hdCBhbmQgY2F1c2VkIHRoZSBldGhlcm5ldCB1bmFibGUgdG8gcHJvY2VlZAogICAgZnVydGhlci4gQWRkIF9fbGUxNl90b19jcHUoKSBpbiBkbTkwMDBfcnhfc3RhdHVzXzgvMTYvMzJiaXQoKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBmY2Q2OWExYTU3ZmIyYWY0ZDI2MjAxNDIyMDk1YTRiZTlmMzY5NjNlCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIEF1ZyAxNSAwODoyNDozMiAyMDA4IC0wNTAwCgogICAgQ2xlYW4gdXAgdXNhZ2Ugb2YgaWNhY2hlX2Rpc2FibGUvZGNhY2hlX2Rpc2FibGUKCiAgICBUaGVyZSBpcyBubyBwb2ludCBpbiBkaXNhYmxpbmcgdGhlIGljYWNoZSBvbiA3eHgvNzR4eC84Nnh4IHBhcnRzIGFuZCBub3QKICAgIGFsc28gZmx1c2hpbmcgdGhlIGljYWNoZS4gIEFsbCBjYWxsZXJzIG9mIGludmFsaWRhdGVfbDFfaW5zdHJ1Y3Rpb25fY2FjaGUoKQogICAgY2FsbCBpY2FjaGVfZGlzYWJsZSgpIHJpZ2h0IGFmdGVyLglNYWtlIGl0IHNvIGljYWNoZV9kaXNhYmxlKCkgY2FsbHMKICAgIGludmFsaWRhdGVfbDFfaW5zdHJ1Y3Rpb25fY2FjaGUoKSBmb3IgdXMuCgogICAgQWxzbywgZGNhY2hlX2Rpc2FibGUoKSBhbHJlYWR5IGNhbGxzIGRjYWNoZV9mbHVzaCgpIHNvIHRoZXJlIGlzIG5vIHBvaW50CiAgICBpbiB0aGUgZXhwbGljaXQgY2FsbHMgb2YgZGNhY2hlX2ZsdXNoKCkuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBhMTViMDcxMDRjYTdiYmI3MDkzYzkwMDljOWFlMWI1OGI0MjAyZDEzCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJRnJpIEF1ZyAxNSAwODoyNDozMSAyMDA4IC0wNTAwCgogICAgVXBkYXRlIGxpbnV4IGJvb3RtIHRvIHN1cHBvcnQgZVBBUFIgY2xpZW50IGludGVyZmFjZQoKICAgIFRoZSBlUEFQUiBzcGVjIGhhcyBzb21lIHN1YnRsZSBkaWZmZXJlbmNlcyBmcm9tIHRoZSBjdXJyZW50IGRldmljZQogICAgdHJlZSBiYXNlZCBib290IGludGVyZmFjZSB0byB0aGUgcG93ZXJwYyBsaW51eCBrZXJuZWwuIFRoZSBwb3dlcnBjCiAgICBsaW51eCBrZXJuZWwgY3VycmVudGx5IGlnbm9yZXMgdGhlIGRpZmZlcmVuY2VzIHRoYXQgZVBBUFIgc3BlY2lmaWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYjczNGU1NTU2YTIzOWIzYmU1Zjk2OTNiMmY0YjRiNzM5NjgzZWMxNgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBBdWcgMTggMjM6NTA6MjAgMjAwOCArMDIwMAoKICAgIE1pbm9yIGNvZGUgY2xlYW51cDoga2VlcCBsaXN0cyBzb3J0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBkMDAzOWQ0ZWQyNzVlNmNhMDlmYjQxNzg5NTAyNGFkMDJiZTExOGM0CkF1dGhvcjogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CkRhdGU6CVdlZCBKdWwgMjMgMTk6MTA6MTQgMjAwOCArMDIwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBBRFQ3NDYwIEkyQyBtb25pdG9yIGNoaXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQHVhbS5lcz4KCmNvbW1pdCBlYjU5ZWE0NWFiNzdjMTRiMDkwZWE4NTdkOWVhOWY5MDJmNDBkYjBiCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gSnVsIDE0IDE5OjQ1OjQ1IDIwMDggKzAyMDAKCiAgICB2aWRlbzogQ2xlYW4gZHJpdmVycy92aWRlby9NYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KCmNvbW1pdCA4NzFjMThkZDMwMTc1MjI3MGUxZjc0MzI4Yzg0NmMzMTA0YmUxZTJlCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gSnVsIDE0IDE5OjQ1OjM3IDIwMDggKzAyMDAKCiAgICBydGM6IENsZWFuIGRyaXZlcnMvcnRjL01ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgoKY29tbWl0IGE0YTU0OWI0YjUzYWRmNDBhMGQzODgyY2MzMGFjODEyYThmODQ3YzUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBKdWwgMTQgMTk6NDU6MzUgMjAwOCArMDIwMAoKICAgIGkyYzogQ2xlYW4gZHJpdmVycy9pMmMvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgoKY29tbWl0IDBhODIzYWEyYThhOGMwNjg1ZTczOTAwZjM4N2Q2MDJkN2VkYWZjMGUKQXV0aG9yOiBIYXJhbGQgV2VsdGUgPGxhZm9yZ2VAb3Blbm1va28ub3JnPgpEYXRlOglXZWQgSnVsIDkgMjI6MzA6MzAgMjAwOCArMDgwMAoKICAgIEFkZCAnbGljZW5zZScgY29tbWFuZCB0byBVLUJvb3QgY29tbWFuZCBsaW5lCgogICAgVGhlICdsaWNlbnNlJyBjb21tYW5kIGluY2x1ZGVzIHRoZSBVLUJvb3QgbGljZW5zZSAoR1BMdjIpIGludG8gdGhlCiAgICBhY3R1YWwgYm9vdGxvYWRlciBiaW5hcnkuIFRoZSBsaWNlbnNlIHRleHQgY2FuIGJlIHNob3duIGludGVyYWN0aXZlbHkKICAgIGF0IHRoZSBVLUJvb3QgY29tbWFuZGxpbmUuCgogICAgRm9yIHByb2R1Y3RzIHdoZXJlIHRoZSBjb21tYW5kbGluZSBjYW4gYWN0dWFsbHkgYmUgYWNjZXNzZWQgYnkgdGhlCiAgICBlbmQgdXNlciwgdGhpcyBoZWxwcyB0byBwcmV2ZW50IGluYWR2ZXJ0ZW50IEdQTCB2aW9sYXRpb25zLCBzaW5jZSB0aGUKICAgIEdQTHYyIGxpY2Vuc2UgdGV4dCBjYW4gbm8gbG9uZ2VyIGJlICdmb3Jnb3R0ZW4nIHRvIGJlIGluY2x1ZGVkIGludG8KICAgIHRoZSBwcm9kdWN0LgoKICAgIFRoZSAnbGljZW5zZScgY29tbWFuZCBjYW4gYmUgZW5hYmxlZCBieSBDT05GSUdfQ01EX0xJQ0VOU0UuCgogICAgU2lnbmVkLW9mZi1ieTogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQG9wZW5tb2tvLm9yZz4KCmNvbW1pdCBmZTJjZTU1MDBlYmY0M2Q3OWQyMjcxOTBiZDIzNzAyMzJkNWIxMTNkCkF1dGhvcjogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQGdudW1vbmtzLm9yZz4KRGF0ZToJU3VuIEp1bCA2IDE1OjU2OjM4IDIwMDggKzA4MDAKCiAgICBhZGQgJ3VuemlwJyBjb21tYW5kIHRvIHUtYm9vdCBjb21tYW5kbGluZQoKICAgIFtQQVRDSF0gYWRkIG5ldyAndW56aXAnIGNvbW1hbmQgdG8gdS1ib290IGNvbW1hbmRsaW5lCgogICAgY29tbW9uL2NtZF9tZW0uYzogbmV3IGNvbW1hbmQgInVuemlwIHNyY2FkZHIgZHN0YWRkciBbZHN0c2l6ZV0iIHRvIHVuemlwIGZyb20KICAgIG1lbW9yeSB0byBtZW1vcnksIGFuZCBvcHRpb24gQ09ORklHX0NNRF9VTlpJUCB0byBlbmFibGUgaXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXJuZXIgQWxtZXNiZXJnZXIgPHdlcm5lckBvcGVubW9rby5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBIYXJhbGQgV2VsdGUgPGxhZm9yZ2VAb3Blbm1va28ub3JnPgoKY29tbWl0IDA3ZWZjOWUzMjE2MTljM2RlYzIxMzMxMGMzMmUwMTFhYTZmMDI3ODMKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDYgMTk6Mzc6MTcgMjAwOCAtMDUwMAoKICAgIENoYW5nZSBDRkdfRU5WX1NJWkUgdG8gQ0ZHX0VOVl9TRUNUX1NJWkUgZm9yIFNQSSBzZWN0b3IgZXJhc2UKCiAgICBUaGUgQ0ZHX0VOVl9TSVpFIGlzIG5vdCBzdWl0YWJsZSB1c2VkIGZvciBTUEkgZmxhc2ggZXJhc2UKICAgIHNlY3RvciBzaXplIGlmIENGR19FTlZfU0laRSBpcyBsZXNzIHRoYW4gQ0ZHX0VOVl9TRUNUX1NJWkUuCiAgICBBZGQgY29uZGl0aW9uIGNoZWNrIGlmIENGR19FTlZfU0laRSBpcyBsYXJnZXIgdGhhbgogICAgQ0ZHX0VOVl9TRUNUX1NJWkUsIGNhbGN1bGF0ZSB0aGUgcmlnaHQgbnVtYmVyIG9mIHNlY3RvcnMgZm9yCiAgICBlcmFzaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGNiNGU2NTRjYWZhYmFhMWFjMTgwZDM3YjAwYzhmNjA5NWRhZTljOQpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBdWcgMTEgMTU6NTQ6MjUgMjAwOCArMDAwMAoKICAgIENvbGRGaXJlOiBNdWx0aXBsZSBmaXhlcyBmb3IgTTUyODJFVkIKCiAgICBJbmNvcnJlY3QgQ0ZHX0haIHZhbHVlLCBjaGFuZ2UgMTAwMDAwMCB0byAxMDAwLgogICAgUmVuYW1lICN3YXJpbmcgdG8gI3dhcm5pbmcuIFJBTUJBUjEgdXNlcyB0d2ljZQogICAgaW4gc3RhcnQuUywgcmVuYW1lIHRoZSBsYXRlciB0byBGTEFTSEJBUi4gSW5zZXJ0CiAgICBub3AgZm9yIERSQU0gc2V0dXAuIEFuZCwgZW52X29mZnNldCBpbiBsaW5rZXIgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDEwZGIzYTE3YTI3OGRkM2EyNzY2OGIzMWNiMzJjZGQxNDc2ZTk1MTMKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDExIDE1OjI2OjQzIDIwMDggKzAwMDAKCiAgICBDb2xkRmlyZTogTW92ZSBtNTI4MmV2YiBmcm9tIGJvYXJkIHRvIGJvYXJkL2ZyZWVzY2FsZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTZkZjA5MWQzOTFmNzRiYmYyZGMyZjc5MzFmOWYzYzhmMjM1MjllNApBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBdWcgMTEgMTU6MjU6MDcgMjAwOCArMDAwMAoKICAgIENvbGRGaXJlOiBNb3ZlIG01MjcyYzMgZnJvbSBib2FyZCB0byBib2FyZC9mcmVlc2NhbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY1OWU5YmFkNjI5YTQ4MGY2MDZiMjg2ZDU3MDNhZWY3MTU5ZWRmOTgKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDExIDE1OjIzOjE2IDIwMDggKzAwMDAKCiAgICBDb2xkRmlyZTogTW92ZSBtNTI3MWV2YiBmcm9tIGJvYXJkIHRvIGJvYXJkL2ZyZWVzY2FsZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDUzMTZmOGVjZTgyMDYzMzlhMjA4ZWMwNTJmMDM5Y2QwZjdjYTkyMgpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBdWcgMTEgMTM6NDE6NDkgMjAwOCArMDAwMAoKICAgIENvbGRGaXJlOiBBZGQgTTU0NDUxRVZCIHBsYXRmb3JtIHN1cHBvcnQgZm9yIE1DRjU0NDV4CgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5MjJjZDc1MTU1OTdlOWEyYzA3ZDY4ZTJhNjI0MGIwYjdiMGYwMTM2CkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyA2IDE5OjE0OjA4IDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogQWRkIFNlcmlhbCBGbGFzaCBzdXBwb3J0IGZvciBNNTQ0NTVFVkIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDlmNzUxNTUxNDU2ODI4YjJkMGZmNDE3ZjEwOTU5ZmIwYzcxMTBiZDAKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDIzIDIwOjM4OjUzIDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogSW1wbGVtZW50IFNCRiBmZWF0dXJlIGZvciBNNTQ0NUVWQgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTczMjNiYmEyMjkyMDNhYWUyNjA0YWZkZTEzMWFiNDdiYWQ0ZWFkYwpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgMjMgMTc6NTM6MzYgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBBZGQgU1NQSSBmZWF0dXJlIGZvciBNQ0Y1NDQ1eAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjJkMDIyZDFhYzNmNTliZmZhOWNlYzI0OTM0MWU3N2FlYTE2OGFiYwpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgMjMgMTc6Mzc6MTAgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBVc2UgQ0ZJIEZsYXNoIGRyaXZlciBmb3IgTTU0NDU1RVZCCgogICAgUmVtb3ZlIG5vbi1jb21tb24gZmxhc2ggZHJpdmVyIGluCiAgICBib2FyZC9mcmVlc2NhbGUvbTU0NDU1ZXZiL2ZsYXNoLmMuIFRoZSBub24tY2ZpIGZsYXNoIHdpbGwKICAgIHVzZSBDT05GSUdfRkxBU0hfQ0ZJX0xFR0FDWSB0byBjb25maWd1cmUgdGhlIGZsYXNoCiAgICBhdHRyaWJ1dGUuCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2ZDMzYzZhY2ZhMzViMTE0NGQ0NmZmYmZmN2UyOWVlNzk2OTI5MGQwCkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1bCAyMyAxNzoxMTo0NyAyMDA4IC0wNTAwCgogICAgQ29sZEZpcmU6IEFkZCBNNTI1M0RFTU8gcGxhdGZvcm0gc3VwcG9ydCBmb3IgTUNGNTI1MwoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODBiYTYxZmQ4MjU2OWFmNDBlMDRkNGEwODkyNTdiODE4ODE4ODRmMgpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgNiAxNDoxNzowOSAyMDA4IC0wNTAwCgogICAgQ29sZEZpcmU6IFJhaXNlIE01MjUzRVZCRSB1YXJ0IGJhdWRyYXRlIHRvIDExNTIwMCBicHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQzNjEzMDdlNzNjZTFmNmZjNjg3NjAxMjNmMzdkNDg3NmY4NTFmM2UKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDYgMTQ6MTE6MzYgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBGaXggTTUyNTNFVkIgZHJhbSBicmluZyB1cCBpc3N1ZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGIwNzA4MDkzZTE1YjQxMjI5NjMyOGJmODEzMjVjZjliNjlmZTUxMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMTQgMTQ6NDE6MDYgMjAwOCArMDIwMAoKICAgIENvZGluZyBTdHlsZSBjbGVhbnVwLCB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2OGNmMTlhYWU0OGYyOTY5ZWM3MDY2OTYwNGQwZDc3NmYwMmM4YmM0CkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTMgMTg6MjQ6MDUgMjAwOCAtMDUwMAoKICAgIHNvY3JhdGVzOiBVcGRhdGUgTkFORCBkcml2ZXIgdG8gbmV3IEFQSS4KCiAgICBBbHNvLCBmaXggc29tZSBtaW5vciBmb3JtYXR0aW5nIGlzc3VlcywgYW5kIHNpbXBsaWZ5IHRoZSBoYW5kbGluZyBvZgogICAgInN0YXRlIiBmb3Igd3JpdGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJhMjJkMTBmMzllYWVlZGQwMzVlODI2NTYxNmUzMWZmODhlMzE0ZDUKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxMyAxODowMzo0MCAyMDA4IC0wNTAwCgogICAgcXVhZDEwMGhkOiBVcGRhdGUgTkFORCBkcml2ZXIgdG8gbmV3IEFQSS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNjRjYjY1MmE4YTg0YzVjMzRkMGFmY2JkN2ZmZWY4ODZhYTFkODM4CkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTMgMTc6NTM6NDggMjAwOCAtMDUwMAoKICAgIG01MzczZXZiOiBVcGRhdGUgTkFORCBkcml2ZXIgdG8gbmV3IEFQSS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxYTIzYTE5N2M4NzIyYjgwNWY0MDg5NTU0NGJiZGIxYTY0OGMxYzgyCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTMgMTc6MDQ6MzAgMjAwOCAtMDUwMAoKICAgIHMzYzI0eDA6IFVwZGF0ZSBOQU5EIGRyaXZlciB0byBuZXcgQVBJLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFhNWY3NWYyMGRiOGE3MTAzZmFkOWMzNGQ2ZjExOTNlMTBkMTg5MGYKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxMyAxNTo1NjowMCAyMDA4IC0wNTAwCgogICAgYXQ5MTogVXBkYXRlIGJvYXJkIE5BTkQgZHJpdmVycyB0byBjdXJyZW50IEFQSS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkNDM4ZDUwODQ4ZTk0MjUyODZlNWZiMDQ5M2UwYWZmYjVhMGIxZTFiCkF1dGhvcjogS3l1bmdtaW4gUGFyayA8a21wYXJrQGluZnJhZGVhZC5vcmc+CkRhdGU6CVdlZCBBdWcgMTMgMDk6MTE6MDIgMjAwOCArMDkwMAoKICAgIEZpeCBPbmVOQU5EIGJ1aWxkIGJyZWFrCgogICAgU2luY2UgcGFnZSBzaXplIGZpZWxkIGlzIGNoYW5nZWQgZnJvbSBvb2JibG9jayB0byB3cml0ZXNpemUuIEJ1dCBPbmVOQU5EIGlzIG5vdCB1cGRhdGVkLgogICAgLSBmaXggYnVmZmVycmFtIG1hbmFnZW1lbnQgYXQgZXJhc2Ugb3BlcmF0aW9uCiAgICBUaGlzIHBhdGNoIGluY2x1ZGVzIHRoZSBOQU5EL09uZU5BTkQgc3RhdGUgZmlsZWQgdG9vLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5NDgzZGY2NDA4YzI1ZjE2MDYwNDMyZGUzODY4OTAxZTM1MmUyM2JjCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIEF1ZyAxMyAwMTo0MDo0MyAyMDA4ICswMjAwCgogICAgZHJpdmVycy9tdGQvbmFuZF9sZWdhY3k6IE1vdmUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gdG8gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGNjNGEwY2VlYWM1NDYyMTA2MTcyZDBjYzlkOWQ1NDIyMzNhYTNhYjIKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgQXVnIDEzIDAxOjQwOjQzIDIwMDggKzAyMDAKCiAgICBkcml2ZXJzL210ZC9uYW5kOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgcmVuYW1lIENGR19OQU5EX0xFR0FDWSB0byBDT05GSUdfTkFORF9MRUdBQ1kKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDRmYjA5YjgxOTIwZTVkZmRmYzQ1NzY4ODMxODY3MzNmMGJkNjA1OWMKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgQXVnIDEzIDAxOjQwOjQyIDIwMDggKzAyMDAKCiAgICBkcml2ZXJzL210ZC9vbmVuYW5kOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAwMGIxODgzYTRjYWM1OWQ5N2NkMjk3YjFhM2EzOThkYjg1OTgyODY1CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIEF1ZyAxMyAwMTo0MDo0MiAyMDA4ICswMjAwCgogICAgZHJpdmVycy9tdGQ6IE1vdmUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gdG8gTWFrZWZpbGUKCiAgICByZW5hbWUgQ0ZHX0ZMQVNIX0NGSV9EUklWRVIgdG8gQ09ORklHX0ZMQVNIX0NGSV9EUklWRVIKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDdiYTQ0YTU1MjFjZGI3ZmExYzcyODY0MDI1Y2RlMWUyMWE2ZjY5MjEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgQXVnIDEzIDAxOjQwOjQxIDIwMDggKzAyMDAKCiAgICBkcml2ZXJzL3FlOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBhYjY4NzhjN2JjNjhhN2I1ZTViNzMxNjU1YmRjMTMyMjFiYmZjNDkzCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIEF1ZyAxMyAwMTo0MDo0MCAyMDA4ICswMjAwCgogICAgZHJpdmVycy9wY2k6IE1vdmUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gdG8gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDU1ZDZkMmQzOWZlM2ZlODc4MDJlMzk5YWExNzUzOTM2OGI0OTVkMmUKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgQXVnIDEzIDAxOjQwOjQwIDIwMDggKzAyMDAKCiAgICBkcml2ZXJzL21pc2M6IE1vdmUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gdG8gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDY1ZTQxZWEwNTQ4Yjg2ZTNkNzg5MmRlZmFjOGU0ZGMxZWE3MGFlZDEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgQXVnIDEzIDAxOjQwOjQwIDIwMDggKzAyMDAKCiAgICBkcml2ZXJzL2lucHV0OiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA4OGY1N2UwOTMxMTRhNDRhYTlhODU4ZDUyYjA5OWJjYzUyMDM0YThjCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIEF1ZyAxMyAwMTo0MDozOSAyMDA4ICswMjAwCgogICAgZHJpdmVycy9kbWE6IE1vdmUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gdG8gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDFhMDI4MDZjNGIxYjRhMDlhZDRlOTVkM2FhYzM3ODM4ODllNWY4ZDcKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgQXVnIDEzIDAxOjQwOjM5IDIwMDggKzAyMDAKCiAgICBkcml2ZXJzL2Jsb2NrOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAxYTZmZmJmYWY0MzUzYmVjMzc5ZWQxZmNmYzU0YjZmMWEzMGFmMDlhCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIEF1ZyAxMyAwMTo0MDozOSAyMDA4ICswMjAwCgogICAgc2VyaWFsOiBtb3ZlIENGR19OUzk3NTBfVUFSVCB0byBDT05GSUdfTlM5NzUwX1VBUlQKCiAgICBtb3ZlIGFsc28gY29uZGl0aW9uYWwgY29tcGlsYXRpb24gdG8gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDZjNThhMDMwZjg2ODI5ZmE0ZjBkNDMzN2NmNGI3OTRjNDFhMTgyM2UKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgQXVnIDEzIDAxOjQwOjM4IDIwMDggKzAyMDAKCiAgICBzZXJpYWw6IG1vdmUgQ0ZHX1NDSUZfQ09OU09MRSB0byBDT05GSUdfU0NJRl9DT05TT0xFCgogICAgbW92ZSBhbHNvIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBkNmU5ZWU5MmU4OTBmNjc1OTRhYjE1MDY4OTUxMGRmMzYxMTMzZWFkCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIEF1ZyAxMyAwMTo0MDozOCAyMDA4ICswMjAwCgogICAgY29tbW9uOiBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBmNWFjYjlmZDliYmExMTYwZGUzZWYzNDljN2QzM2ZlNTEwZWRhMjg2CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIEF1ZyAxMyAwMTo0MDowOSAyMDA4ICswMjAwCgogICAgbXgzMTogbW92ZSBmcmVlc2NhbGUncyBteDMxIGJvYXJkcyB0byB2ZW5kb3IgYm9hcmQgZGlyCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA4ZWQyZjVmOTUwZTI1ODEyMTRkMjBiMDExYThmMjdhNjM5NmQ2NWQyCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IEp1bCA1IDIzOjExOjExIDIwMDggKzAyMDAKCiAgICBhdDkxOiBtb3ZlIGFyY2gtYXQ5MXNhbTkgdG8gYXJjaC1hdDkxCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAxOTVjY2ZjNTk5MWQ0ODc2NGIyNTE5OTQxZTM1MDdmNjkzODUxZDVkCkF1dGhvcjogRmF0aGkgQk9VRFJBIDxmYWJvQGRlYmlhbi5vcmc+CkRhdGU6CVdlZCBBdWcgNiAxMDowNjoyMCAyMDA4ICswMjAwCgogICAgT25lTkFORDogRmlsbCBpbiBNVEQgZnVuY3Rpb24gcG9pbnRlcnMgZm9yIE9uZU5BTkQuCgogICAgb25lbmFuZF9wcmludF9kZXZpY2VfaW5mbygpOgogICAgIC0gTm93IHJldHVybnMgYSBzdHJpbmcgdG8gYmUgcGxhY2VkIGluIG10ZC0+bmFtZSwKICAgICAgIHJhdGhlciB0aGFuIGNhbGxpbmcgcHJpbnRmLgogICAgIC0gUmVtb3ZlIHZlcmJvc2UgcGFyYW1ldGVyIGFzIGl0IGJlY29tZXMgdXNlbGVzcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBGYXRoaSBCb3VkcmEgPGZhYm9AZGViaWFuLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFhNjQ2NjQzYjZiYzI1MGNiM2E0OTY2YmY3Mjg4NzZlMGMxMGQzMjkKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVdlZCBBdWcgNiAyMTo0MjowNyAyMDA4ICswMjAwCgogICAgbmFuZF9zcGw6IFN1cHBvcnQgcGFnZS1hbGlnbmVkIHJlYWQgaW4gbmFuZF9sb2FkLCB1c2UgY2hpcHNlbGVjdAoKICAgIFN1cHBvcnRpbmcgcGFnZS1hbGlnbmVkIHJlYWRzIGRvZXNuJ3QgaW5jdXJlIGFueSBzaW5pZmljYW50IG92ZXJoZWFkLCBqdXN0CiAgICBhIHNtYWxsIGNoYW5nZSBpbiB0aGUgYWxnb3JpdGhtLiBBbHNvIHJlcGxhY2UgaW5fOCB3aXRoIHJlYWRiLCBzaW5jZSB0aGVyZQogICAgaXMgbm8gaW5fOCBvbiBBUk0uCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGYzMmQ3NzYwYTU4ZmU3Mzk4MWI2ZWRjMGIwNzUxNTY1ZDJkYWE0YwpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDUgMTE6MTU6NTkgMjAwOCAtMDUwMAoKICAgIE5BTkQgYm9vdDogVXBkYXRlIGxhcmdlIHBhZ2Ugc3VwcG9ydCBmb3IgY3VycmVudCBBUEkuCgogICAgQWxzbywgcmVtb3ZlIHRoZSBjdHJsIHZhcmlhYmxlIGluIGZhdm9yIG9mIHBhc3NpbmcgdGhlIGNvbnN0YW50cwogICAgZGlyZWN0bHksIGFuZCByZW1vdmUgcmVkdW5kYW50ICh1OCkgY2FzdHMuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTRjMDk1MDg1NDVkMWM0NTYxN2JhNDUzOTFjMDNjMDNjYmMzNjBiOQpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVuIDMwIDE0OjEzOjI4IDIwMDggLTA1MDAKCiAgICBOQU5EIGJvb3Q6IE1QQzgzMTNFUkRCIHN1cHBvcnQKCiAgICBOb3RlIHRoYXQgd2l0aCBvbGRlciBib2FyZCByZXZpc2lvbnMsIE5BTkQgYm9vdCBtYXkgb25seSB3b3JrIGFmdGVyIGEKICAgIHBvd2VyLW9uIHJlc2V0LCBhbmQgbm90IGFmdGVyIGEgd2FybSByZXNldC4gIEkgZG9uJ3QgaGF2ZSBhIG5ld2VyIGJvYXJkCiAgICB0byB0ZXN0IG9uOyBpZiB5b3UgaGF2ZSBhIGJvYXJkIHdpdGggYSAzM01IeiBjcnlzdGFsLCBwbGVhc2UgbGV0IG1lIGtub3cKICAgIGlmIGl0IHdvcmtzIGFmdGVyIGEgd2FybSByZXNldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhY2RhYjVjMzNmMWVhNmY1ZTA4ZjA2ZjA4YmM2NGFmMjNmZjQwZDcxCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdW4gMjYgMTQ6MDY6NTIgMjAwOCAtMDUwMAoKICAgIG1wYzgzMTNlcmRiOiBFbmFibGUgTkFORCBpbiBjb25maWcuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzNkYjhjNjQ5YzZhYjNkYTJmMTQxMWM0YzZkNjFhZWNlYTA1NGFhNApBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJVGh1IEp1bCAzMSAxMjozODoyNiAyMDA4ICswMjAwCgogICAgTkFORDogRG8gbm90IHdyaXRlIG9yIHJlYWQgYSB3aG9sZSBibG9jayBpZiBpdCBpcyBsYXJnZXIgdGhhbiB0aGUgZW52aXJvbm1lbnQKCiAgICBFbnZpcm9ubWVudCBjYW4gYmUgc21hbGxlciB0aGFuIE5BTkQgYmxvY2sgc2l6ZSwgZG8gbm90IG5lZWQgdG8gcmVhZCBhIHdob2xlCiAgICBibG9jayBhbmQgbWluaW11bSBmb3Igd3JpdGluZyBpcyBvbmUgcGFnZS4gQWxzbyByZW1vdmUgYW4gdW51c2VkIHZhcmlhYmxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVhZmNhYmQxNWYwMGMxNDIxNTYyMzVjNTE5ZmNjNTViMTA5OTMyNDEKQXV0aG9yOiBNYXJjZWwgWmlzd2lsZXIgPG1hcmNlbEB6aXN3aWxlci5jb20+CkRhdGU6CVN1biBKdW4gMjIgMTY6MzA6MDYgMjAwOCArMDIwMAoKICAgIE5BTkQ6IGNoaXAtPnN0YXRlIGRvZXMgbm90IGFsd2F5cyBnZXQgc2V0LgoKICAgIEZpeGVzIGFuIGlzc3VlIHdpdGggY2hpcC0+c3RhdGUgbm90IGFsd2F5cyBiZWluZyBzZXQgY2F1c2luZyB0cm91Ymxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJjZWwgWmlzd2lsZXIgPG1hcmNlbEB6aXN3aWxlci5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxM2YwZmQ5NGUzY2FlNmY4YTBkOWZiYTVkMzY3ZTMxMWVkYzhlYmRlCkF1dGhvcjogSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+CkRhdGU6CU1vbiBKdW4gMzAgMTU6MzQ6NDAgMjAwOCArMDIwMAoKICAgIE5BTkQ6IFNjYW4gYmFkIGJsb2NrcyBsYXppbHkuCgogICAgUmF0aGVyIHRoYW4gc2Nhbm5pbmcgb24gYm9vdCwgc2NhbiB1cG9uIHRoZSBmaXJzdCBhdHRlbXB0IHRvIGNoZWNrIHRoZQogICAgYmFkbmVzcyBvZiBhIGJsb2NrLiAgVGhpcyBzcGVlZHMgdXAgYm9vdCB3aGVuIG5vdCB1c2luZyBOQU5ELCBhbmQgcmVkdWNlcwogICAgdGhlIGxpa2VsaWhvb2Qgb2YgbmVlZGluZyB0byByZWZsYXNoIHZpYSBKVEFHIGlmIE5BTkQgYmVjb21lcwogICAgbm9uZnVuY3Rpb25hbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRmYmY2MTdmZjA1NWU0MjE2Zjc4ZDM1OGIwODY3YzU0ODkxNmQxNGIKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1biAxMiAxMzoyMDoxNiAyMDA4IC0wNTAwCgogICAgTkFORCByZWFkL3dyaXRlIGZpeAoKICAgIEltcGxlbWVudCBibG9jay1za2lwcGluZyByZWFkL3dyaXRlLCBiYXNlZCBvbiBhIHBhdGNoIGZyb20KICAgIE1vcnRlbiBFYmJlbGwgSGVzdGVucyA8bW9ydGVuLmhlc3RuZXNAdGFuZGJlcmcuY29tPi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNb3J0ZW4gRWJiZWxsIEhlc3RuZXMgPG1vcnRlbi5oZXN0bmVzQHRhbmRiZXJnLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk4NGUwM2NkZjE0MzFiYjU5M2FlYWExYjc0YzQ0NWQ2MTZmOTU1ZDMKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1biAxMiAxMzoxMzoyMyAyMDA4IC0wNTAwCgogICAgTkFORDogQWx3YXlzIHNraXAgYmxvY2tzIG9uIHJlYWQvd3JpdGUvYm9vdC4KCiAgICBVc2Ugb2YgdGhlIG5vbi1za2lwcGluZyB2ZXJzaW9ucyB3YXMgYWxtb3N0IGFsd2F5cyAoaWYgbm90IGFsd2F5cykKICAgIGFuIGVycm9yLCBhbmQgbm8gdmFsaWQgdXNlIGNhc2UgaGFzIGJlZW4gaWRlbnRpZmllZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlMWMzZGJhZGEzNDk5OTI4NzU5MzQ1NzVjOTdiMzI4YWIyY2IzM2NhCkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CVRodSBKdW4gMTIgMTE6MTA6MjEgMjAwOCAtMDUwMAoKICAgIG5hbmQ6IGZzbF91cG06IGNvbnZlcnQgdG8gdXBkYXRlZCBNVEQgTkFORCBpbmZyYXN0cnVjdHVyZQoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzAwMjUzMzA2YWNjNzJiMWIyZTlmYWYwOTg3Zjg2NTUxMTUxZDdjZgpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWF5IDIyIDE1OjAyOjQ2IDIwMDggLTA1MDAKCiAgICBmc2xfZWxiY19uYW5kOiBIYXJkLWNvZGUgdGhlIEZCQVIvRlBBUiBzcGxpdC4KCiAgICBUaGUgaGFyZHdhcmUgaGFzIHNlcGFyYXRlIHJlZ2lzdGVycyBmb3IgYmxvY2sgYW5kIHBhZ2Utd2l0aGluLWJsb2NrLAogICAgYnV0IHRoZSBkaXZpc2lvbiBiZXR3ZWVuIHRoZSB0d28gaGFzIG5vIGFwcGFyZW50IHJlbGF0aW9uIHRvIHRoZQogICAgYWN0dWFsIGVyYXNlIGJsb2NrIHNpemUgb2YgdGhlIE5BTkQgY2hpcC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5YzgxNGIwYTcxNmFhZTg4NGJlYzk3N2I5YTAzMmRmYTU5Y2ZiNzlhCkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CUZyaSBNYXIgMjggMjI6MTA6NTQgMjAwOCArMDMwMAoKICAgIGZzbF9lbGJjX25hbmQ6IHdvcmthcm91bmQgZm9yIGhhbmdzIGR1cmluZyBuYW5kIHdyaXRlCgogICAgVXNpbmcgY3VycmVudCBkcml2ZXIgZWxiYyBzb21ldGltZXMgaGFuZ3MgZHVyaW5nIG5hbmQgd3JpdGUuIFJlYWRpbmcgYmFjawogICAgbGFzdCBieXRlIGhlbHBzIHRob3VnaCAodGhhbmtzIHRvIFNjb3R0IFdvb2QgZm9yIHRoZSBpZGVhKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDlmZDAyMGQ2YjRiMzZiOWZiNjdjZDgzNGJjMWFlN2ZkYmExNWVlOWUKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE1hciAyMSAxNjoxMjo1MSAyMDA4IC0wNTAwCgogICAgRnJlZXNjYWxlIGVMQkMgRkNNIE5BTkQgZHJpdmVyCgogICAgVGhpcyBpcyBhIGRyaXZlciBmb3IgdGhlIEZsYXNoIENvbnRyb2wgTWFjaGluZSBvZiB0aGUgZW5oYW5jaGVkIExvY2FsIEJ1cwogICAgQ29udHJvbGxlciBmb3VuZCBvbiBzb21lIEZyZWVzY2FsZSBjaGlwcyAoc3VjaCBhcyB0aGUgbXBjODMxMyBhbmQgdGhlCiAgICBtcGM4Mzc5KS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0MWVmOGM3MTZlOTNmZGY1MGVmZTljMWJhNzMzY2E2Njc1ZGFhY2E2CkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXIgMTggMTU6Mjk6MTQgMjAwOCAtMDUwMAoKICAgIERvbid0IHBhbmljIGlmIGEgY29udHJvbGxlciBkcml2ZXIgZG9lcyBlY2MgaXRzIG93biB3YXkuCgogICAgU29tZSBoYXJkd2FyZSwgc3VjaCBhcyB0aGUgZW5oYW5jZWQgbG9jYWwgYnVzIGNvbnRyb2xsZXIgdXNlZCBvbiBzb21lCiAgICBtcGM4M3h4IGNoaXBzLCBkb2VzIGVjYyB0cmFuc3BhcmVudGx5IHdoZW4gcmVhZGluZyBhbmQgd3JpdGluZyBkYXRhLCByYXRoZXIKICAgIHRoYW4gcHJvdmlkaW5nIGEgZ2VuZXJpYyBjYWxjdWxhdGUvY29ycmVjdCBtZWNoYW5pc20gdGhhdCBjYW4gYmUgZXhwb3J0ZWQgdG8KICAgIHRoZSBuYW5kIHN1YnN5c3RlbS4KCiAgICBUaGUgc3Vic3lzdGVtIHNob3VsZCBub3QgQlVHKCkgd2hlbiBjYWxjdWxhdGUsIGNvcnJlY3QsIG9yIGh3Y3RsIGFyZQogICAgbWlzc2luZywgaWYgdGhlIG1ldGhvZHMgdGhhdCBjYWxsIHRoZW0gaGF2ZSBiZWVuIG92ZXJyaWRkZW4uCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTUyYjM0ZDQwYThhNjQ2ZTNkMTE2MzhlYTg3OTdlOTYzOThkYmExMwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEphbiAxMCAxODo0NzozMyAyMDA4ICswMTAwCgogICAgTkFORDogTWFrZSBOQU5EIGRyaXZlciBsZXNzIHZlcmJvc2UgcGVyIGRlZmF1bHQKCiAgICBUaGlzIHBhdGNoIHR1cm5zIG9mZiBwcmludGluZyBvZiBiYWQgYmxvY2tzIHBlciBkZWZhdWx0IHVwb24gYm9vdHVwLgogICAgVGhpcyBjYW4gYWx3YXlzIGJlIHNob3duIHZpYSB0aGUgIm5hbmQgYmFkIiBjb21tYW5kIGxhdGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmZTU2YTI3NzJlNWM1OTU3N2RmOTA2MTYzZDBkNGIyOWIwNTYxNDBlCkF1dGhvcjogU2VyZ2V5IEt1YnVzaHluIDxrc2lAa29pOC5uZXQ+CkRhdGU6CVdlZCBKYW4gOSAxNTozNjoyMCAyMDA4ICswMTAwCgogICAgTkFORDogRGF2aW5jaSBkcml2ZXIgdXBkYXRlcwoKICAgIEhlcmUgY29tZXMgYSB0cml2aWFsIHBhdGNoIHRvIGNwdS9hcm05MjZlanMvZGF2aW5jaS9uYW5kLmMuIFVuZm9ydHVuYXRlbHkgSQogICAgZG9uJ3QgaGF2ZSBoYXJkd2FyZSBoYW5keSBzbyBJIGNhbiBub3QgdGVzdCBpdCBhdCB0aGUgbW9tZW50IGJ1dCBjaGFuZ2VzIGFyZQogICAgcmF0aGVyIHRyaXZpYWwgc28gaXQgc2hvdWxkIHdvcmsuIEl0IHdvdWxkIGJlIG5pY2UgaWYgc29tZWJvZHkgd2l0aCBhCiAgICBoYXJkd2FyZSBjaGVja2VkIGl0IGFueXdheXMuCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2V5IEt1YnVzaHluIDxrc2lAa29pOC5uZXQ+Cgpjb21taXQgZGVhYzkxM2VmZmQ4ZDgwNTM1YzlmZjQ2ODdiNmZjZGZmNTQwYzU1NApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IEphbiA1IDE2OjUwOjMyIDIwMDggKzAxMDAKCiAgICBOQU5EOiBGaXggY29tcGlsYXRpb24gd2FybmluZyBhbmQgc21hbGwgY29kaW5nIHN0eWxlIGlzc3VlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGM1NjhmNzdhY2RmODk2ZmMzZGQ2NDEzY2U1MzIwNWIxN2JhODA5YTMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gNSAxNjo0OTozNyAyMDA4ICswMTAwCgogICAgTkFORDogVXBkYXRlIG5hbmRfc3BsIGRyaXZlciB0byBtYXRjaCB1cGRhdGVkIG5hbmQgc3Vic3lzdGVtCgogICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBOQU5EIGJvb3RpbmcgZHJpdmVyIG5hbmRfc3BsL25hbmRfYm9vdC5jIHRvIG1hdGNoCiAgICB0aGUgbmV3IGluZnJhc3RydWN0dXJlIGZyb20gdGhlIHVwZGF0ZWQgTkFORCBzdWJzeXN0ZW0uIFRoaXMgTkFORAogICAgc3Vic3lzdGVtIHdhcyByZWNlbnRseSBzeW5jZWQgYWdhaW4gd2l0aCB0aGUgTGludXggMi42LjIyIE1URC9OQU5ECiAgICBzdWJzeXN0ZW0uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDNkZjJlY2UwZjBmYmJhNDdkMjdmMDJmZmY5NmM1MzM3MzJiOThjMTQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gNSAxNjo0Nzo1OCAyMDA4ICswMTAwCgogICAgTkFORDogVXBkYXRlIDR4eCBOREZDIGRyaXZlciB0byBtYXRjaCB1cGRhdGVkIG5hbmQgc3Vic3lzdGVtCgogICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSA0eHggTkFORCBkcml2ZXIgbmRmYy5jIHRvIG1hdGNoIHRoZSBuZXcKICAgIGluZnJhc3RydWN0dXJlIGZyb20gdGhlIHVwZGF0ZWQgTkFORCBzdWJzeXN0ZW0uIFRoaXMgTkFORAogICAgc3Vic3lzdGVtIHdhcyByZWNlbnRseSBzeW5jZWQgYWdhaW4gd2l0aCB0aGUgTGludXggMi42LjIyIE1URC9OQU5ECiAgICBzdWJzeXN0ZW0uCgogICAgVGVzdGVkIHN1Y2Nlc3NmdWxseSBvbiBBTUNDIFNlcXVvaWEgYW5kIEJhbWJvby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTIwNzIyNjQ1MjhlYmEzMzczN2JjOTY3NGUxOWYwZTkyNWZmZGEyMwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IEphbiA1IDE2OjQzOjI1IDIwMDggKzAxMDAKCiAgICBOQU5EOiBDaGFuZ2UgbmFuZF93YWl0X3JlYWR5KCkgdG8gbm90IGNhbGwgbmFuZF93YWl0KCkKCiAgICBUaGlzIHBhdGNoIGNoYW5nZXMgbmFuZF93YWl0X3JlYWR5KCkgdG8gbm90IGp1c3QgY2FsbCBuYW5kX3dhaXQoKSwKICAgIHNpbmNlIHRoaXMgd2lsbCBzZW5kIGEgbmV3IGNvbW1hbmQgdG8gdGhlIE5BTkQgY2hpcC4gV2UganVzdCB3YW50IHRvCiAgICB3YWl0IGZvciB0aGUgY2hpcCB0byBiZWNvbWUgcmVhZHkgaGVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOWFkNzU0ZmVmNTA1MzE0NGRhZWQzYjAwN2FkYWYxYzliZWM2NTRjOQpBdXRob3I6IFdpbGxpYW0gSnV1bCA8d2lsbGlhbS5qdXVsQGRhdGFyZXNwb25zLm5vPgpEYXRlOglGcmkgRGVjIDE0IDE2OjMzOjQ1IDIwMDcgKzAxMDAKCiAgICBtYWtlIG5hbmQgZHVtcCBhbmQgbmFuZCBkdW1wLm9vYiB3b3JrCgogICAgU2lnbmVkLW9mZi1ieTogV2lsbGlhbSBKdXVsIDx3aWxsaWFtLmp1dWxAdGFuZGJlcmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDNlYTM2ZmI4ZmRjYmM2ZTI2ZjBjYWZmZTgwOGM2MzYzM2IxODgzOApBdXRob3I6IFdpbGxpYW0gSnV1bCA8d2lsbGlhbS5qdXVsQGRhdGFyZXNwb25zLm5vPgpEYXRlOglNb24gTm92IDE5IDE0OjQ2OjAwIDIwMDcgKzAxMDAKCiAgICBtb3ZpbmcgZmlsZXMgZnJvbSB5YWZmczIvZGlyZWN0LyB0byB5YWZmczIvIGFuZCBkZWxldGluZyBhbGwgc3ltbGlua3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBXaWxsaWFtIEp1dWwgPHdpbGxpYW0uanV1bEB0YW5kYmVyZy5jb20+Cgpjb21taXQgOTg4MjRjZTNmOTVlNmM0ZDA4ZDQzOWI3NzljMGFjYjAwNDgwNDVhNgpBdXRob3I6IFdpbGxpYW0gSnV1bCA8d2lsbGlhbS5qdXVsQHRhbmRiZXJnLmNvbT4KRGF0ZToJVHVlIEp1biAxMCAxNjoxODoxMyAyMDA4IC0wNTAwCgogICAgQ2xlYW4gb3V0IHVubmVlZGVkIGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogV2lsbGlhbSBKdXVsIDx3aWxsaWFtLmp1dWxAdGFuZGJlcmcuY29tPgoKY29tbWl0IGVjMjlhMzJiNWE3MWIyMDNmN2Q5MDg3ZjFmNGQ3ODZlN2YxM2RkMjMKQXV0aG9yOiBXaWxsaWFtIEp1dWwgPHdpbGxpYW0uanV1bEBkYXRhcmVzcG9ucy5ubz4KRGF0ZToJRnJpIE5vdiAxNiAwODo0NDoyNyAyMDA3ICswMTAwCgogICAgQ3JlYXRlIHN5bWxpbmtzIGZyb20geWFmZnMyL2RpcmVjdCB0byB5YWZmczIKCiAgICBTaWduZWQtb2ZmLWJ5OiBXaWxsaWFtIEp1dWwgPHdpbGxpYW0uanV1bEB0YW5kYmVyZy5jb20+Cgpjb21taXQgOTBlZjExN2I2ODM4N2Q2Njc2MzI5MWFmMDExNzY3NzY0NDE2NjYxMQpBdXRob3I6IFdpbGxpYW0gSnV1bCA8d2lsbGlhbS5qdXVsQGRhdGFyZXNwb25zLm5vPgpEYXRlOglUaHUgTm92IDE1IDEyOjIzOjU3IDIwMDcgKzAxMDAKCiAgICBJbmNvcnBvcmF0ZSB5YWZmczIgaW50byBVLWJvb3QKCiAgICBUbyB1c2UgWUFGRlMyIGRlZmluZSBDT05GSUdfWUFGRlMyCgogICAgU2lnbmVkLW9mZi1ieTogV2lsbGlhbSBKdXVsIDx3aWxsaWFtLmp1dWxAdGFuZGJlcmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGU4Y2M4YmQ5MjI1N2RhMmUxZGY4OGNiYzk4NWUxNjZlNDcyY2U2MQpBdXRob3I6IFdpbGxpYW0gSnV1bCA8d2lsbGlhbS5qdXVsQGRhdGFyZXNwb25zLm5vPgpEYXRlOglUaHUgTm92IDE1IDExOjEzOjA1IDIwMDcgKzAxMDAKCiAgICBZQUZGUzIgaW1wb3J0CgogICAgRGlyZWN0IGltcG9ydCBvZiB5YWZmcyBhcyBhIHRhcmJhbGwgYXMgb2YgMjAwNzExMTMgZnJvbSB0aGVpciBwdWJsaWMKICAgIENWUy13ZWIgYXQgaHR0cDovL3d3dy5hbGVwaDEuY28udWsvY2dpLWJpbi92aWV3Y3ZzLmNnaS95YWZmczIvCgogICAgVGhlIGNvZGUgY2FuIGFsc28gYmUgaW1wb3J0ZWQgb24gdGhlIGNvbW1hbmQgbGluZSB3aXRoOgogICAgZXhwb3J0IENWU1JPT1Q9OnBzZXJ2ZXI6YW5vbnltb3VzQGN2cy5hbGVwaDEuY28udWs6L2hvbWUvYWxlcGgxL2N2cyBjdnMgbG9nb24KICAgIChIaXQgcmV0dXJuIHdoZW4gYXNrZWQgZm9yIGEgcGFzc3dvcmQpCiAgICBjdnMgY2hlY2tvdXQgeWFmZnMyCgogICAgU2lnbmVkLW9mZi1ieTogV2lsbGlhbSBKdXVsIDx3aWxsaWFtLmp1dWxAdGFuZGJlcmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RpZyBPbHNlbiA8c3RpZy5vbHNlbkB0YW5kYmVyZy5jb20+Cgpjb21taXQgMzA0M2MwNDVkNWE5ODk3ZmFiYTdkNWM3MjE4YzJmNGQwNmNkMDAzOApBdXRob3I6IFdpbGxpYW0gSnV1bCA8d2lsbGlhbS5qdXVsQGRhdGFyZXNwb25zLm5vPgpEYXRlOglXZWQgTm92IDE0IDE0OjI4OjExIDIwMDcgKzAxMDAKCiAgICBXaGl0ZXNwYWNlIGNsZWFudXAgYW5kIG1hcmtpbmcgYnJva2VuIGNvZGUuCgogICAgQ2hhbmdlcyByZXF1ZXN0ZWQgYnkgbWFpbnRhaW5lciBTdGVmYW4gUm9lc2UgYWZ0ZXIKICAgIHBvc3RpbmcgcGF0Y2ggdG8gVS1ib290IG1haWxpbmcgbGlzdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXaWxsaWFtIEp1dWwgPHdpbGxpYW0uanV1bEB0YW5kYmVyZy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1ZTFkYWU1YzNkYjdmNDAyNmYzMWI2YTJhODFlY2Q5ZTlkZWU0NzVmCkF1dGhvcjogV2lsbGlhbSBKdXVsIDx3aWxsaWFtLmp1dWxAZGF0YXJlc3BvbnMubm8+CkRhdGU6CUZyaSBOb3YgOSAxMzozMjozMCAyMDA3ICswMTAwCgogICAgRml4aW5nIGNvZGluZyBzdHlsZSBpc3N1ZXMKCiAgICAgLSBGaXhpbmcgbGVhZGluZyB3aGl0ZSBzcGFjZXMKICAgICAtIEZpeGluZyBpbmRlbnRhdGlvbiB3aGVyZSA0IHNwYWNlcyBhcmUgdXNlZCBpbnN0ZWFkIG9mIHRhYgogICAgIC0gUmVtb3ZpbmcgQysrIGNvbW1lbnRzICgvLyksIHdoZXJldmVyIEkgaW50cm9kdWNlZCB0aGVtCgogICAgU2lnbmVkLW9mZi1ieTogV2lsbGlhbSBKdXVsIDx3aWxsaWFtLmp1dWxAdGFuZGJlcmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGNiYjY1MWIyOWNiNjRkMzc4YTA2NzI5OTcwZTFlMTUzYmI2MDViMQpBdXRob3I6IFdpbGxpYW0gSnV1bCA8d2lsbGlhbS5qdXVsQGRhdGFyZXNwb25zLm5vPgpEYXRlOglUaHUgTm92IDggMTA6Mzk6NTMgMjAwNyArMDEwMAoKICAgIFJlbW92ZSB3aGl0ZSBzcGFjZSBhdCBlbmQuCgogICAgU2lnbmVkLW9mZi1ieTogV2lsbGlhbSBKdXVsIDx3aWxsaWFtLmp1dWxAdGFuZGJlcmcuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2ZhNDYwYWRmZGVmY2MzMGQxMDRlMWE5ZWU0NDk5NGVlMzQ5YmI3YgpBdXRob3I6IFdpbGxpYW0gSnV1bCA8d2lsbGlhbS5qdXVsQGRhdGFyZXNwb25zLm5vPgpEYXRlOglXZWQgT2N0IDMxIDEzOjUzOjA2IDIwMDcgKzAxMDAKCiAgICBVcGRhdGUgTVREIHRvIHRoYXQgb2YgTGludXggMi42LjIyLjEKCiAgICBBIGxvdCBjaGFuZ2VkIGluIHRoZSBMaW51eCBNVEQgY29kZSwgc2luY2UgaXQgd2FzIGxhc3QgcG9ydGVkIGZyb20KICAgIExpbnV4IHRvIFUtQm9vdC4gVGhpcyBwYXRjaCB0YWtlcyBVLUJvb3QgTkFORCBzdXBwb3J0IHRvIHRoZSBsZXZlbAogICAgb2YgTGludXggMi42LjIyLjEgYW5kIHdpbGwgZW5hYmxlIHN1cHBvcnQgZm9yIHZlcnkgbGFyZ2UgTkFORCBkZXZpY2VzCiAgICAoNEtCIHBhZ2VzKSBhbmQgZWFzZSB0aGUgY29tcGF0aWJpbGl0eSBiZXR3ZWVuIFUtQm9vdCBhbmQgTGludXgKICAgIGZpbGVzeXN0ZW1zLgoKICAgIFRoaXMgcGF0Y2ggaXMgdGVzdGVkIG9uIHR3byBjdXN0b20gYm9hcmRzIHdpdGggUFBDIGFuZCBBUk0KICAgIHByb2Nlc3NvcnMgcnVubmluZyBZQUZGUyBpbiBVLUJvb3QgYW5kIExpbnV4IHVzaW5nIGdjYy00LjEuMgogICAgY3Jvc3MgY29tcGlsZXJzLgoKICAgIE1BS0VBTEwgcHBjL2FybSBoYXMgc29tZSBpc3N1ZXM6CiAgICAgKiBET0MvT25lTmFuZC9uYW5kX3NwbCBpcyBub3QgYnVpbGRpbmcgKEkgaGF2ZSBub3QgdHJpZWQgcG9ydGluZwogICAgICAgdGhlc2UgcGFydHMsIGFuZCBzaW5jZSBJIGRvIG5vdCBoYXZlIGFueSBIVyBhbmQgSSBhbSBub3QgZmFtaWxpYXIKICAgICAgIHdpdGggdGhpcyBjb2RlL0hXIEkgdGhpbmsgaXRzIGJlc3QgbGVmdCB0byBzb21lb25lIGVsc2UuKQoKICAgIEV4Y2VwdCBmb3IgdGhlIGlzc3VlcyBtZW50aW9uZWQgYWJvdmUsIEkgaGF2ZSBwb3J0ZWQgYWxsIGRyaXZlcnMKICAgIG5lY2Vzc2FyeSB0byBydW4gTUFLRUFMTCBwcGMvYXJtIHdpdGhvdXQgZXJyb3JzIGFuZCB3YXJuaW5ncy4gTWFueQogICAgZHJpdmVycyB3ZXJlIHRyaXZpYWwgdG8gcG9ydCwgYnV0IHNvbWUgd2VyZSBub3Qgc28gdHJpdmlhbC4gVGhlCiAgICBmb2xsb3dpbmcgZHJpdmVycyBtdXN0IGJlIGV4YW1pbmVkIGNhcmVmdWxseSBhbmQgbWF5YmUgcmV3cml0dGVuIHRvCiAgICBzb21lIGRlZ3JlZToKICAgICBjcHUvcHBjNHh4L25kZmMuYwogICAgIGNwdS9hcm05MjZlanMvZGF2aW5jaS9uYW5kLmMKICAgICBib2FyZC9kZWx0YS9uYW5kLmMKICAgICBib2FyZC96eWxvbml0ZS9uYW5kLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBXaWxsaWFtIEp1dWwgPHdpbGxpYW0uanV1bEB0YW5kYmVyZy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGlnIE9sc2VuIDxzdGlnLm9sc2VuQHRhbmRiZXJnLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNkODI5MTllNmM4YTczYjM2M2EyNmYzNGI3MzQ5MjM4NDRlNTJkMWMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDEyIDE2OjA4OjM4IDIwMDggKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cCwgdXBkYXRlIENIQU5HRUxPRywgcHJlcGFyZSByZWxlYXNlCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAxN2U5MDBiOGMwZjM4ZDkyMmRhNDcwNzMyNDYyMTlkY2UyYTg0N2YyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxMiAxNDo1NDowNCAyMDA4ICswMjAwCgogICAgTVZCQ19QOiBmaXggY29tcGlsZSBwcm9ibGVtCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1MmIwNDdhZTQ4MjE5YjU5YmViZTM3YmE3NDNhYjEwM2ZkNGY4MzE2CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxMiAxMjoxMDoxMSAyMDA4ICswMjAwCgogICAgTVBDODI3MkFEUzogZml4IGJ1aWxkIGVycm9yOiAnYmRfdCcgaGFzIG5vIG1lbWJlciBuYW1lZCAncGNpX2NsaycKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGM5YzEwMWM2NjBiM2QxOTk1MDQ1YzYxYzdjNjA0MWY1MmI2Y2YzMzUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDEyIDAwOjM2OjUzIDIwMDggKzAyMDAKCiAgICBhZHM1MTIxOiBmaXggY29tcGlsZXIgd2FybmluZ3MgKHVudXNlZCB2YXJpYWJsZXMpCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA5MDJjYTA5MjQ2MDM5OTY0ZDU5YmJjYjUxOWIxZTFiNWFlZDAxMzA4CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIEF1ZyAxMSAxMToyOToyOCAyMDA4IC0wNTAwCgogICAgODV4eDogUmVuYW1lIENPTkZJR19OUl9DUFVTIHRvIENPTkZJR19OVU1fQ1BVUwoKICAgIFVzZSBDT05GSUdfTlVNX0NQVVMgdG8gbWF0Y2ggZXhpc3RpbmcgZGVmaW5lIHVzZWQgYnkgODZ4eC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzIxNmNhOTY5MmZmODBkN2M2Mzg3MjNlZjQ0OGYzZDM2MzAxZDllNwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBBdWcgMTEgMDk6MjA6NTMgMjAwOCAtMDUwMAoKICAgIEZpeCBmYWxsb3V0IGZyb20gYXV0b3N0YXJ0IHJldmVydAoKICAgIFRoZSBhdXRvc3RhcnQgcmV2ZXJ0IGNhdXNlZCBhIGJpdCBvZiBkdXBsaWNhdGVkIGNvZGUgYXMgd2VsbCBhcwogICAgY29kZSB0aGF0IHdhcyB1c2luZyBpbWFnZXMtPmF1dG9zdGFydCB0aGF0IG5lZWRzIHRvIGdldCByZW1vdmVkIHNvCiAgICB3ZSBjYW4gYnVpbGQgYWdhaW4uCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAzY2Y4YTIzNGI4ZThjMDJlNGRhMWYyMzU2NjA0M2JjMjg4YjA1MjIwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIEF1ZyAxMSAwOToxNjoyNSAyMDA4IC0wNTAwCgogICAgRml4IGNvbXBpbGUgZXJyb3IgcmVsYXRlZCB0byByOGE2NjU5Ny1oY2QgJiB1c2IKCiAgICBXaGVuIGJ1aWxkaW5nIHRoZSA4NTQ0RFMgYm9hcmQgd2UgZ2V0IHRoaXMgZXJyb3I6CgogICAgSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHI4YTY2NTk3LWhjZC5jOjIyOgogICAgdS1ib290L2luY2x1ZGUvdXNiLmg6MTkwOjI6IGVycm9yOiAjZXJyb3IgVVNCIExvd2xldmVsIG5vdCBkZWZpbmVkCiAgICBtYWtlWzFdOiAqKiogW3I4YTY2NTk3LWhjZC5vXSBFcnJvciAxCgogICAgVGhlIGNsZWFuZXN0IGZpeCBpcyB0byBvbmx5IGJ1aWxkIHI4YTY2NTk3LWhjZC5jIGlmIENPTkZJR19VU0JfUjhBNjY1OTdfSENECiAgICBpcyBzZXQuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAyZDBkYWEwMzYxMjMzOGE4MTNlM2M5ZDIyNjgwZTU0ZWFiZmVhMzc4CkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBdWcgNCAxNDowMjoyNiAyMDA4IC0wNTAwCgogICAgUE9XRVJQQyA4Nnh4OiBNb3ZlIEJBVCBzZXR1cCBjb2RlIHRvIEMKCiAgICBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHdlIHdpbGwgYmUgcG9zc2libHkgYmUgbG9jYXRpbmcKICAgIGRldmljZXMgYXQgcGh5c2ljYWwgYWRkcmVzc2VzIGFib3ZlIDMyYml0cywgYW5kIHRoZSBhc20KICAgIHByZXByb2Nlc3NpbmcgZG9lcyBub3QgYXBwZWFyIHRvIGRlYWwgd2l0aCBVTEwgY29uc3RhbnRzCiAgICBwcm9wZXJseS4gV2Ugbm93IGNhbGwgd3JpdGVfYmF0IGluIGxpYl9wcGMvYmF0X3J3LmMuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5ZGU2NzE0OWRiNTc2YzkxYjljMmEwYTE4MjY1MjMzMWU3ZTQ0MjExCkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBdWcgNCAxNDowMTo1MyAyMDA4IC0wNTAwCgogICAgUE9XRVJQQzogQWRkIHN5bmNocm9uaXphdGlvbiB0byB3cml0ZV9iYXQgaW4gbGliX3BwYy9iYXRfcncuYwoKICAgIFBlcmZvcm0gc3luYy9pc3luYyBhcyByZXF1aXJlZCBieSB0aGUgYXJjaGl0ZWN0dXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjNmOTM1YzA3M2U3NTc4YzYwNjY4MDRmZDJmOWVlMTE2Y2FlNmZmZQpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDQgMTQ6MDE6MTYgMjAwOCAtMDUwMAoKICAgIFBPV0VSUEM6IDg2eHggLSBhZGQgbWlzc2luZyBDT05GSUdfSElHSF9CQVRTIHRvIHNiYzg2NDFkIGNvbmZpZwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTI3NmEzNTg0ZDI2YTk1MzM0MDRmMGVjMDBjM2I2MWNmOWE5NzkzOQpBdXRob3I6IE1hZ251cyBMaWxqYSA8bGlsamEubWFnbnVzQGdtYWlsLmNvbT4KRGF0ZToJU3VuIEF1ZyAzIDIxOjQ0OjEwIDIwMDggKzAyMDAKCiAgICBpLk1YMzE6IEZpeCBteDMxX2dwaW9fbXV4KCkgZnVuY3Rpb24gYW5kIE1VWF8tbWFjcm9zLgoKICAgIENvcnJlY3QgdGhlIG14MzFfZ3Bpb19tdXgoKSBmdW5jdGlvbiB0byBhbGxvdyBjaGFuZ2luZyBhbGwgaS5NWDMxIElPTVVYCiAgICBjb250YWN0cyBpbnN0ZWFkIG9mIG9ubHkgdGhlIGZpcnN0IDI1NiBvbmVzIGFzIGlzIHRoZSBjYXNlIHByaW9yIHRvCiAgICB0aGlzIHBhdGNoLgoKICAgIEFkZCBtaXNzaW5nIE1VWF8qIG1hY3JvcyBhbmQgdXBkYXRlIGJvYXJkIGZpbGVzIHRvIHVzZSB0aGUgbmV3IG1hY3Jvcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYWdudXMgTGlsamEgPGxpbGphLm1hZ251c0BnbWFpbC5jb20+Cgpjb21taXQgYjZiMTgzYzViMmZmZmQ0YzQ1NmI3ZTNmY2IwNjRjY2ViNDdmZTdhYwpBdXRob3I6IE1hZ251cyBMaWxqYSA8bGlsamEubWFnbnVzQGdtYWlsLmNvbT4KRGF0ZToJU3VuIEF1ZyAzIDIxOjQzOjM3IDIwMDggKzAyMDAKCiAgICBpLk1YMzE6IEZpeCBJT01VWCByZWxhdGVkIHR5cG9zCgogICAgQ29ycmVjdCB0aGUgbmFtZXMgb2Ygc29tZSBJT01VWCBtYWNyb3MuCgogICAgU2lnbmVkLW9mZi1ieTogTWFnbnVzIExpbGphIDxsaWxqYS5tYWdudXNAZ21haWwuY29tPgoKY29tbWl0IDRkNTdiMGZiMjkyN2Q0ZjUwZDgzNDg4NGI0ZWM0YTdjYTAxNzA4YjAKQXV0aG9yOiBTdGV2ZSBTYWtvbWFuIDxzdGV2ZUBzYWtvbWFuLmNvbT4KRGF0ZToJTW9uIEF1ZyAxMSAyMDoyNjoxNiAyMDA4ICswMjAwCgogICAgT25lTkFORDogUmVtb3ZlIHVudXNlZCBwYXJhbWV0ZXJzIHRvIG9uZW5hbmRfdmVyaWZ5X3BhZ2UKCiAgICBUaGUgYmxvY2sgYW5kIHBhZ2UgcGFyYW1ldGVycyBvZiBvbmVuYW5kX3ZlcmlmeV9wYWdlKCkgYXJlIG5vdCB1c2VkLiBUaGlzIGNhdXNlcyBhIGNvbXBpbGVyIGVycm9yIHdoZW4gQ09ORklHX01URF9PTkVOQU5EX1ZFUklGWV9XUklURSBpcyBlbmFibGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZXZlIFNha29tYW4gPHN0ZXZlQHNha29tYW4uY29tPgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnbWFpbC5jb20+Cgpjb21taXQgZTg0ZDU2OGZhMmE5ZjRjZTc4ODgxNDFlNzE2NzYzNjhlZjZiM2YyNQpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJRnJpIEF1ZyA4IDE4OjAwOjQwIDIwMDggKzAyMDAKCiAgICB2aWRlbzogZml4IGJ1ZyBpbiBjZmJfY29uc29sZSBjb2RlCgogICAgRklMTF8xNUJJVF81NTVSR0IgbWFjcm8gZXh0ZW5zaW9uIGZvciBwaXhlbCBzd2FwcGluZwogICAgYnkgY29tbWl0IGJlZDUzNzUzZGQxZDdlNmJjYmVhNDMzOWJlMGZiNzc2MDIxNGNjMzUKICAgIGludHJvZHVjZWQgYSBidWcgaW4gY2ZiX2NvbnNvbGU6CgogICAgQml0bWFwcyB3aXRoIG9kZC1udW1iZXJlZCB3aWR0aCB3b24ndCBiZSByZW5kZXJlZAogICAgY29ycmVjdGx5IGFuZCBldmVuIFUtQm9vdCBjcmFzaGVzIGFyZSBvYnNlcnZlZCBvbgogICAgc29tZSBwbGF0Zm9ybXMgd2hpbGUgcmVwZWF0ZWQgcmVuZGVyaW5nIG9mIHN1Y2gKICAgIGJpdG1hcHMgd2l0aCAiYm1wIGRpc3BsYXkiLiBBbHNvIGlmIGEgYml0bWFwIGlzCiAgICByZW5kZXJlZCB0byBhbiBvZGQtbnVtYmVyZWQgeCBzdGFydGluZyBwb3NpdGlvbiwKICAgIHRoZSBzYW1lIHByb2JsZW0gb2NjdXJzLiBUaGlzIHBhdGNoIGlzIGFuIGF0dGVtcHQKICAgIHRvIGZpeCBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgZDkwMTVmNmE1MGQ3MjU4MTI1MzQ5ZWY1YzJhZjgzNjQ1OGEwMDI5YQpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJRnJpIEF1ZyA4IDE4OjAwOjM5IDIwMDggKzAyMDAKCiAgICB2aWRlbzogZml4IGJ1ZyBpbiBsb2dvX3Bsb3QKCiAgICBJZiBsb2dvX3Bsb3QoKSBzaG91bGQgZXZlciBiZSBjYWxsZWQgd2l0aCB4IHN0YXJ0aW5nCiAgICBwb3NpdGlvbiBvdGhlciB0aGFuIHplcm8gYW5kIGZvciBwaXhlbCBkZXB0aHMgZ3JlYXRlcgogICAgdGhhbiA4YnBwLCBsb2dvIGNvbG9ycyBkaXN0b3J0aW9uIHdpbGwgYmUgb2JzZXJ2ZWQuCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBpc3N1ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgNDA2ODE5YWU5NGY3OWY1YjU5ZTAxZDE2MzM4MGNhN2Q4MzcwOTI1MQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBBdWcgMTEgMDA6MTc6NTIgMjAwOCArMDIwMAoKICAgIE1BSU5UQUlORVJTOiBzb3J0IGVudHJpZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGNmYzQ0MmQ3OTEzZDRkMWMzYTliZjQ5NGY5MGMwMTJjMmY4YzNiZGMKQXV0aG9yOiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgNyAxODoxOToyOCAyMDA4ICswODAwCgogICAgQWRkIG1wYzc0NDhocGMyIG1haW50YWluZXIgaW5mb3JtYXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTlmZTBjM2U3Y2E0OGFmYTUwZDZhMGRiOTlmYTkxZTcyODJkNzNkOApBdXRob3I6IEd1cnVyYWphIEhlYmJhciBLIFIgPGd1cnVyYWpha3JAc2FueW8uY28uaW4+CkRhdGU6CVRodSBBdWcgNyAxMzoxMzoyNyAyMDA4ICswNTMwCgogICAgY29tbW9uL2NtZF9sb2FkLmMgLSBNaW5vciBjb2RlICYgQ29kaW5nIFN0eWxlIGNsZWFudXAKCiAgICAtIG9zX2RhdGFfaGVhZGVyIFZhcmlhYmxlIGlzIGEgY2Fycnkgb3ZlciBmZWF0dXJlCiAgICAgICAmIHVudXNlZC4gU28gcmVtb3ZlZCBhbGwgaW5zdGFuY2Ugb2YgdGhpcyB2YXJpYWJsZQogICAgIC0gTWlub3IgQ29kZSBTdHlsZSBVcGRhdGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBHdXJ1cmFqYSBIZWJiYXIgPGd1cnVyYWpha3JAc2FueW8uY28uaW4+CiAgICBBY2tlZC1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAwZDI4ZjM0YmJlNTZkMDk3MWJkNjAzNzg5ZGNjNmZlN2FkZjExZjE0CkF1dGhvcjogTWFnbnVzIExpbGphIDxsaWxqYS5tYWdudXNAZ21haWwuY29tPgpEYXRlOglXZWQgQXVnIDYgMTk6MzI6MzMgMjAwOCArMDIwMAoKICAgIFVwZGF0ZSB0aGUgVS1Cb290IHdpa2kgVVJMLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hZ251cyBMaWxqYSA8bGlsamEubWFnbnVzQGdtYWlsLmNvbT4KCmNvbW1pdCBhYTVmZmExNmQ3ZTRjNDYxYjdiNzdiZjhlNzlkMmVmNTYzOGNmNzU0CkF1dGhvcjogZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KRGF0ZToJU3VuIEF1ZyAxMCAxNzo1NjozNiAyMDA4ICswMjAwCgogICAgT25lTkFORDogUmVtb3ZlIGJhc2UgYWRkcmVzcyBvZmZzZXQgdXNhZ2UKCiAgICBXaGlsZSBsb2NhbGx5IHByZXBhcmluZyBzb21lIFUtQm9vdCBwYXRjaGVzIGZvciBBUk0gYmFzZWQgT01BUDMgYm9hcmRzLCBzb21lCiAgICB1c2luZyBPbmVOQU5EIGFuZCBzb21lIHVzaW5nIE5BTkQsIHdlIGZvdW5kIHNvbWUgZGlmZmVyZW5jZXMgaW4gT25lTkFORCBhbmQKICAgIE5BTkQgY29tbWFuZCBhZGRyZXNzIGhhbmRsaW5nLgoKICAgIEFzIHRoaXMgbWlnaHQgY29uZnVzZSB1c2VycyAoaXQgYWxyZWFkeSBjb25mdXNlZCB1cyksIHdlIGxpa2UgdG8gYWxpZ24gT25lTkFORAogICAgYW5kIE5BTkQgYWRkcmVzcyBoYW5kbGluZy4KCiAgICBUaGUgaXNzdWUgaXMgdGhhdCBjbWRfb25lbmFuZC5jIHN1YnRyYWN0cyB0aGUgb25lbmFuZCBiYXNlIGFkZHJlc3MgZnJvbSB0aGUKICAgIGFkZHJlc3NlcyB5b3UgdHlwZSBpbnRvIHRoZSB1LWJvb3QgY29tbWFuZCBsaW5lIHNvLCB1bmxpa2UgbmFuZCwgeW91IGNhbid0CiAgICB1c2UgYWRkcmVzc2VzIHJlbGF0aXZlIHRvIHRoZSBzdGFydCBvZiB0aGUgb25lbmFuZCBwYXJ0IGUuZy4gdGhpcyB3b24ndCB3b3JrOgoKICAgIG9uZW5hbmQgcmVhZCA4MjAwMDAwMCAyODAwMDAgNDAwMDAwCgogICAgeW91IGhhdmUgdG8gdXNlOgoKICAgIG9uZW5hbmQgcmVhZCA4MjAwMDAwMCAyMDI4MDAwMCA0MDAwMDAKCiAgICBMb29raW5nIGF0IHJlY2VudCBnaXQsIHRoZSBvbmx5IGJvYXJkIGN1cnJlbnRseSB1c2luZyBPbmVOQU5EIGlzIEFwb2xsb24sIGFuZAogICAgZm9yIHRoaXMgdGhlIE9uZU5BTkQgYmFzZSBhZGRyZXNzIGlzIDAgKGFwb2xsb24uaCkKCiAgICAjZGVmaW5lCUNGR19PTkVOQU5EX0JBU0UJMHgwMDAwMDAwMAoKICAgIHNvIHBhdGNoIGJlbG93IHdvbid0IGJyZWFrIGFueSBleGlzdGluZyBib2FyZHMgYW5kIHdpbGwgYWxpZ24gT25lTkFORCBhbmQgTkFORAogICAgaGFuZGxpbmcgb24gYm9hcmRzIHdoZXJlIE9uZU5BTkQgYmFzZSBhZGRyZXNzIGlzICE9IDAuCgogICAgU2lnbmVkLW9mZi1ieTogU3RldmUgU2Frb21hbiA8c2Frb21hbkBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBNYW5pa2FuZGFuIFBpbGxhaSA8bWFuaS5waWxsYWlAdGkuY29tPgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnbWFpbC5jb20+Cgpjb21taXQgYzExNTI4MDgzZWY2ZTU1ZTc2ZGY3NDIyMjhjMjZlMzlkMTUxODEzZApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBBdWcgNyAwOToyODoyMCAyMDA4IC0wNTAwCgogICAgbXBjODV4eDogd29ya2Fyb3VuZCBvbGQgYmludXRpbHMgYnVnCgogICAgVGhlIHJlY2VudCBjaGFuZ2UgdG8gbW92ZSB0aGUgLmJzcyBvdXRzaWRlIG9mIHRoZSBpbWFnZSBnaXZlcyBvbGRlcgogICAgYmludXRpbHMgKGxkIGZyb20gZWxkazQuMS9iaW51dGlscy0yLjE2KSBzb21lIGhlYWRhY2hlOgoKICAgIHBwY184NXh4LWxkOiB1LWJvb3Q6IE5vdCBlbm91Z2ggcm9vbSBmb3IgcHJvZ3JhbSBoZWFkZXJzIChhbGxvY2F0ZWQgMywgbmVlZCA0KQogICAgcHBjXzg1eHgtbGQ6IGZpbmFsIGxpbmsgZmFpbGVkOiBCYWQgdmFsdWUKCiAgICBXZSB3b3JrYXJvdW5kIGl0IGJ5IGJlaW5nIGV4cGxpY2l0IGFib3V0IHRoZSBwcm9ncmFtIGhlYWRlcnMgYW5kIG5vdAogICAgYXNzaWduaW5nIHRoZSAuYnNzIHRvIGEgcHJvZ3JhbSBoZWFkZXIuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAwYmYyMDJlYzU4NmQ0NDY2YzkwMGU5ODc3MjBmYTYzNWM1OTRkNjg5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEF1ZyAxMCAwMToyNjoyNiAyMDA4ICswMjAwCgogICAgUmV2ZXJ0ICJbbmV3IHVJbWFnZV0gQWRkIGF1dG9zdGFydCBmbGFnIHRvIGJvb3RtX2hlYWRlcnMgc3RydWN0dXJlIgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgZjU2MTRlNzkyNjg2M2JmMDIyNWVjODYwZDliMzE5NzQxYTljNDAwNC4KCiAgICBUaGUgY29tbWl0IHdhcyBiYXNlZCBvbiBhIG1pc3VuZGVyc3RhbmRpbmcgb2YgdGhlIChkb2N1bWVudGVkKQogICAgbWVhbmluZyBvZiB0aGUgJ2F1dG9zdGFydCcgZW52aXJvbm1lbnQgdmFyaWFibGUuIEl0IG1pZ2h0IGNhdXNlCiAgICBib2FyZHMgdG8gaGFuZyBpZiAnYXV0b3N0YXJ0JyB3YXMgdXNlZCwgd2l0aCB0aGUgcG90ZW50aWFsIHRvIGJyaWNrCiAgICB0aGVtLiBHbyBiYWNrIHRvIHRoZSBkb2N1bWVudGVkIGJlaGF2aW91ci4KCiAgICBDb25mbGljdHM6CgoJY29tbW9uL2NtZF9ib290bS5jCgljb21tb24vaW1hZ2UuYwoJaW5jbHVkZS9pbWFnZS5oCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyOWY4ZjU4ZmY0MGM2N2Y3ZjJlMTFhZmQxNzE1MTczMDk0ZTUyYWMyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IEF1ZyA5IDIzOjE3OjMyIDIwMDggKzAyMDAKCiAgICBUUU04eHh7TCxNfTogdHJ5IHRvIG5vcm1hbGl6ZSBjb25maWcgZmlsZXMgZm9yIFRRTTh4eD8gYmFzZWQgYm9hcmQKCiAgICAtIGVuYWJsZSBDRkkgZHJpdmVyIHdoZXJlIHRoaXMgd2FzIGZvcmdvdHRlbgogICAgLSBlbmFibGUgbXRkcGFydHMgc3VwcG9ydAogICAgLSBhZGp1c3QgZGVmYXVsdCBlbnZpcm9ubWVudAogICAgZXRjLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNDEyNjZjOWI1YTVmODczZGYzZWM4OTFiYjA5MDc2MTY5NThiNTYwMgpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CVR1ZSBBdWcgNSAxMDo1MTo1NyAyMDA4IC0wNTAwCgogICAgRklUOiBGaXggaGFuZGxpbmcgb2YgaW1hZ2VzIHdpdGhvdXQgcmFtZGlza3MKCiAgICBib290X2dldF9yYW1kaXNrKCkgc2hvdWxkIG5vdCB0cmVhdCB0aGUgY2FzZSB3aGVuIGEgRklUIGltYWdlIGRvZXMKICAgIG5vdCBjb250YWluIGEgcmFtZGlzayBhcyBhbiBlcnJvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgogICAgQWNrZWQtYnk6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KCmNvbW1pdCBmNzdkOTJhM2Y1NmQ4OGU2M2NjMDIyMjZhMTIwNGIzYmRiYWM2OTYxCkF1dGhvcjogU2VyZ2V5IExhcGluIDxzbGFwaW5Ab3NzZmFucy5vcmc+CkRhdGU6CVNhdCBBdWcgOSAwMTozOTowOSAyMDA4ICswNDAwCgogICAgRGF0YUZsYXNoOiBBVDQ1REIwMjEgZml4IGFuZCBBVDQ1REIwODEgc3VwcG9ydAoKICAgIEZpeCBmb3IgcGFnZSBzaXplIG9mIEFUNDVEQjAyMS4gQWxzbyBhZGRpbmcgYmlnZ2VyIEFUNDVEQjA4MQogICAgd2hpY2ggY29tZXMgd2l0aCBzb21lIG5ld2VyIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZXkgTGFwaW4gPHNsYXBpbkBvc3NmYW5zLm9yZz4KCmNvbW1pdCBiYTkzMjQ0NTFiNjYyZGQzOTNhZmE1M2U1Y2MzNmZjNWQzZDEwOTY2CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgpEYXRlOglGcmkgQXVnIDggMTY6MzA6MjMgMjAwOCArMDkwMAoKICAgIHNoOiBVcGRhdGUgc2g3NzYzcmRwIGNvbmZpZwoKICAgIEFkZCBzaF9ldGggc3VwcG9ydCB0byBzaDc3NjNyZHAuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgoKY29tbWl0IDIxZjk3MWVjMjY1ZjYwNDJlYzIxNjM2ZDU1ZDA2YTZiYzA3NTEwNzcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gSnVsIDcgMDE6MjI6MjkgMjAwOCArMDIwMAoKICAgIFRRTTgyM0w6IHJlLWVuYWJsZSBsb2dvIHN1cHBvcnQ7IHVwZGF0ZSBMQ0RfSU5GTyB0ZXh0CgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAzYjhkMTdmMGYwODIwNzMzNDZjMGRmMDE3YzlkZmQ2YWNkYjQwZDZkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIEF1ZyA4IDE2OjQxOjU2IDIwMDggKzAyMDAKCiAgICBUUU04eHhMOiBmaXggc3VwcG9ydCBmb3Igc2Vjb25kIGZsYXNoIGJhbmsKCiAgICBXaGVuIHN3aXRjaGluZyB0aGUgVFFNOHh4TCBtb2R1bGVzIHRvIHVzZSB0aGUgQ0ZJIGZsYXNoIGRyaXZlciwKICAgIHN1cHBvcnQgZm9yIHRoZSBzZWNvbmQgZmxhc2ggYmFuayB3YXMgYnJva2VuIGJlY2F1c2UgdGhlIENGSSBkcml2ZXIKICAgIGRpZCBub3Qgc3VwcG9ydCBkeW5hbWljYWxseSBzaXplZCBiYW5rcy4gVGhpcyBnZXRzIGZpeGVkIG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDJhMTEyYjIzNGQ4NzlmNjM5MDUwM2E1ZjRlMzgyNDZhY2NlOWQwYjAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgQXVnIDggMTY6Mzk6NTQgMjAwOCArMDIwMAoKICAgIENGSTogYWxsb3cgZm9yIGR5bmFtaWNhbGx5IGRldGVybWluZWQgZmxhc2ggc2l6ZXMgYW5kIGFkZHJlc3NlcwoKICAgIFRoZSBDRkkgZHJpdmVyIGFsbG93ZWQgb25seSBmb3Igc3RhdGljIGluaXRpYWxpemVycyBpbiB0aGUKICAgIENGR19GTEFTSF9CQU5LU19MSVNUIGRlZmluaXRpb24sIGkuIGUuIGl0IGRpZCBub3QgYWxsb3cgdG8gbWFwCiAgICBzZXZlcmFsIGZsYXNoIGJhbmtzIGNvbnRpZ3VvdXNseSBpZiB0aGUgYmFuayBzaXplcyB3ZXJlIG5vdCBrbm93biBpbgogICAgYWR2YW5jZSwgd2hpY2gga2luZCBvZiB2aW9sYXRlcyBVLUJvb3QncyBkZXNpZ24gcGhpbG9zb3BoeS4KCiAgICAod2lsbCBiZSB1c2VkIGZvciBleGFtcGxlIGJ5IHRoZSBUUU04eHhMIGJvYXJkcykKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGQ5ZDc4ZWU0NmQ5YTM5NmQwYTgxZDAwYzJiMDAzYTliZDMyYzJlNjEKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglUaHUgQXVnIDcgMjM6MjY6MzUgMjAwOCAtMDcwMAoKICAgIFFFIFVFQzogRml4IGNvbXBpbGVyIHdhcm5pbmdzCgogICAgTW92ZWQgc3RhdGljIGZ1bmN0aW9ucyBlYXJsaWVyIGluIGZpbGUgc28gZm9yd2FyZCBkZWNsYXJhdGlvbnMgYXJlIG5vdCBuZWVkZWQuCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBkNWQyOGZlNGFhZDVmNDUzNTQwMDY0N2E1NjE3YzExMDM5NTA2NDY3CkF1dGhvcjogRGF2aWQgU2FhZGEgPERhdmlkLlNhYWRhQGVjaXRlbGUuY29tPgpEYXRlOglNb24gTWFyIDMxIDAyOjM3OjM4IDIwMDggLTA3MDAKCiAgICBRRSBVRUM6IEFkZCBNSUkgQ29tbWFuZHMKCiAgICBBZGQgTUlJIGNvbW1hbmRzIHRvIHRoZSBVRUMgZHJpdmVyLiBOb3RlIHRoYXQgb25jZSBhIFVFQyBkZXZpY2UgaXMgc2VsZWN0ZWQsCiAgICBhbnkgZGV2aWNlIG9uIGl0cyBNRElPIGJ1cyBjYW4gYmUgYWRkcmVzc2VkLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFNhYWRhIDxkYXZpZC5zYWFkYUBlY2l0ZWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZmQwZjJmMzc5NmZmMmE3YTMyZDM1ZGViMWI3OTk2ZTQ4NTg0OWRmNwpBdXRob3I6IFlvc2hpaGlybyBTaGltb2RhIDxzaGltb2RhLnlvc2hpaGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJV2VkIEp1bCA5IDIxOjA3OjM4IDIwMDggKzA5MDAKCiAgICB1c2I6IGFkZCBzdXBwb3J0IGZvciBSOEE2NjU5NyB1c2IgY29udHJvbGxlcgoKICAgIGFkZCBzdXBwb3J0IGZvciBSZW5lc2FzIFI4QTY2NTk3IHVzYiBjb250cm9sbGVyLgogICAgVGhpcyBwYXRjaCBzdXBwb3J0cyBVU0IgSG9zdCBtb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFlvc2hpaGlybyBTaGltb2RhIDxzaGltb2RhLnlvc2hpaGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgMWQxMGRjZDA0MWFhZWFlOWZkN2M4MjEwMDU2OTI4OThhMDMwMzM4MgpBdXRob3I6IEh1bnRlciwgSm9uIDxqb24taHVudGVyQHRpLmNvbT4KRGF0ZToJU2F0IEp1bCAyNiAxODo1OToxNiAyMDA4IC0wNTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIE9NQVA1OTEyIGFuZCBPTUFQMTZ4eCB0byB1c2JkY29yZV9vbWFwMTUxMC5jCgogICAgQWRkIHN1cHBvcnQgdG8gZHJpdmVycy91c2IvdXNiZGNvcmVfb21hcDE1MTAuYyBmb3IgT01BUDU5MTIgYW5kIE9NQVAxNnh4IGRldmljZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIEh1bnRlciA8am9uLWh1bnRlckB0aS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IGVhYjEwMDczMzRiOTNhNjIwOWYxZWMzMzYxNWUyNmVmNTMxMWVkZTcKQXV0aG9yOiBTdGV2ZW4gQS4gRmFsY28gPHNmYWxjb0BoYXJyaXMuY29tPgpEYXRlOglXZWQgQXVnIDYgMTU6NDI6NTIgMjAwOCAtMDQwMAoKICAgIHBwYzR4eDogU2VxdW9pYSBoYXMgdHdvIFVBUlRzIGluICI0LXBpbiIgbW9kZS4gQ29uZmlndXJlIHRoZSBHUElPcyBhcyBwZXIgc2NoZW1hdGljLgoKICAgIFRoZSBTZXF1b2lhIGJvYXJkIGhhcyB0d28gVUFSVHMgaW4gIjQtcGluIiBtb2RlLiBUaGlzIHBhdGNoIG1vZGlmaWVzIHRoZSBHUElPCiAgICBjb25maWd1cmF0aW9uIHRvIG1hdGNoIHRoZSBzY2hlbWF0aWMsIGFuZCBhbHNvIHNldHMgdGhlIFNEUjBfUEZDMSByZWdpc3RlciB0bwogICAgc2VsZWN0IHRoZSBjb3JyZXNwb25kaW5nIG1vZGUgZm9yIHRoZSBVQVJUcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGV2ZW4gQS4gRmFsY28gPHNmYWxjb0BoYXJyaXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDBlYjU3MTdhODViNmNiYTNmNjdjMTFmYTg5YmRkZTM4ZGNkMDgxYjUKQXV0aG9yOiBIYW5zLUNocmlzdGlhbiBFZ3R2ZWR0IDxoYW5zLWNocmlzdGlhbi5lZ3R2ZWR0QGF0bWVsLmNvbT4KRGF0ZToJV2VkIEF1ZyA2IDE0OjQyOjEzIDIwMDggKzAyMDAKCiAgICBhdnIzMjogYWRkIHN1cHBvcnQgZm9yIEVhcnRoTENEIEZhdnItMzIgYm9hcmQKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIEZhdnItMzIgYm9hcmQgbWFkZSBieSBFYXJ0aExDRC4KCiAgICBUaGlzIGtpdCwgd2hpY2ggaXMgYWxzbyBjYWxsZWQgZXpMQ0QtMTAxIHdoZW4gcnVubmluZyB3aXRoIEVhcnRoTENEIGZpcm13YXJlLAogICAgaGFzIGEgMTAuNCIgdG91Y2ggc2NyZWVuIExDRCBwYW5lbCwgMTYgTUIgMzItYml0IFNEUkFNLCA4IE1CIHBhcmFsbGVsIGZsYXNoLAogICAgRXRoZXJuZXQsIGF1ZGlvIG91dCwgVVNCIGRldmljZSwgU0QtY2FyZCBzbG90LCBVU0FSVCBhbmQgdmFyaW91cyBvdGhlcgogICAgY29ubmVjdG9ycyBmb3IgY2VubmVjdGluZyBzdHVmZiB0byBTUEksIEkyQywgR1BJTywgZXRjLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhbnMtQ2hyaXN0aWFuIEVndHZlZHQgPGhhbnMtY2hyaXN0aWFuLmVndHZlZHRAYXRtZWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGJjOTAxOWUxOTc1OGExOWEzODhmYjIwZWYxOGRjNzcxY2QzOWZkZGEKQXV0aG9yOiBSYWZhZWwgQ2FtcG9zIDxyYWZhZWwuY2FtcG9zQGhhbnNjYW4uY29tPgpEYXRlOglUaHUgSnVsIDMxIDEwOjIyOjIwIDIwMDggKzAyMDAKCiAgICBjZmktZmxhc2g6IEFkZGVkIHN1cHBvcnQgdG8gZmxhc2hfcmVhbF9wcm90ZWN0IGZvciBBdG1lbCBmbGFzaCBkZXZpY2VzCgogICAgU29tZSBvZiB0aGUgZmxhc2ggbWVtb3JpZXMgcHJvZHVjZWQgYnkgQVRNRUwgc3RhcnQgaW4gcmVhZC1vbmx5IG1vZGUuCiAgICBXZSBuZWVkIHRvIHVucHJvdGVjdCBpdC4gVGhpcyBwYXRjaCBhbGxvd3MgdGhlIEFUNDlCVjY0MTYgdG8gd29yayB3aXRoCiAgICBjZmlfZmxhc2ggbWVtb3JpZXMuIFRlc3RlZCBpbiB0aGUgYXQ5MXJtOTIwMGVrIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFlbCBDYW1wb3MgTGFzIEhlcmFzIDxyYWZhZWwuY2FtcG9zQGhhbnNjYW4uY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc5NDk4MzllNTgzNmJmOGIxMDc0YmI2MTQyYzQ2ZDMwYWMzYWEzNTAKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgNSAxNTozNjozOSAyMDA4ICswMjAwCgogICAgY2ZpLWZsYXNoOiBBZGQgZGVmaW5pdGlvbiBmb3IgdGhlIEFNMjlMVjgwMEJCIEFNRCBOT1ItZmxhc2gKCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTMxODY3MzA0NWZlMTg4YzZlMjRjNTgyYjFlNmVmYzAwYWUxYzYyYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEF1ZyA2IDE0OjA2OjAzIDIwMDggKzAyMDAKCiAgICBGaXggbWVyZ2UgcHJvYmxlbXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjIzMDJkNDQzMGU3ZjNmNDgzMDhkNmE1ODUzMjBmZTk2YWY4YWZiZApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEF1ZyA2IDE0OjA1OjM4IDIwMDggKzAyMDAKCiAgICBGaXggbWVyZ2UgcHJvYmxlbXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNjY4OTQ4NGNjZDQzMTg5MzIyYWFhNWExYzZjZDAyY2RkNTExYWQ3ZApBdXRob3I6IEtlbm5ldGggSm9oYW5zc29uIDxrZW5uZXRoQHNvdXRocG9sZS5zZT4KRGF0ZToJVHVlIEp1bCAxNSAxMjoxMzozOCAyMDA4ICswMjAwCgogICAgbXBjNTEyMTogTW92ZSBpb3BpbiBmZWF0dXJlcyBmcm9tIGJvYXJkIHNwZWNpZmljIHRvIGNvbW1vbiBmaWxlcy4KCiAgICBBbmQgaW4gdGhlIHByb2Nlc3MgZWxpbWluYXRlIHNvbWUgZHVwbGljYXRlIHJlZ2lzdGVyIGRlZmluZXMuCgogICAgU2lnbmVkLW9mZi1ieTogS2VubmV0aCBKb2hhbnNzb24gPGtlbm5ldGhAc291dGhwb2xlLnNlPgoKY29tbWl0IGVmMTFkZjZiNjZlY2Y1Nzk3ZTk0YmEzMjIyNTRiOGZiN2E0ZTJlMTIKQXV0aG9yOiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyA1IDE3OjM4OjU3IDIwMDggLTA2MDAKCiAgICBtcGM1MTIxOiBzcXVhc2ggc29tZSBmZHQgZml4dXAgZXJyb3JzCgogICAgT24gQURTNTEyMSB3aGVuIGJvb3RpbmcgbGludXggdGhlIGZvbGxvd2luZyBlcnJvcnMgYXJlIHNlZW46CglVbmFibGUgdG8gdXBkYXRlIHByb3BlcnR5IC9zb2M1MTIxQDgwMDAwMDAwOmJ1cy1mcmVxdWVuY3ksIGVycj1GRFRfRVJSX05PVEZPVU5ECglVbmFibGUgdG8gdXBkYXRlIHByb3BlcnR5IC9zb2M1MTIxQDgwMDAwMDAwL2V0aGVybmV0QDI4MDA6bG9jYWwtbWFjLWFkZHJlc3MsIGVycj1GRFRfRVJSX05PVEZPVU5ECglVbmFibGUgdG8gdXBkYXRlIHByb3BlcnR5IC9zb2M1MTIxQDgwMDAwMDAwL2V0aGVybmV0QDI4MDA6YWRkcmVzcywgZXJyPUZEVF9FUlJfTk9URk9VTkQKCiAgICBUaGlzIGlzIGNhdXNlZCBieSBmdF9jcHVfc2V0dXAgdHJ5aW5nIHRvIGRlYWwgd2l0aAogICAgYm90aCBvbGQgYW5kIG5ldyBzb2Mgbm9kZSBuYW1pbmcuICBUaGlzIHBhdGNoCiAgICBmaXhlcyB0aGlzIGJ5IGJlaW5nIHNtYXJ0ZXIgYWJvdXQgd2hhdCB0bwogICAgZml4dXAuCgogICAgQWxzbyBkbyBzb2Mgbm9kZSBmaXh1cHMgYnkgY29tcGF0aWJsZSBpbnN0ZWFkIG9mIGJ5IHBhdGguCiAgICBBIG5ldyBib2FyZCBjb25maWcgY2FsbGVkIE9GX1NPQ19DT01QQVQgZGVmaW5lZAogICAgdG8gYmUgImZzbCxtcGM1MTIxLWltbXIiIHJlcGxhY2VzIHRoZSBvbGQKICAgIE9GX1NPQyBub2RlIHBhdGggdGhhdCB3YXMgZGVmaW5lZCB0byBiZSAic29jQDgwMDAwMDAwIi4KCiAgICBPbGQgZGV2aWNlIHRyZWVzIHN0aWxsIHdvcmssIGJ1dCB0aGUgY29tcGF0aWJsaXR5CiAgICBpcyBjb25kaXRpb25hbCBvbiBDT05GSUdfT0ZfU1VQUE9SVF9PTERfREVWSUNFX1RSRUVTCiAgICB3aGljaCBpcyBvbiBieSBkZWZhdWx0IGluIGluY2x1ZGUvY29uZmlncy9hZHM1MTIxLmguCgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODEwOTFmNThmMGM1OGVjZDI2YzViMDVkZTJhZTIwY2E2Y2RiNTIxYwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBBdWcgMiAyMzo0ODozMCAyMDA4ICswMjAwCgogICAgZHJpdmVycy9zZXJpYWw6IE1vdmUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gdG8gTWFrZWZpbGUgZm9yIENPTkZJR18qIG1hY3JvcwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNGNkN2U2NTI4ZjYxZWM2Njk3NTVjMzc1NGJiNGY5Nzc5ODc0ZmFiMwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBBdWcgMiAyMzo0ODozMiAyMDA4ICswMjAwCgogICAgbmlvczIvc3lzaWQ6IGZpeCBwcmludGYgd2FybmluZwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNjZkYTZmYTBlMzVlN2VlNTY2MjhjODU5ODE3MDlhZmU3MTgwZmM4ZQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBBdWcgMiAyMzo0ODozMyAyMDA4ICswMjAwCgogICAgRml4IHJlbWFpbmluZyBidWlsZCBpc3N1ZXMgd2l0aCBNUEM4eHggRkFEUyBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA4MWQzZjFmZGRkYWZkMWViNTNiYmNhODczOWY0ODhkNDE3ZWIzZGQyCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IEF1ZyAyIDIzOjQ4OjMxIDIwMDggKzAyMDAKCiAgICBuaW9zMjogZml4IHBoeXNfYWRkcl90IGFuZCBwaHlzX3NpemVfdCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA1ZmE2MjAwMGRiNmQwYjQ2ZWNkZWFkYmViNTBmYWY1MTk3ZGI0OWVmCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IEF1ZyAyIDIzOjQ4OjM0IDIwMDggKzAyMDAKCiAgICBtdmJjX3A6IEZpeCBwcm9ibGVtIHdpdGggJyNpZiAoQ09ORklHX0NNRF9LR0RCKScKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDE0NjRlZmY3N2U3ZmRhZWQ2MDllY2YyNjNhMjQyM2M5ZGNmOTZiMWYKQXV0aG9yOiBNYXJrIEphY2tzb24gPG1wZmpAbWltYy5jby51az4KRGF0ZToJRnJpIEF1ZyAxIDA5OjQ4OjI5IDIwMDggKzAxMDAKCiAgICBGaXggYml0bWFwIGRpc3BsYXkgZm9yIGF0bWVsIGxjZCBjb250cm9sbGVyCgogICAgVGhlIGN1cnJlbnQgbGNkX2Rpc3BsYXlfYml0bWFwKCkgZnVuY3Rpb24gZG9lcyBub3Qgd29yayBwcm9wZXJseQogICAgZm9yIHRoZSBBdG1lbCBMQ0QgY29udHJvbGxlci4KCiAgICAyIGZpeGVzIG5lZWQgdG8gYmUgZG9uZTotCgogICAgKGEpIHdoZW4gc2V0dGluZyB0aGUgY29sb3VyIG1hcCwgdXNlIHRoZSBsY2Rfc2V0Y29scmVnKCkgZnVuY3Rpb24KCWFzIHByb3ZpZGVkIGJ5IHRoZSBBdG1lbCBkcml2ZXIKICAgIChiKSB0aGUgZGF0YSBpcyBuZXZlciBhY3R1YWxseSB3cml0dGVuIHRvIHRoZSBsY2QgZnJhbWVidWZmZXIgISEKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrIEphY2tzb24gPG1wZmpAbWltYy5jby51az4KCmNvbW1pdCAyYTQzM2M2NmIxZTI3NzAzNDlmZTQ5MTFiZTIzYzM3NWYwNTNlYmQ4CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIEF1ZyAxIDA4OjQwOjM0IDIwMDggKzAyMDAKCiAgICBxZW11X21pcHM6IHVwZGF0ZSBSRUFETUUgdG8gZm9sbG93IHFlbXUgdXBkYXRlIGFib3V0IGRlZmF1bHQgbWFjaGluZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYWMxNjlkNjQ1ZjVmMGUwYjlhMjMyNTYzMDk5MjA5ZTkyYTM1NWQ4ZQpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgMzEgMTk6NTM6MjEgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBGaXggY29tcGlsYXRpb24gaXNzdWUgY2F1c2VkIGJ5IGEgbWlzc2luZyBmdW5jdGlvbgoKICAgIEltcGxlbWVudCB1c2VjMnRpY2tzKCkgd2hpY2ggaXMgdXNlZCBieSBmc2xfaTJjLmMgaW4KICAgIGxpYl9tNjhrL3RpbWUuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDFhZTg1YjU4YjUxZDJmYjFmYWM1YjkzMDk1ZjYwNDJjZjQ4YWU3YgpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgMzEgMTk6NTM6MDYgMjAwOCAtMDUwMAoKICAgIEZpeCBjb21waWxhdGlvbiBlcnJvciBmb3IgVEFTUkVHCgogICAgVEFTUkVHIGlzIENvbGRGaXJlIHBsYXRmb3JtLCB0aGUgaW5jbHVkZSBwcGM0eHguaCBpbgogICAgYm9hcmQvZXNkL2NvbW1vbi9mbGFzaC5jIGNhdXNlcyBjb25mbGljdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM1ZDNiZDNjYzM1YzUwOGE2ODIzZGFjNzdlMGZkMTI2ODA4ZTRmYzcKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDMxIDE5OjUyOjM2IDIwMDggLTA1MDAKCiAgICBGaXggY29tcGlsYXRpb24gZXJyb3IgZm9yIE1DRjUyNzUKCiAgICBSZW5hbWUgT0JKIHRvIENPQkogaW4gYm9hcmQvcGxhdGZvcm0vTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVjNDA1NDhmMDEyMTgzNjBhMWYxMzk1MTk4YzUwZmY0NWYzMDM1YjUKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDMxIDE5OjUyOjI4IDIwMDggLTA1MDAKCiAgICBGaXggY29tcGlsZSBlcnJvciBjYXVzZWQgYnkgaW5jb3JyZWN0IGZ1bmN0aW9uIHJldHVybiB0eXBlCgogICAgUmVuYW1lIGludCBtaWlfaW5pdCh2b2lkKSB0byB2b2lkIG1paV9pbml0KHZvaWQpIGZvciBpZG1yCiAgICBDb2xkRmlyZSBwbGF0Zm9ybQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTU4Yzc4MDY3YzkyODk3NmMwODJjNzU4ZDM5ODdlODllYWQ1YjE5MQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBBdWcgMSAxMjowNjoyMiAyMDA4ICswMjAwCgogICAgRml4IGJ1aWxkIGlzc3VlcyB3aXRoIE1QQzh4eCBGQURTIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDRiNTBjZDEyYTNiM2M2NDQxNTNjNGNmMzkzZjRhNGMxMjI4OWU1YWEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgSnVsIDMxIDE3OjU0OjAzIDIwMDggKzAyMDAKCiAgICBQcmVwYXJlIHYxLjMuNC1yYzI6IHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGE0ODMxMTU1N2RiNmU3ZTk0NzNhNjE2M2I0NGJiMWU2YzZlZDY0YzQKQXV0aG9yOiBNYXJrIEphY2tzb24gPG1wZmpAbWltYy5jby51az4KRGF0ZToJVGh1IEp1bCAzMSAxNjowOTowMCAyMDA4ICswMTAwCgogICAgQWRkIGd6aXBwZWQgbG9nbyBzdXBwb3J0CgogICAgVGhlIFJFQURNRSBmaWxlIHN0YXRlcyB0aGF0IENPTkZJR19WSURFT19CTVBfR1pJUCBiZWhhdmVzIGFzIGZvbGxvd3M6CgogICAgICBJZiB0aGlzIG9wdGlvbiBpcyBzZXQsIGFkZGl0aW9uYWxseSB0byBzdGFuZGFyZCBCTVAKICAgICAgaW1hZ2VzLCBnemlwcGVkIEJNUCBpbWFnZXMgY2FuIGJlIGRpc3BsYXllZCB2aWEgdGhlCiAgICAgIHNwbGFzaHNjcmVlbiBzdXBwb3J0IG9yIHRoZSBibXAgY29tbWFuZC4KCiAgICBIb3dldmVyLCB0aGUgc3BsYXNoc2NyZWVuIGZ1bmN0aW9uICpvbmx5KiBzdXBwb3J0cyBzdGFuZGFyZCBCTVAgaW1hZ2VzLgoKICAgIFRoaXMgcGF0Y2ggYWRkcyB0aGUgZG9jdW1lbnRlZCBnemlwIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyayBKYWNrc29uIDxtcGZqQG1pbWMuY28udWs+Cgpjb21taXQgYTViY2IwMWZiZGU2YjFmMWM5ODYzY2Q4NmU1YzRjMzY5ZjAxMjFhYwpBdXRob3I6IE1hcmsgSmFja3NvbiA8bXBmakBtaW1jLmNvLnVrPgpEYXRlOglUaHUgSnVsIDMxIDE1OjU2OjQ4IDIwMDggKzAxMDAKCiAgICBGaXggQXRtZWwgTENEIGNvbnRyb2xsZXIgZW5kaWFuZXNzIGZvciBBVlIzMiBwcm9jZXNzb3JzCgogICAgVGhlIEF0bWVsIGxjZCBjb250cm9sbGVyIGlzIHVzZWQgb24gQXRtZWwncyBBVDkxIChsaXR0bGUgZW5kaWFuKSBhbmQKICAgIEFWUjMyIChiaWcgZW5kaWFuKSBwbGF0Zm9ybXMuCgogICAgQXMgc3VjaCwgdGhlIGNvbnRyb2xsZXIgY2FuIGhhbmRsZSBib3RoIGJpZyBhbmQgbGl0dGxlIGVuZGlhbiBtZW1vcnkuCgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgZHJpdmVyIGZvciB0aGUgQVZSMzIgcGxhdGZvcm0uCgogICAgU2lnbmVkLW9mZi1ieTogTWFyayBKYWNrc29uIDxtcGZqQG1pbWMuY28udWs+Cgpjb21taXQgY2RiOGJkMmZkM2JjYmU2NWQ4ZTQzMzRhNTVmNWE2Njc4NDU0MjZhMQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVRodSBKdWwgMzEgMTU6NTY6MDEgMjAwOCArMDIwMAoKICAgIGFwb2xsb246IGZpeCBidWlsZCBvdXQgb2YgdHJlZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMmU3NTJiZTM5ZDNlMzk4ZDRhYjg5ZmZhNjYzNGMzOTdkZjI5ODI5NwpBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJVGh1IEp1bCAzMSAxMjozNTowNCAyMDA4ICswMjAwCgogICAgVW5jb21wcmVzc2VkIGltYWdlcyBsb2FkZWQgdG8gdGhlaXIgc3RhcnQgYWRkcmVzcyBzaGFsbCBzZXQgbG9hZF9lbmQgdG9vCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgogICAgQWNrZWQtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgYzM3MjA3ZDdmNTFlMTljMTdmODU5OTY2ZjMxNGUyN2NjMTIzMTgwMQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKdWwgMTYgMTY6Mzg6NTkgMjAwOCArMDIwMAoKICAgIEZpeCBwcmludGYoKSBmb3JtYXQgcHJvYmxlbXMgd2l0aCBjb25maWd1cmFibGUgcHJvbXB0cwoKICAgIFUtQm9vdCBhbGxvd3MgZm9yIGNvbmZpZ3VyYWJsZSBwcm9tcHQgc3RyaW5ncyB1c2luZyB0aGUKICAgIENPTkZJR19BVVRPQk9PVF9QUk9NUFQgcmVzcC4gQ09ORklHX01FTlVQUk9NUFQgZGVmaW5pdGlvbnMuIFNvIGZhciwKICAgIHRoZSBhc3N1bXB0aW9uIHdhcyB0aGF0IGFueSBzdWNoIHVzZXIgZGVmaW5lZCBwcm9ibHRzIHdvdWxkIGNvbnRhaW4KICAgIGV4YWN0bHkgb25lICIlZCIgZm9ybWF0IHNwZWNpZmllci4gQnV0IHNvbWUgYm9hcmRzIGRpZCBub3QuCgogICAgVG8gYWxsb3cgZm9yIGZsZXhpYmxlIGJvb3QgcHJvbXB0cyB3aXRob3V0IGFkZGluZyB0b28gY29tcGxleCBjb2RlIHdlCiAgICBub3cgYWxsb3cgdG8gc3BlY2lmeSB0aGUgd2hvbGUgbGlzdCBvZiBwcmludGYoKSBhcmd1bWVudHMgaW4gdGhlIHVzZXIKICAgIGRlZmluaXRpb24uIFRoaXMgaXMgcG93ZXJmdWwsIGJ1dCByZXF1aXJlcyBhIHJlc3BvbnNpYmxlIHVzZXIgd2hvCiAgICByZWFsbHkgdW5kZXJzdGFuZHMgd2hhdCBoZSBpcyBkb2luZywgYXMgaGUgbmVlZHMgdG8ga25vdyBmb3IgZXhhbnBsZQogICAgd2hpY2ggdmFyaWFibGVzIGFyZSBhdmFpbGFibGUgaW4gdGhlIHJlc3BlY3RpdmUgY29udGV4dC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDU0NzU0MTIwNjM3YjZhN2Y0ZmY3NzRmYjE5OWZjNTUwYmNmZWExZGEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgSnVsIDMxIDE3OjAyOjE0IDIwMDggKzAyMDAKCiAgICBUUU04NXh4OiBmaXggdHlwbyBpbnRyb2R1Y2UgYnkgY29tbWl0IGZmYmI1Y2I5CgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAwYjQ5NTFkNGNkZGNhOWNjODAwNzQ1ODkxYzk1YjI5MWU0N2NiYmQ3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEp1bCAzMSAxNToyNzowMSAyMDA4ICswMjAwCgogICAgbXZiY19wIGJvYXJkOiBmaXggbW9zdCBidWlsZCB3YXJuaW5ncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGM0ZWM2ZGIwNzQwNTFkMmY2ZmM3NmE2NjQxMWM2MDYyMWIyMmJjMDIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgSnVsIDMxIDEzOjU3OjIwIDIwMDggKzAyMDAKCiAgICBFMTAwMDogY2xlYW4gdXAgQ09ORklHX0UxMDAwX0ZBTExCQUNLX01BQyBoYW5kbGluZwoKICAgIEF2b2lkICJpbnRlZ2VyIGNvbnN0YW50IGlzIHRvbyBsYXJnZSBmb3IgJ2xvbmcnIHR5cGUiIHdhcm5pbmdzLgogICAgQW5kIHNpbXBsaWZ5IHRoZSBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgOTE5NmI0NDMzNGMzMzBjYzEzZGUyNDY0YzU5MTgxZTRkYjcxZjU0OQpBdXRob3I6IE1hdHZlamNoaWtvdiBJbHlhIDxtYXR2ZWpjaGlrb3ZAZ21haWwuY29tPgpEYXRlOglXZWQgSnVsIDMwIDIzOjIxOjE5IDIwMDggKzA0MDAKCiAgICA4MjYwOiBNYWtpbmcgdGhlIHVzZSBvZiBnZC0+cGNpX2NsayBkZXBlbmRhbnQgb24gdGhlIENPTkZJR19QQ0kKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR2ZWpjaGlrb3YgSWx5YSA8bWF0dmVqY2hpa292QGdtYWlsLmNvbT4KCmNvbW1pdCA2MzYxYWQ0YjU5NmY1YTk0MGEwMWM5MWFlMDI5N2Q5OGY3OTBjYmUwCkF1dGhvcjogTWF0dmVqY2hpa292IElseWEgPG1hdHZlamNoaWtvdkBnbWFpbC5jb20+CkRhdGU6CVdlZCBKdWwgMzAgMjM6MjA6MzIgMjAwOCArMDQwMAoKICAgIFBQQzogQWRkIHBjaV9jbGsgaW4gdGhlIGdsb2JhbF9kYXRhIGZvciBDUE0yIHByb2Nlc3NvcnMKCiAgICBUaGlzIHBhdGNoIGFkZHMgcGNpX2NsayBmaWVsZCB0byB0aGUgZ2xvYmFsX2RhdGEgc3RydWN0dXJlIGZvciB0aGUKICAgIHByb2Nlc3NvcnMgd2hpY2ggaGF2ZSBDUE0yIG1vZHVsZSBpbiBjYXNlIHRoZSBDT05GSUdfUENJIGlzIGRlZmluZWQuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dmVqY2hpa292IElseWEgPG1hdHZlamNoaWtvdkBnbWFpbC5jb20+Cgpjb21taXQgZjBmZjg4NWNhNjQ2NTViZWU2NTQwZWI4YTI1ZWVkOTBiMTE1MjY4NgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBKdWwgMzAgMTQ6MTM6MzAgMjAwOCAtMDUwMAoKICAgIG1wYzg1eHg6IFVwZGF0ZSBsaW5rZXIgc2NyaXB0cyBmb3IgRnJlZXNjYWxlIGJvYXJkcwoKICAgICogTW92ZSB0byB1c2luZyBhYnNvbHV0ZSBhZGRyZXNzaW5nIGFsd2F5cy4gIE1ha2VzIHRoZSBzY3JpcHRzIGEgYml0IG1vcmUKICAgICAgcG9ydGFibGUgYW5kIGNvbW1vbgogICAgKiBNb3ZlZCAuYnNzIGFmdGVyIHRoZSBlbmQgb2YgdGhlIGltYWdlLiAgVGhlc2UgYWxsb3dzIHVzIHRvIGhhdmUgbW9yZQogICAgICByb29tIGluIHRoZSByZXN1bHRpbmcgYmluYXJ5IGltYWdlIGZvciBjb2RlIGFuZCBkYXRhLgogICAgKiBSZW1vdmVkIC50ZXh0IG9iamVjdCBmaWxlcyB0aGF0IGFyZW4ndCByZWFsbHkgbmVlZGVkCiAgICAqIE1ha2Ugc3VyZSBfZW5kIGlzIDQtYnl0ZSBhbGlnbmVkIGFzIHRoZSAuYnNzIGluaXQgY29kZSBleHBlY3RzIHRoaXMuCiAgICAgIChJdHMgcG9zc2libGUgdGhhdCB0aGUgZW5kIG9mIC5ic3MgaXNuJ3QgNC1ieXRlIGFsaWduZWQpCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA1N2MyMTlhZDVkMzRkZDlkNDk5OTE3NzdhNjJlMzg5OTU5NWYyZWM3CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEp1bCAzMCAwODowMToxNSAyMDA4IC0wNTAwCgogICAgRml4IGNvbXBpbGUgd2FybmluZ3MgaW4gZGxtYWxsb2MKCiAgICBUaGUgb3JpZ2lvbmFsIGNvZGUgd2FzIHVzaW5nIG9uIG9kZCByZWZlcmVuY2UgdG8gZ2V0IHRvIHRoZSBmaXJzdAogICAgcmVhbCBlbGVtZW50IGluIGF2X1tdLiAgVGhlIGZpcnN0IHR3byBlbGVtZW50cyBvZiB0aGUgYXJyYXkgYXJlCiAgICBub3QgdXNlZCBmb3IgYWN0dWFsIGJpbnMsIGJ1dCBmb3IgaG91c2Uga2VlcGluZy4gIElmIHdlIGFyZSBtb3JlCiAgICBleHBsaWNpdCBhYm91dCBob3cgdXNlIHRoZSBmaXJzdCBmZXcgZWxlbWVudHMgd2UgY2FuIGdldCByaWQgb2YgdGhlCiAgICB3YXJuaW5nczoKCiAgICBkbG1hbGxvYy5jOiBJbiBmdW5jdGlvbiAnbWFsbG9jX2V4dGVuZF90b3AnOgogICAgZGxtYWxsb2MuYzoxOTcxOiB3YXJuaW5nOiBkZXJlZmVyZW5jaW5nIHR5cGUtcHVubmVkIHBvaW50ZXIgd2lsbCBicmVhayBzdHJpY3QtYWxpYXNpbmcgcnVsZXMKICAgIGRsbWFsbG9jLmM6MTk5OTogd2FybmluZzogZGVyZWZlcmVuY2luZyB0eXBlLXB1bm5lZCBwb2ludGVyIHdpbGwgYnJlYWsgc3RyaWN0LWFsaWFzaW5nIHJ1bGVzCiAgICBkbG1hbGxvYy5jOjIwMjk6IHdhcm5pbmc6IGRlcmVmZXJlbmNpbmcgdHlwZS1wdW5uZWQgcG9pbnRlciB3aWxsIGJyZWFrIHN0cmljdC1hbGlhc2luZyBydWxlcwogICAgLi4uCgogICAgVGhlIGxvZ2ljIG9mIGhvdyB0aGlzIGNvZGUgY2FtZSB0byBiZSBpczoKCWJpbl9hdCgwKSA9IChjaGFyKikmKGF2X1syXSkgLSAyKlNJWkVfU1oKCiAgICBTSVpFX1NaIGlzIHRoZSBzaXplIG9mIHBvaW50ZXIsIGFuZCBhdl8gaXMgYXJyeSBvZiBwb2ludGVycyBzbzoKCWJpbl9hdCgwKSA9ICYoYXZfWzBdKQoKICAgIEdvaW5nIGZyb20gdGhlcmUgdG8gYmluX2F0KDApLT5mZCBvciBiaW5fYXQoMCktPnNpemUgc2hvdWxkIGJlIHN0cmFpZ2h0IGZvcndhcmQuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAzZjlhZTFhNWQ0M2M0OWE4ZWNmNDk3NDcwYzNkMWQ4MDI1NWU0NGI5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSnVsIDMwIDEwOjIxOjAxIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBXN09MTUcgY29tcGlsZSBwcm9ibGVtcyBieSBhZGRpbmcgbWlzc2luZyBMTTc1IGRlZmluZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWJiODZjNGVjZDM3YTc3MDEzNTgyODRlNDk3Y2E0YzY0ODNjN2NjNQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEp1bCAzMCAwOTo1OTo1MSAyMDA4ICswMjAwCgogICAgY21kX2Jvb3RtLmM6IEZpeCBwcm9ibGVtIHdpdGggJyNpZiAoQ09ORklHX0NNRF9VU0IpJwoKICAgIEEgcmVjZW50IHBhdGNoIHVzZWQgJyNpZiAoQ09ORklHX0NNRF9VU0IpJyBpbnN0ZWFkIG9mCiAgICAnI2lmIGRlZmluZWQoQ09ORklHX0NNRF9VU0IpJy4gVGhpcyBwYXRjaCBmaXhlcyB0aGlzIHByb2JsZW0gYW5kIG1ha2VzCiAgICBjb21tb24vYm9vdG0uYyBjb21waWxlIGFnYWluLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IDJjYjkwODA0MjdmZTY0MWRjYjcxZGE0NmNkMDYzNGRkNDA2ZjM3ZWQKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxrbXBhcmtAaW5mcmFkZWFkLm9yZz4KRGF0ZToJVHVlIEp1bCAyMiAwODowMTo0MyAyMDA4ICswOTAwCgogICAgUmVtb3ZlIHVudXNlZCBJMkMgYXQgYXBvbGxvbiBib2FyZAoKICAgIFRoZXJlIGFyZSBubyBJMkMgZGV2aWNlcyBvbiB0aGlzIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgM2M5NTk2MGU1MjZiM2IwMjZkYTIwMjAxZGI2NDUyNmY0NmZhZjE0YgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgMzEgMTA6MTI6MDkgMjAwOCArMDIwMAoKICAgIGF0OTFybTkyMDBkaywgY3NiNjM3OiBmaXggTkFORCByZWxhdGVkIGJ1aWxkIHByb2JsZW1zCgogICAgVHJpZWQgZml4aW5nIE5BTkQgc3VwcG9ydCBmb3IgdGhlIGF0OTFybTkyMDBkayBib2FyZDsgdW50ZXN0ZWQuCiAgICBEaXNhYmxlZCBOQU5EIHN1cHBvcnQgaW4gdGhlIGNzYjYzNyBib2FyZCBjb25maWcgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDkyNDZmNWVjZmQzNTNhZTI5N2EwMmZmZDUzMjg0MDJhY2YxNmM5ZGQKQXV0aG9yOiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQHVhbS5lcz4KRGF0ZToJV2VkIEp1bCAzMCAxMjozOToyOCAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBNTDUwNzogRW52aXJvbm1lbnQgaW4gZmxhc2ggYW5kIE1URCBTdXBwb3J0CgogICAgLSBSZWxvY2F0ZSB0aGUgbG9jYXRpb24gb2YgVS1Cb290IGluIHRoZSBmbGFzaAogICAgLSBTYXZlIHRoZSBlbnZpcm9ubWVudCBpbiBvbmUgc2VjdG9yIG9mIHRoZSBmbGFzaCBtZW1vcnkKICAgIC0gTVREIFN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQHVhbS5lcz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhOGExNmFmNGQ1OWQxNGNjMWMxMTg3YzEwYWFhZDgwZDZiODM5NGI1CkF1dGhvcjogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CkRhdGU6CVR1ZSBKdWwgMjkgMTc6MTY6MTAgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogTUw1MDc6IFVzZSBvZiBnZXRfcmFtX3NpemUgaW4gYm9hcmQgbWw1MDcKCiAgICAtIENoYW5nZSBzdWdnZXN0ZWQgYnkgV0QKCiAgICBTaWduZWQtb2ZmLWJ5OiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQHVhbS5lcz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwMWEwMDQzMTNjNWVjMmQxMjhiNjExZGY0YzIwOGIxYjBkM2MzZmI0CkF1dGhvcjogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CkRhdGU6CU1vbiBKdWwgMjEgMjA6MzA6MDcgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogTUw1MDc6IFUtQm9vdCBpbiBmbGFzaCBhbmQgU3lzdGVtIEFDRQoKICAgIFRoaXMgcGF0Y2ggYWxsb3dzIGJvb3RpbmcgZnJvbSBGTEFTSCB0aGUgTUw1MDcgYm9hcmQgYnkgWGlsaW54LgogICAgUHJldmlvdXNseSwgVS1Cb290IG5lZWRlZCB0byBiZSBsb2FkZWQgZnJvbSBKVEFHIG9yIGEgU3l0ZW0gQUNFIENGCgogICAgU2lnbmVkLW9mZi1ieTogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNWMzNzRjOWVlMTZmZWUyYmY2ODUzM2NjNDAxMGIzYzBkZjIxZjc4MwpBdXRob3I6IEp1bGllbiBNYXkgPG1haWxpbmdsaXN0QG1pcm9taWNvLmNoPgpEYXRlOglNb24gSnVuIDIzIDEzOjU3OjUyIDIwMDggKzAyMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIGhhbW1lcmhlYWQgKEFWUjMyKSBib2FyZAoKICAgIFRoZSBIYW1tZXJoZWFkIHBsYXRmb3JtIGlzIGJ1aWx0IGFyb3VuZCBhIEFWUjMyIDMyLWJpdCBtaWNyb2NvbnRyb2xsZXIKICAgIGZyb20gQXRtZWwuICBJdCBvZmZlcnMgdmVyc2F0aWxlIHBlcmlwaGVyYWxzLCBzdWNoIGFzIGV0aGVybmV0LCB1c2IKICAgIGRldmljZSwgdXNiIGhvc3QgZXRjLgoKICAgIFRoZSBib2FyZCBhbHNvIGluY29vcGVyYXRlcyBhIHBvd2VyIHN1cHBseSBhbmQgaXMgYSBQb3dlciBvdmVyIEV0aGVybmV0CiAgICAoUG9FKSBQb3dlcmVkIERldmljZSAoUEQpLgoKICAgIEFkZGl0b25hbGx5LCBhIEN5Y2xvbmUgSUlJIEZQR0EgZnJvbSBBbHRlcmEgaXMgaW50ZWdyYXRlZCBvbiB0aGUgYm9hcmQuCiAgICBUaGUgRlBHQSBpcyBtYXBwZWQgaW50byB0aGUgMzItYml0IEFWUiBtZW1vcnkgYnVzLiBUaGUgRlBHQSBvZmZlcnMgdHdvCiAgICBERFIyIFNEUkFNIGludGVyZmFjZXMsIHdoaWNoIHdpbGwgY292ZXIgZXZlbiB0aGUgbW9zdCBleGNlcHRpb25hbCBuZWVkCiAgICBvZiBtZW1vcnkgYmFuZHdpZHRoLiBUb2dldGhlciB3aXRoIHRoZSBvbmJvYXJkIHZpZGVvIGRlY29kZXIgdGhlIGJvYXJkCiAgICBpcyByZWFkeSBmb3IgdmlkZW8gcHJvY2Vzc2luZy4KCiAgICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWU6IGh0dHA6Ly8vd3d3Lm1pcm9taWNvLmNvbS9oYW1tZXJoZWFkCgogICAgU2lnbmVkLW9mZi1ieTogSnVsaWVuIE1heSA8bWFpbGluZ2xpc3RAbWlyb21pY28uY2g+CiAgICBbaGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbTogdmFyaW91cyBzbWFsbCBmaXhlcyBhbmQgYWRhcHRpb25zXQogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDA5ZDMxOGE4YmIxNDQ0ZWM5MmUzMWNhZmNkYmE4NzdlYjk0MDllNTgKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgSnVsIDI5IDEyOjIzOjQ5IDIwMDggLTA1MDAKCiAgICBmc2xfaTJjOiBVc2UgdGltZWJhc2UgdGltZXIgZnVuY3Rpb25zIGluc3RlYWQgb2YgZ2V0X3RpbWVyKCkKCiAgICBUaGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBvZiBnZXRfdGltZXIoKSBpcyBvbmx5IHJlYWxseSB1c2VmdWwgYWZ0ZXIgd2UKICAgIGhhdmUgcmVsb2NhdGVkIHUtYm9vdCB0byBtZW1vcnkuICBUaGUgaTJjIGNvZGUgaXMgdXNlZCBiZWZvcmUgdGhhdCBhcyBwYXJ0CiAgICBvZiB0aGUgU1BEIEREUiBzZXR1cC4KCiAgICBXZSBhY3R1YWxseSBoYXZlIGEgYnVnIHdoZW4gdXNpbmcgdGhlIGdldF90aW1lcigpIGNvZGUgYmVmb3JlIHJlbG9jYXRpb24KICAgIGJlY2F1c2UgdGhlIC5ic3MgaGFzbid0IGJlZW4gc2V0dXAgYW5kIHRodXMgd2UgY291bGQgYmUgcmVhZGluZy93cml0aW5nCiAgICBhIHJhbmRvbSBsb2NhdGlvbiAocHJvYmFibHkgaW4gZmxhc2gpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNGZjNzJhMGQ2Y2E4NTA3MGE1ZTkwZDc2Y2M1YTg1MzUyNmFjMDljNApBdXRob3I6IEZyYW5rIFN2ZW5kc2LDuGUgPGZyYW5rLnN2ZW5kc2JvZUBnbWFpbC5jb20+CkRhdGU6CVR1ZSBKdWwgMjkgMTQ6NDk6MzEgMjAwOCArMDIwMAoKICAgIEFkZGVyOHh4OiBGaXggQ0ZHX01PTklUT1JfTEVOCgogICAgRHVlIHRvIGluY3JlYXNlZCBzcGFjZSB1c2FnZSwgVS1Cb290IGNhbiBubyBsb25nZXIgYmUgc3RvcmVkIGluIHRocmVlIHNlY3RvcnMuCiAgICBUaGUgY3VycmVudCBVLUJvb3QgdXNlIGp1c3Qgb3ZlciB0aHJlZSBmbGFzaCBzZWN0b3JzICgxOTdrKSwgYW5kIFUtQm9vdCB3aWxsCiAgICBiZWNvbWUgY29ycnVwdCBhZnRlciBzYXZpbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzLiBUaGlzIHBhdGNoIGFkZHMgYW5vdGhlciA2NGsKICAgIHRvIENGR19NT05JVE9SX0xFTi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBGcmFuayBFLiBTdmVuZHNiw7hlIDxmcmFuay5zdmVuZHNib2VAZ21haWwuY29tPgoKY29tbWl0IGE0YzU5YWQ0YTIxMTQwNTUwYWRhNmY5NzY5MGQyNTI3YzQxNDZjZTUKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxrbXBhcmtAaW5mcmFkZWFkLm9yZz4KRGF0ZToJVHVlIEp1bCAyOSAwODo0Nzo1NyAyMDA4ICswOTAwCgogICAgQWRkIE9uZU5BTkQgSVBMIHJlbGF0ZWQgZmlsZXMgdG8gZ2l0aWdub3JlCgogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCA4ZDg3NTg5ZThlODc0ZGY3MTIwYTNkOTY2N2YwNTFiYzMzYmFjMjUwCkF1dGhvcjogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KRGF0ZToJTW9uIEp1bCAyOCAyMDozODoyNSAyMDA4ICswMjAwCgogICAgQVBJOiBUZWFjaCB0aGUgc3RvcmFnZSBsYXllciBhYm91dCBTQVRBIGFuZCBNTUMgb3B0aW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBDenViYWsgPHJjekBzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA2YjczYjc1NGY3ODJlMWVjY2U1MDQ4YmYyMGIyMmNlNTZhMDdhNWI4CkF1dGhvcjogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KRGF0ZToJTW9uIEp1bCAyOCAyMDozNzo0OCAyMDA4ICswMjAwCgogICAgQVBJOiBEdW1wIGNvbnRlbnRzIG9mIHNlY3RvciAwIGluIHRoZSBkZW1vIGFwcGxpY2F0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEN6dWJhayA8cmN6QHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgoKY29tbWl0IDEzY2E2MzA1ZjJlYmE0OWMxNzVmNjM3MGMzNTI4NjE0MTA1OWM3ODkKQXV0aG9yOiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgpEYXRlOglNb24gSnVsIDI4IDIwOjM3OjEwIDIwMDggKzAyMDAKCiAgICBBUEk6IENvcnJlY3Qgc3RvcmFnZSBlbnVtZXJhdGlvbiByb3V0aW5lLCBvdGhlciBtaW5vciBmaXhlcyBpbiBBUEkgc3RvcmFnZSBhcmVhLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEN6dWJhayA8cmN6QHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgoKY29tbWl0IDA1YzdmZTBmMDQ5YjFjOWViOWExOTkyZjI3ZTVlMzUwZDg2NWY0YTgKQXV0aG9yOiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgpEYXRlOglNb24gSnVsIDI4IDIwOjM2OjE5IDIwMDggKzAyMDAKCiAgICBBUEk6IEZpeCBjb21waWxhdGlvbiB3YXJuaW5ncyBpbiBhcGlfZXhhbXBsZXMvZGVtby5jLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEN6dWJhayA8cmN6QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBjMTRlZWZjYzQ4MjEyYWYyZjMzMTQ4MDk2MDU2OThkZDgzOTNhOTBhCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIEp1bCAyNyAxNzowOTo0MyAyMDA4ICswMjAwCgogICAgRml4IG1vcmUgcHJpbnRmKCkgZm9ybWF0IHdhcm5pbmdzCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA5MzY4OTdkNGQxMzY1NDUyYmJiZGY4NDMwZGI1ZTc3NjllZjA4ZDM4CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIEp1bCAyNSAxNToxODoxNiAyMDA4ICswMjAwCgogICAgRml4IHJlbWFpbmluZyBDRkdfQ01EXyBkZWZpbmUsIGlmZGVmIGFuZCBjb21tZW50cwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNWQxZDAwZmIzNjAwNTQ4MmUxODAzYTAwZGRjNDZlZmExMWQ3MTlhZgpBdXRob3I6IFN0ZWZhbm8gQmFiaWMgPHNiYWJpY0BkZW54LmRlPgpEYXRlOglGcmkgSnVsIDI1IDA4OjU3OjQwIDIwMDggKzAyMDAKCiAgICBBZGQgaW5jbHVkZSBmb3IgY29uZmlnLmggaW4gY29tbWFuZC5oLgoKICAgIEJlY2F1c2UgdGhlIGNtZF90YmxfcyBzdHJ1Y3R1cmUgZGVwZW5kcyBvbiB0aGUgY29uZmlndXJhdGlvbiBmaWxlLCBpdAogICAgbXVzdCBiZSBhc3N1cmVkIHRoYXQgY29uZmlnLmggaXMgaW5jbHVkZWQgYmVmb3JlIHRoZSBzdHJ1Y3R1cmUgaXMKICAgIGV2YWx1YXRlZCBieSB0aGUgY29tcGlsZXIuIElmIHRoaXMgaXMgbm90IGNlcnRhaW4sIGl0IGNvdWxkIGhhcHBlbgogICAgdGhhdCB0aGUgY29tcGlsZXIgZ2VuZXJhdGVzIHN0cnVjdHVyZXMgb2YgZGlmZmVyZW50IHNpemUsIGRlcGVuZGluZwogICAgb24gdGhlIGZhY3QgaWYgdGhlIHNvdXJjZSBmaWxlIGluY2x1ZGVzIDxjb25maWcuaD4gYmVmb3JlIG9yIGFmdGVyCiAgICA8Y29tbWFuZC5oPi4KCiAgICBUaGUgZWZmZWN0IGlzIHRoYXQgdS1ib290IGNyYXNoZXMgd2hlbiB0cmllcyB0byByZWxvY2F0ZSB0aGUgY29tbWFuZAogICAgdGFibGUgKGZvciBwcGMpIG9yIHRyeSB0byBhY2Nlc3MgdG8gdGhlIGNvbW1hbmQgdGFibGUgZm9yIG90aGVyCiAgICBhcmNoaXRlY3R1cmVzLgoKICAgIFRoZSBwcm9ibGVtIGNhbiBoYXBwZW4gb24gYm9hcmQtZGVwZW5kaW5nIGNvbW1hbmRzLiBBbGwgZ2VuZXJhbAogICAgY29tbWFuZHMgdW5kZXIgL2NvbW1vbiBhcmUgdW5hZmZlY3RlZCwgYmVjYXVzZSB0aGV5IGluY2x1ZGUgYWxyZWFkeQogICAgY29uZmlnLmggYmVmb3JlIGNvbW1hbmQuaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIEJhYmljIDxzYmFiaWNAZGVueC5kZT4KCmNvbW1pdCAyZGFjYjczNGJhYzlkYmExZGI5ZTcwNGQzZTBiMjAwZWY1MjFjNzlhCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgMjMgMTM6MTY6MDYgMjAwOCAtMDUwMAoKICAgIE5BTkQ6ICQob2JqKS1xdWFsaWZ5IGVjYy5oIGluIGtpbGF1ZWEgTkFORCBib290IE1ha2VmaWxlLgoKICAgIFRoaXMgZml4ZXMgYnVpbGRpbmcgb3V0LW9mLXRyZWUuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzZkNTliZDlkYTllMTVkMTliODY3YjQ4NDQ5NDA4ODMwZjRlMmFkNQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglXZWQgSnVsIDIzIDA3OjMwOjQ2IDIwMDggKzAyMDAKCiAgICBGaXggd2FybmluZ3MgaWYgY29tcGlsaW5nIHdpdGggSURFIHN1cHBvcnQuCgogICAgY21kX2lkZS5jOjgyNzogV2FybnVuZzogd2VhayBkZWNsYXJhdGlvbiBvZiBgaWRlX291dGInIGFmdGVyIGZpcnN0IHVzZSByZXN1bHRzIGluIHVuc3BlY2lmaWVkIGJlaGF2aW9yCiAgICBjbWRfaWRlLmM6ODM5OiBXYXJudW5nOiB3ZWFrIGRlY2xhcmF0aW9uIG9mIGBpZGVfaW5iJyBhZnRlciBmaXJzdCB1c2UgcmVzdWx0cyBpbiB1bnNwZWNpZmllZCBiZWhhdmlvcgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDc2MTBkYjE3ZmQ0ZDU5YzUxZDgyNTQ4ODUyNmQ4NWVkZTJmMDY3NjcKQXV0aG9yOiBBZHJpYW4gRmlsaXBpIDxhZHJpYW4uZmlsaXBpQGV1cm90ZWNoLmNvbT4KRGF0ZToJVHVlIEp1bCAyMiAxNDoyODoxMSAyMDA4IC0wNDAwCgogICAgUmVtb3ZlZCBzdXBwb3J0IGZvciB0aGUgYWRzdml4IGJvYXJkLgoKICAgIFN1cHBvcnQgZm9yIHRoZSBhZHN2aXggd2FzIG9yaWdpbmFsbHkgcHJvdmlkZWQgYnkgQXBwbGllZCBEYXRhCiAgICBTeXN0ZW1zIChBRFMpLCBpbmMuLCBub3cgRXVyb1RlY2gsIEluYy4KICAgIFRoZSBib2FyZCBuZXZlciBzaGlwcGVkIGFzaWRlIGZyb20gc29tZSBzYW1wbGUgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFkcmlhbiBGaWxpcGkgPGFkcmlhbi5maWxpcGlAZXVyb3RlY2guY29tPgoKY29tbWl0IGY5NmI0NGNlZjg5N2JkMzcyYmViODZkZGUxYjMzNjM3YzExOWQ4NGQKQXV0aG9yOiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KRGF0ZToJVHVlIEp1bCAyMiAxNjoyMjoxMSAyMDA4ICswMjAwCgogICAgQVJNOiBzZXQgR0RfRkxHX1JFTE9DIGZvciBib2FyZHMgc2tpcHBpbmcgcmVsb2NhdGlvbiB0byBSQU0KCiAgICBJZiBDT05GSUdfU0tJUF9SRUxPQ0FURV9VQk9PVCBpcyBzZXQgdGhlIGZsYWcgR0RfRkxHX1JFTE9DIGlzIHVzdWFsbHkKICAgIG5ldmVyIHNldCwgYmVjYXVzZSByZWxvY2F0aW9uIHRvIFJBTSBpcyBhY3R1YWxseSBuZXZlciBkb25lIGJ5IFUtYm9vdAogICAgaXRzZWxmLiBIb3dldmVyLCBzZXZlcmFsIHBpZWNlcyBvZiBjb2RlIGNoZWNrIGlmIHRoaXMgZmxhZyBpcyBzZXQgYXQKICAgIHNvbWUgdGltZS4KCiAgICBTbywgdG8gbWFrZSBzdXJlIHRoaXMgZmxhZyBpcyBzZXQgb24gYm9hcmRzIHNraXBwaW5nIHJlbG9jYXRpb24sIHRoaXMKICAgIGlzIGFkZGVkIHRvIHRoZSBpbml0aWFsaXNhdGlvbiBvZiBVLWJvb3QgYXQgYSBtb21lbnQgd2hlcmUgaXQgaXMgc2FmZQogICAgdG8gZG8gc28uCgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+Cgpjb21taXQgZTRkYWZmZjg2ZjI4OWI1Njc3MTQzYTNlNDFkYTdiNDVjNmQyN2ZjNwpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgMjEgMTQ6MjY6MjMgMjAwOCAtMDUwMAoKICAgIGZzbC1pMmM6IGZpeCB3cml0ZXMgdG8gZGF0YSBzZWdtZW50IGJlZm9yZSByZWxvY2F0aW9uCgogICAgUHJldmVudCBpMmNfaW5pdCgpIGluIGZzbF9pMmMuYyBmcm9tIHdyaXRpbmcgdG8gdGhlIGRhdGEgc2VnbWVudCBiZWZvcmUKICAgIHJlbG9jYXRpb24uICBDb21taXQgZDhjODJkYjQgYWRkZWQgdGhlIGFiaWxpdHkgZm9yIGkyY19pbml0KCkgdG8gcHJvZ3JhbSB0aGUKICAgIEkyQyBidXMgc3BlZWQgYW5kIHNhdmUgdGhlIHZhbHVlIGluIGkyY19idXNfc3BlZWRbXSwgd2hpY2ggaXMgYSBnbG9iYWwKICAgIHZhcmlhYmxlLiAgSXQgaXMgYW4gZXJyb3IgdG8gd3JpdGUgdG8gdGhlIGRhdGEgc2VnbWVudCBiZWZvcmUgcmVsb2NhdGlvbiwKICAgIHdoaWNoIGlzIHdoYXQgaTJjX2luaXQoKSBkb2VzIHdoZW4gaXQgc3RvcmVzIHRoZSBidXMgc3BlZWQgaW4gaTJjX2J1c19zcGVlZFtdLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGJkMzIzODc5MjBlNWFkNmY5ZGQ1OGE3YjUwMTJiYmFiZTJhNmEyMQpBdXRob3I6IFdvbGZnYW5nIE9ja2VyIDx3ZW9AcmVjY293YXJlLmRlPgpEYXRlOglNb24gSnVsIDI4IDE2OjU2OjUxIDIwMDggKzAyMDAKCiAgICBtaXBzOiBGaXggYmF1ZHJhdGUgZGl2aXNvciBjb21wdXRhdGlvbiBvbiBhbGNoZW15IGNwdXMKCiAgICBVc2UgQ0ZHX01JUFNfVElNRVJfRlJFUSB3aGVuIGNvbXB1dGluZyB0aGUgYmF1ZHJhdGUgZGl2aXNvcgogICAgb24gYWxjaGVteSBjcHVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIE9ja2VyIDx3ZW9AcmVjY293YXJlLmRlPgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBjOGM4NDVjZmRjNmQwMjE3MTM1YzFkNTkyN2VlYmQyYjEzM2EzMzE0CkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJU2F0IEp1bCA1IDAwOjA4OjQ4IDIwMDggLTA3MDAKCiAgICBNb3ZlZCBpbml0aWFsaXphdGlvbiBvZiBBVlIzMiBFdGhlcm5ldCBjb250cm9sbGVycyB0byBib2FyZF9ldGhfaW5pdCgpCgogICAgUmVuYW1lZCBpbml0aWFsaXphdGlvbiBmdW5jdGlvbnMgZm9yIGF0bmd3MTAwIGFuZCBhdHN0azEwMDAuCiAgICBSZW1vdmVkIGluaXRpYWxpemF0aW9ucyBmb3IgdGhlc2UgYm9hcmRzIGZyb20gbmV0L2V0aC5jCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBhMjI5ZDI5MWYzMzMwOGFiNzc2MWQzOWYyNWZhMWE1M2MwZmMwMGEyCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgSnVsIDIzIDEwOjU1OjQ2IDIwMDggKzAyMDAKCiAgICBzcGkgZmxhc2g6IEZpeCBwcmludGYoKSBmb3JtYXQgd2FybmluZ3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMjUyYTVlMDczOGJjYWZhZjI1ZjdmYmI0MGYxOWE1OWFiYzJjYjEzZQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIEp1bCAyMyAxMDo1NTozMSAyMDA4ICswMjAwCgogICAgYXRtZWxfbWNpOiBGaXggcHJpbnRmKCkgZm9ybWF0IHdhcm5pbmdzCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDdmNGIwMDlmNDIzMmQ1NzA4NGNlMGVjNWFlYjNiNTdiY2NiMDhlNGMKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVdlZCBKdWwgMjMgMTA6NTU6MTUgMjAwOCArMDIwMAoKICAgIGF2cjMyOiBGaXggcHJpbnRmKCkgZm9ybWF0IHdhcm5pbmdzCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGE3OWMzZThkOWMzMWRiMjVkNWNhM2VjOGUwOGE5N2YzMjM0MTBkZDQKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVdlZCBKdWwgMjMgMTA6NTI6MTkgMjAwOCArMDIwMAoKICAgIGF2cjMyOiBhc20vaW8uaCBuZWVkcyBhc20vdHlwZXMuaAoKICAgIG1hcF9waHlzbWVtKCkgdGFrZXMgYSBwaHlzX2FkZHJfdCBhcyBwYXJhbWV0ZXIuIFRoaXMgdHlwZSBpcyBkZWZpbmVkIGluCiAgICBhc20vdHlwZXMuaCwgc28gd2UgbmVlZCB0byBpbmNsdWRlIHRoYXQgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMTk1M2QxMjhmZDA3ZjA3ZDFjMzgxMGEyOGMwODYzZWE2NGRhZTFiNgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJVGh1IEp1bCAxNyAxMjoyNTo0NiAyMDA4ICswMjAwCgogICAgbWljcm9ibGF6ZTogRml4IHByaW50ZigpIGZvcm1hdCBpc3N1ZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+Cgpjb21taXQgZGUyYTA3ZTUzNGYxOGIxY2E1Zjk4NjlhNGVmMDYwNGNhODI5Y2ZmMApBdXRob3I6IEd1cnVyYWphIEhlYmJhciBLIFIgPGd1cnVyYWpha3JAc2FueW8uY28uaW4+CkRhdGU6CVRodSBKdWwgMTcgMDc6Mjc6NTEgMjAwOCArMDUzMAoKICAgIFJlbW92ZSB1bnVzZWQgY29kZSBmcm9tIGxpYl9hcm0vYm9vdG0uYwoKICAgIFNpZ25lZC1vZmYtYnk6IEd1cnVyYWphIEhlYmJhciA8Z3VydXJhamFrckBzYW55by5jby5pbj4KCmNvbW1pdCBmZmJiNWNiOTQyZTk4NTZmYTI0ZTk0Njk3N2UwYTYwYzY0ZGYwNGFiCkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CVdlZCBKdWwgMTYgMTg6NTY6NDUgMjAwOCArMDIwMAoKICAgIHRxbTg1eHg6IERlbXlzdGlmeSAnREs6ICEhIScgY29tbWVudAoKICAgIFNpZ25lZC1vZmYtYnk6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgoKY29tbWl0IGIyZjQ0YmE1NzBmM2EwMTExM2JiYjc0NWRhZjQ2ZjM4NThkMjJmNTMKQXV0aG9yOiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KRGF0ZToJV2VkIEp1bCAxNiAxODo1Njo0NCAyMDA4ICswMjAwCgogICAgODN4eC84NXh4Lzg2eHg6IEFkZCBMVEVEUiBsb2NhbCBidXMgZGVmaW5pdGlvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCBmMTNmNjRjZjQyZDVhYmVjM2UwZjkyMDIzM2Y2YTdhNjFlN2FlNDk0CkF1dGhvcjogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CkRhdGU6CVdlZCBKdWwgMTYgMTY6MjI6MzIgMjAwOCArMDIwMAoKICAgIHNlcmlhbF94dWFydGxpdGUuYzogZml4IGNvbXBpbGVyIHdhcm5pbmdzCgogICAgU2lnbmVkLW9mZi1ieTogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CiAgICBBY2tlZC1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDg2NDQ2ZDNhNWQ5ZDNjYTgxZTg1ZDFjY2QzYWNjYWFhZTZmOGUzYzkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdWwgMTggMTE6MDM6MzUgMjAwOCArMDIwMAoKICAgIFBPU1Q6IEFkZCBkaXNhYmxlIGludGVycnVwdHMgaW4gc29tZSBvZiB0aGUgbWlzc2luZyBDUFUgUE9TVCB0ZXN0cwoKICAgIFNvbWUgQ1BVIFBPU1QgdGVzdHMgZGlkIG5vdCBkaXNhYmxlIHRoZSBpbnRlcnJ1cHRzIHdoaWxlIHJ1bm5pbmcuIFRoaXMKICAgIHNlZW1zIHRvIGJlIG5lY2Vzc2FyeSB0byBwcm90ZWN0IHRoaXMgc2VsZiBtb2RpZnlpbmcgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOTdhM2JmMjY4ZDA5NmUwZTk3ZTU0MDQ4NDQ4YzM1MTE0ZWRjZjU1NwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1bCAxOCAxMDo0MzoyNCAyMDA4ICswMjAwCgogICAgaWRlOiBVc2UgQ0ZHXzY0QklUX0xCQSBpbnN0ZWFkIG9mIENGR182NEJJVF9TVFJUT1VMCgogICAgVGhpcyBpcyBuZWVkZWQgZm9yIGJvYXJkcyB0aGF0IGRlZmluZSBDRkdfNjRCSVRfU1RSVE9VTCBidXQgZG9uJ3QgZGVmaW5lCiAgICBDRkdfNjRCSVRfTEJBLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwMDQzYWM1NTAyNDk2MzI5NWZjNzliMzlhZjg1YjZkYzNiMjYxZTE3CkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJRnJpIEp1bCAxOCAxMToyMjoyMyAyMDA4ICswMjAwCgogICAgUE9TVCBQUEM0eHgvc3ByIElWUFIgb25seSBpZiBQUEM0NDAKCiAgICBUaGUgU1BSIElWUFIgcmVnaXN0ZXIgaXMgb25seSBwcmVzZW50IChhcyBmYXIgYXMgSSBrbm93KSBmb3IKICAgIHByb2Nlc3NvcnMgd2l0aCBhIFBQQzQ0MCBjb3JlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDEwOTJmYmQ2NDc0OGRmYTJlOTc5YjEwMjYxMWVjZTliYzVlYzE4NTUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdWwgMTggMTA6NDI6MjkgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRW5hYmxlIDY0Yml0IHByaW50ZiBmb3JtYXQgb24gNDQwLzQ2MCBwbGF0Zm9ybXMKCiAgICBUaGlzIHBhdGNoIGRlZmluZXMgQ0ZHXzY0QklUX1ZTUFJJTlRGIGFuZCBDRkdfNjRCSVRfU1RSVE9VTCBmb3IgYWxsCiAgICA0NDAvNDYwIHBsYXRmb3Jtcy4gVGhpcyBtYXkgYmUgbmVlZGVkIHNpbmNlIHRob3NlIHBsYXRmb3JtcyBzdXBwb3J0CiAgICAzNmJpdCBwaHlzaWNhbCBhZGRyZXNzIHNwYWNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2NmZlMTgzYjFkZDljNzUzNDYwNTE0N2E4ZWNmZWQxYzAyMzQ1ZWU1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVsIDE4IDE1OjU3OjIzIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBpbmNvcnJlY3QgTU9EVHggc2V0dXAgZm9yIHNvbWUgRElNTSBjb25maWd1cmF0aW9ucwoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBwcm9ibGVtIHdpdGggaW5jb3JyZWN0IE1PRFR4IChPbiBEaWUgVGVybWluYXRpb24pCiAgICBzZXR1cCBmb3IgYSBjb25maWd1cmF0aW9uIHdpdGggbXVsdGlwbGUgRElNTSdzIGFuZCBtdWx0aXBsZSByYW5rcy4KICAgIFdpdGhvdXQgdGhpcyBjaGFuZ2UgS2F0bWFpIHdhcyB1bmFibGUgdG8gYm9vdCBMaW51eCB3aXRoIEREUjIgZnJlcXVlbmN5CiAgICA+PSA1MzNNSHogYW5kIG1lbT49M0dCLiBXaXRoIHRoaXMgcGF0Y2ggS2F0bWFpIHN1Y2Nlc3NmdWxseSBib290cyBMaW51eAogICAgd2l0aCBERFIyIGZyZXF1ZW5jeSA9IDY0ME1IeiBhbmQgbWVtPTRHQi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNjAyMDRkMDZlZDlmOGMyYTY3Y2M3OWViNjdmZDJiMWQyMmJjYmM4YwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1bCAxOCAxMjoyNDo0MSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBNaW5vciBjb2Rpbmcgc3R5bGUgY2xlYW51cCBvZiBYaWxpbnggVmlydGV4NSBtbDUwNyBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDA4NjUxMWZjOTZhOGE5YmI1NmU1ZTE5YTNkODRjNDBmNGRiYTgwY2MKQXV0aG9yOiBSaWNhcmRvIFJpYmFsZGEgRGVsZ2FkbyA8cmljYXJkby5yaWJhbGRhQHVhbS5lcz4KRGF0ZToJVGh1IEp1bCAxNyAxMjo0NzowOSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBNTDUwNyBCb2FyZCBTdXBwb3J0CgogICAgVGhlIFhpbGlueCBNTDUwNyBCb2FyZCBpcyBhIFZpcnRleCA1IHByb3RvdHlwaW5nIGJvYXJkIHRoYXQgaW5jbHVkZXMsCglhbW9uZyBvdGhlcnM6CgktVmlydGV4IDUgRlggRlBHQSAoV2l0aCBhIHBwYzQ0MHg1IGluIGl0KQoJLTI1Nk1CIG9mIFNEUkFNMgoJLTMyTUIgb2YgRmxhc2gKCS1JMkMgRWVwcm9tCgktU3lzdGVtIEFDRSBjaGlwCgktU2VyaWFsIEFUQSBjb25uZWN0b3JzCgktUlMyMzIgTGV2ZWwgQ29udmVyc29ycwoJLUV0aGVybmV0IFRyYW5zY2VpdmVyCgogICAgVGhpcyBwYXRjaCBnaXZlcyBzdXBwb3J0IHRvIGEgc3RhbmRhcmQgZGVzaWduIHByb2R1Y2VkIGJ5IEVESyBmb3IgdGhpcwogICAgYm9hcmQ6IHBwYzQ0MCwgdWFydGxpdGUsIHhpbGlueF9pbnQgYW5kIGZsYXNoCgogICAgLSBJbmNsdWRlcyBDaGFuZ2VzIHByb3Bvc3NlZCBieSBTdGVmYW4gUm9lc2UgYW5kIE1pY2hhbCBTaW1lawoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2FyZG8gUmliYWxkYSBEZWxnYWRvIDxyaWNhcmRvLnJpYmFsZGFAdWFtLmVzPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkODY1ZmQwOTgwOWEzYTE4NjY5ZjM1Zjk3MDc4MTgyMGFmNDBlNGRlCkF1dGhvcjogUmljYXJkbyBSaWJhbGRhIERlbGdhZG8gPHJpY2FyZG8ucmliYWxkYUB1YW0uZXM+CkRhdGU6CVRodSBKdWwgMTcgMTE6NDQ6MTIgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQ1BVIFBQQzQ0MHg1IG9uIFZpcnRleDUgRlgKCiAgICAtVGhpcyBwYXRjaHMgZ2l2ZXMgc3VwcG9ydCBmb3IgdGhlIGVtYmJlZGRlZCBwcGM0NDAKICAgICBvbiB0aGUgVmlydGV4NSBGUEdBcwogICAgLWludGVycnVwdHMuYyBkaXZpZGVkIGluIHVpYy5jIGFuZCBpbnRlcnJ1cHRzLmMKICAgIC14aWxpbnhfaXJxLmMgZm9yIHhpbGlueCBpbnRlcnJ1cHQgY29udHJvbGxlcgogICAgLUluY2x1ZGUgbW9kaWZpY2F0aW9ucyBwcm9wb3NzZWQgYnkgIFN0ZWZhbiBSb2VzZQoKICAgIFNpZ25lZC1vZmYtYnk6IFJpY2FyZG8gUmliYWxkYSBEZWxnYWRvIDxyaWNhcmRvLnJpYmFsZGFAdWFtLmVzPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzNDBjY2IyNjBmMjE1MTZiZTM2MDc0NWQ1YzVlM2JkMDY1NzY5OGRmCkF1dGhvcjogU2ViYXN0aWFuIFNpZXdpb3IgPGJpZ2Vhc3lAbGludXRyb25peC5kZT4KRGF0ZToJV2VkIEp1bCAxNiAyMDowNDo0OSAyMDA4ICswMjAwCgogICAgY2ZpX2ZsYXNoOiBmaXggZmxhc2ggb24gQkUgbWFjaGluZXMgd2l0aCBDRkdfV1JJVEVfU1dBUFBFRF9EQVRBCgogICAgVGhpcyBnb3QgYnJva2VuIGJ5IGNvbW1pdHMgOTNjNTZmMjEyYwogICAgIFtjZmlfZmxhc2g6IHN1cHBvcnQgb2YgbG9uZyBjbWQgaW4gVS1ib290Ll0KCiAgICBUaGF0IGNvbW1hbmQgbmVlZHMgdG8gYmUgaW4gbGl0dGxlIGVuZGlhbiBmb3JtYXQgb24gQkUgbWFjaGluZXMKICAgIHdpdGggQ0ZHX1dSSVRFX1NXQVBQRURfREFUQS4gV2l0aG91dCB0aGlzIHBhdGNoLCB0aGUgY29tbWFuZCAweGYwCiAgICBnZXRzIHNhdmVkIG9uIHN0YWNrIGFzIDB4MDAgMDAgMDAgZjAgYW5kIDB4MDAgZ2V0cyB3cml0dGVuIGludG8KICAgIHRoZSBjbWRidWYgaW4gY2FzZSBwb3J0d2lkdGggPSBjaGlwd2lkdGggPSA4Yml0LgoKICAgIENjOiBBbGV4ZXkgS29yb2xldiA8YWtvcm9sZXZAaW5mcmFkZWFkLm9yZz4KICAgIENjOiBWYXNpbGl5IExlb25lbmtvIDx2YXNpbGl5Lmxlb25lbmtvQG1haWwucnU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTZWJhc3RpYW4gU2lld2lvciA8YmlnZWFzeUBsaW51dHJvbml4LmRlPgoKY29tbWl0IDExMTg4ZDU1YmMxNmRkOTA3NDUxYzAwMjgyZTAwYTAzOGY3M2RkNjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgMTcgMTA6NDA6NTEgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRml4IGFscGhhYmV0aWNhbCBvcmRlciBpbiA0eHggTWFrZWZpbGUgcGFydCAocmVkd29vZCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDIxZjZkZjZlOTZhZjViMzg3ODEwY2Y5NmQyNDg0OGRhMWZhYTU1YwpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglUaHUgSnVsIDEwIDE3OjIwOjUxIDIwMDggKzA0MDAKCiAgICA4M3h4OiBtcGM4MzE1ZXJkYjogZml4IHNpbGx5IHRoaW5rbyBpbiBmZHRfdHNlYzFfZml4dXAKCiAgICBUaGUgdGhpbmtvIHdhcyBxdWl0ZSBzaWxseSBpbmRlZWQsIEkgbWVzc2VkIHdpdGggIXB0ci4gTm9ybWFsbHkgdGhpcwogICAgd291bGQgdHJpZ2dlciBzb21lIGZhdWx0LCBidXQgaW4gVS1Cb290IE5VTEwgcG9pbnRlciBpcyBlcXVhbCB0byBwaHlzCiAgICAwLCBzbyB0aGUgY29kZSB3YXMgd29ya2luZyBzdGlsbCwganVzdCBkaWRuJ3QgYWN0dWFsbHkgdGVzdCBtcGM4MzE1ZXJkYgogICAgZW52aXJvbm1lbnQgdmFyaWFibGUgdmFsdWUuIEhlaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjVmNWYwZDQ5YTNhZTg5YmY0Mzk2ZjI1NTdjZTk4ZGViZmVmMjFkYQpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglUdWUgSnVsIDggMjE6MDA6MDQgMjAwOCArMDQwMAoKICAgIDgzeHg6IG1wYzgzMTVlcmRiOiBhZGQgc3VwcG9ydCBmb3Igc3dpdGNoaW5nIGJldHdlZW4gVUxQSS9VVE1JIFVTQiBQSFlzCgogICAgRnJlZXNjYWxlIHNoaXBzIE1QQzgzMTVFLVJEQiBib2FyZHMgZWl0aGVyIHdpdGggVFNFQzEgYW5kIFVTQiBVVE1JCiAgICBzdXBwb3J0LCBvciB3aXRob3V0IFRTRUMxIGJ1dCB3aXRoIFVTQiBVTFBJIFBIWSBzdXBwb3J0IGluIGFkZGl0aW9uLgogICAgV2l0aCB0aGlzIHBhdGNoIHVzZXIgY2FuIHNwZWNpZnkgZGVzaXJlZCBVU0IgUEhZLgoKICAgIEFsc28sIGl0IHNlZW1zIHRoYXQgd2UgY2FuJ3QgZGlzdGluZ3Vpc2ggdGhlIHR3byBib2FyZHMgaW4gc29mdHdhcmUsIHNvCiAgICB1c2VyIGhhdmUgdG8gc2V0IGBtcGM4MzE1ZXJkYicgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gZWl0aGVyICd0c2VjMScKICAgIChUU0VDMSBlbmFibGVkKSBvciBgdWxwaScgKGJvYXJkIHdpdGggVUxQSSBQSFksIFRTRUMxIGRpc2FibGVkKSwgc28gdGhhdAogICAgTGludXggd2lsbCBub3QgcHJvYmUgZm9yIFRTRUMxLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwMTViMjdiOWUxNjVmY2YyMjBlNDJmMmM0YWZiYWVhYTI3NThmY2Y2CkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CVR1ZSBKdWwgOCAyMDo1OTo0MyAyMDA4ICswNDAwCgogICAgZmR0X3N1cHBvcnQ6IGZkdF9maXh1cF9kcl91c2I6IGFkZCBzdXBwb3J0IGZvciBwaHlfdHlwZSBmaXh1cHMKCiAgICBDdXJyZW50bHkgVS1Cb290IGNhbiBvbmx5IGZpeHVwIHRoZSB1c2IgZHJfbW9kZSwgYnV0IHNvbWUgYm9hcmRzIChuYW1lbHkKICAgIE1QQzgzMTVFLVJEQikgY2FuIHVzZSB0d28gUEhZIHR5cGVzOiBVTFBJIChzdGFuZC1hbG9uZSBPVEcgcG9ydCkgb3IgVVRNSQogICAgKGNvbm5lY3RlZCB0byB0aGUgZm91ci1wb3J0cyBodWIsIHVzYiBob3N0IG9ubHkpLgoKICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBzdXBwb3J0IGZvciBwYXNzaW5nIER1YWwtUm9sZSBVU0IgY29udHJvbGxlcidzCiAgICBkZXZpY2UgdHJlZSBwcm9wZXJ0eSBwaHlfdHlwZSB0aHJvdWdoIHRoZSB1c2JfcGh5X3R5cGUgZW52aXJvbm1lbnQKICAgIHZhcmlhYmxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgogICAgQWNrZWQtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY5OWYwNTEyNTUwOTI0OTA3MmEwYjg2NWM4ZDM1NTIwZDk3Y2Q1MDEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgSnVsIDE1IDIyOjIyOjQ0IDIwMDggKzAyMDAKCiAgICBQcmVwYXJlIHYxLjMuNC1yYzE6IENvZGUgY2xlYW51cCwgdXBkYXRlIENIQU5HRUxPRywgc29ydCBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYmNhYjc0YmFhNmIxYjFjOTY5MDM4YWI2ZjY0YTE4NjIzOTE4MDQwNQpBdXRob3I6IEh1Z28gVmlsbGVuZXV2ZSA8aHVnby52aWxsZW5ldXZlQGx5cnRlY2guY29tPgpEYXRlOglUdWUgSnVsIDE1IDExOjIzOjAyIDIwMDggLTA0MDAKCiAgICBSb3VuZCB0aGUgc2VyaWFsIHBvcnQgY2xvY2sgZGl2aXNvciB2YWx1ZSByZXR1cm5lZCBieSBjYWxjX2Rpdmlzb3IoKQoKICAgIFJvdW5kIHRoZSBzZXJpYWwgcG9ydCBjbG9jayBkaXZpc29yIHZhbHVlIHJldHVybmVkIGJ5CiAgICBjYWxjX2Rpdmlzb3IoKQoKICAgIFNpZ25lZC1vZmYtYnk6IEh1Z28gVmlsbGVuZXV2ZSA8aHVnby52aWxsZW5ldXZlQGx5cnRlY2guY29tPgogICAgQWNrZWQtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgMDMyOGVmMGVkZmU5NTBmMGI3YjhiMzY4ZGFlNDgyNTMxNTA2Yjc0YQpBdXRob3I6IFJvYmluIEdldHogPHJnZXR6QGJsYWNrZmluLnVjbGludXgub3JnPgpEYXRlOglUdWUgSnVsIDE1IDIxOjQ0OjQ2IDIwMDggKzAyMDAKCiAgICBGaXggREhDUCBwcm90b2NvbCBzbyBVLUJvb3QgZG9lcyBub3QgcmVzcG9uZCB0b28gZWFybHkKICAgIG9uIHRoZSBuZXR3b3JrIHdpdGggaXQncyBvZmZlcmVkIElQIG51bWJlcjsgaXQgc2hvdWxkIG5vdCByZXBseSB1bnRpbAogICAgYWZ0ZXIgaXQgaGFzIHJlY2VpdmVkIGEgREhDUCBBQ0sgbWVzc2FnZS4gQWxzbyBlbnN1cmVzIHRoYXQgVS1Cb290CiAgICBkb2VzIGl0J3MgREhDUFJFUVVFU1QgYXMgYnJvYWRjYXN0IChwZXIgUkZDIDIxMzEpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJvYmluIEdldHogPHJnZXR6QGJsYWNrZmluLnVjbGludXgub3JnPgogICAgQWNrZWQtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDcyODhmOTcyZmNhZWUxNGE5NzQxY2IwOGM4Njg4YTIzODc0YjRhMmUKQXV0aG9yOiBTZWJhc3RpYW4gU2lld2lvciA8YmlnZWFzeUBsaW51dHJvbml4LmRlPgpEYXRlOglUdWUgSnVsIDE1IDEzOjM1OjIzIDIwMDggKzAyMDAKCiAgICBjZmlfZmxhc2g6IG1ha2UgdGhlIGNvbW1hbmQgdTMyIG9ubHkKCiAgICBUaGlzIGdvdCBjaGFuZ2VkIGJ5IGNvbW1pdCA5M2M1NmYyMTJjCiAgICBbY2ZpX2ZsYXNoOiBzdXBwb3J0IG9mIGxvbmcgY21kIGluIFUtYm9vdC5dCgogICAgTG9uZyBpcyB0aGUgd3JvbmcgdHlwZSBiZWNhdXNlIGl0IHdpbGwgYmVoYXZlIGRpZmZlcmVudGx5IG9uIDY0Yml0CiAgICBtYWNoaW5lcyBpbiBhIHdheSB0aGF0IGlzIHByb2JhYmx5IG5vdCBleHBlY3RlZC4gdTMyIHNob3VsZCBiZQogICAgZW5vdWdoLgoKICAgIENjOiBBbGV4ZXkgS29yb2xldiA8YWtvcm9sZXZAaW5mcmFkZWFkLm9yZz4KICAgIENjOiBWYXNpbGl5IExlb25lbmtvIDx2YXNpbGl5Lmxlb25lbmtvQG1haWwucnU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTZWJhc3RpYW4gU2lld2lvciA8YmlnZWFzeUBsaW51dHJvbml4LmRlPgoKY29tbWl0IDMxY2ZlNTc0OTFiMTgzYWNhZTU3NWQ0ODY3MjllMTU4ZjAxNmMyN2IKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglNb24gSnVsIDE0IDIzOjQ4OjQxIDIwMDggKzAyMDAKCiAgICB0b29scy9naXRpZ25vcmU6IHVwZGF0ZSB0byBhbGwgZ2VuZXJhdGVkIGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA1ZTBkZTBlMjE2YjhmYjI3NjM0YWZiMTFjNjBhMmZhMjRjMjMzNDllCkF1dGhvcjogQW5kcmUgU2Nod2FyeiA8YW5kcmUuc2Nod2FyekBtYXRyaXgtdmlzaW9uLmRlPgpEYXRlOglXZWQgSnVsIDkgMTg6MzA6NDQgMjAwOCArMDIwMAoKICAgIG1wYzV4eHg6IEFkZCBNVkJDX1AgYm9hcmQgc3VwcG9ydAoKICAgIFRoZSBNVkJDX1AgaXMgYSBNUEM1MjAwQiBiYXNlZCBjYW1lcmEgc3lzdGVtIHdpdGggSW50ZWwgR2lnYWJpdCBldGhlcm5ldAogICAgY29udHJvbGxlciAodXNpbmcgZTEwMDApIGFuZCBjdXN0b20gQWx0ZXJhIEN5Y2xvbmUtSUkgRlBHQSBvbiBQQ0kuCgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmUgU2Nod2FyeiA8YW5kcmUuc2Nod2FyekBtYXRyaXgtdmlzaW9uLmRlPgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGUyZDMxZmIzNDUwNjUzMTE1NDUyMTQ0MzYzZDViZGU0ZTVlM2U2OTMKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVuIDE5IDE3OjU2OjExIDIwMDggLTA1MDAKCiAgICBVcGRhdGUgRnJlZXNjYWxlIHN5c19lZXByb20uYyB0byBoYW5kbGUgQ0NJRCBmb3JtYXRzCgogICAgVXBkYXRlIHRoZSBzeXNfZWVwcm9tLmMgZmlsZSB0byBoYW5kbGUgYm90aCBOWElEIGFuZCBDQ0lEIEVFUFJPTSBmb3JtYXRzLiAgVGhlCiAgICBOWElEIGZvcm1hdCByZXBsYWNlcyB0aGUgb2xkZXIgQ0NJRCBmb3JtYXQsIGJ1dCBpdCdzIGltcG9ydGFudCB0byBzdXBwb3J0IGJvdGgKICAgIHNpbmNlIG1vc3QgYm9hcmRzIG91dCB0aGVyZSBzdGlsbCB1c2UgdGhlIENDSUQgZm9ybWF0LiAgVGhpcyBjaGFuZ2UgaXMgaW4KICAgIHByZXBhcmF0aW9uIGZvciB1c2luZyBvbmUgZmlsZSB0byBoYW5kbGUgYm90aCBmb3JtYXRzLiAgVGhpcyB3aWxsIGFsc28gdW5pZnkKICAgIEVFUFJPTSBzdXBwb3J0IGZvciBhbGwgRnJlZXNjYWxlIDg1eHggYW5kIDg2eHggYm9hcmRzLgoKICAgIEFsc28gdXBkYXRlIHRoZSA4Nnh4IGJvYXJkIGhlYWRlciBmaWxlcyB0byB1c2UgdGhlIHN0YW5kYXJkIENGR19JMkNfRUVQUk9NX0FERFIKICAgIGluc3RlYWQgb2YgSURfRUVQUk9NX0FERFIuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkODVmNDZhMjVjY2IzM2VkOWIyOTVkZTNjMmNmZTFjZTI3MGVjZTlhCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgpEYXRlOglGcmkgSnVsIDExIDE3OjIyOjQzIDIwMDggKzA5MDAKCiAgICBwY2k6IHNoOiBBZGQgcGNpX3NraXBfZGV2IGFuZCBwY2lfcHJpbnRfZGV2IGZ1bmN0aW9uCgogICAgQWRkIGZ1bmN0aW9uIG9mIG5ldyBQQ0ksIHBjaV9za2lwX2RldiBhbmQgcGNpX3ByaW50X2Rldi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMTEwNzAxNGU4MzVlYzlkNDZjMDMzM2Y0MjExZDEwNGY3NzQ0MmRiMApBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCAxNCAyMDoyOTowNyAyMDA4IC0wNTAwCgogICAgQ2xlYW4gdXAgSU5JVF9SQU0gb3B0aW9ucwoKICAgIFRoZSBMMl9JTklUX1JBTSBvcHRpb24gd2FzIHVudXNlZCwgYW5kIHJlY2VudCBjaGFuZ2VzIHRvIHRoZSBUTEIgY29kZQogICAgbWVhbnQgdGhhdCB0aGUgSU5JVF9SQU0gVExCcyB3ZXJlbid0IGJlaW5nIGNsZWFyZWQgb3V0LiAgSW4gb3JkZXIgdG8gcmVkdWNlCiAgICB0aGUgYW1vdW50IG9mIG1hcHBlZCBzcGFjZSBhdHRhY2hlZCB0byBub3RoaW5nLCB3ZSBjaGFuZ2UgdGhpbmdzIHNvIHRoZSBUTEJzCiAgICBnZXQgY2xlYXJlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDUyNDU2MTgyMGE5MzI3ZTg5MTA3ODU0YjNhNzE4NzgwMGNjZjcxOQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCAxNCAyMDoyNjo1NyAyMDA4IC0wNTAwCgogICAgUmVtb3ZlIGZha2UgZmxhc2ggYmFuayBmcm9tIDg1NDQgRFMKCiAgICBUaGUgZmFrZSBmbGFzaCBiYW5rIHdhcyBnZW5lcmF0aW5nIGVycm9ycyBmb3IgYW55b25lIHdobyBkaWRuJ3QgaGF2ZSBhCiAgICBQcm9tSkVUIGhvb2tlZCB1cCB0byB0aGUgYm9hcmQuICBBcyB0aGF0IGNvbnN0aXR1dGVzIHRoZSB2YXN0IG1ham9yaXR5IG9mCiAgICB1c2Vycywgd2UgcmVtb3ZlIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2MzBkOWJmY2I1ZjZkM2E0M2YyNTE5MDFhNmI0ODA5OTRkY2I2ZWEzCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIEp1bCAxNCAxNDowNzowMyAyMDA4IC0wNTAwCgogICAgTVBDODU0NERTOiBBZGQgQVRJIFZpZGVvIGNhcmQgc3VwcG9ydAoKICAgIEFkZCBzdXBwb3J0IGZvciB1c2luZyBhIFBDSWUgQVRJIFZpZGVvIGNhcmQgb24gUENJZTIuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA3ZjlmNDM0N2NmMzI1YzYzYTM5ZmUzMDkxMGYzZmIyMTFhZTJjYzE1CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIEp1bCAxNCAxNDowNzowMiAyMDA4IC0wNTAwCgogICAgODV4eDogQWRkIHNvbWUgTDEvTDIgU1BSIHJlZ2lzdGVyIGRlZmluaXRpb25zCgogICAgQWRkIG5ldyBMMS9MMiBTUFJzIHJlbGF0ZWQgdG8gZTUwMG1jIGNhY2hlIGNvbmZpZyBhbmQgY29udHJvbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGU1ODUyNzg3ZjBjM2M0NDJhMjc2MjYyZjEzZDkxY2E0NTA2MDVhYzAKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gSnVsIDE0IDE0OjA3OjAxIDIwMDggLTA1MDAKCiAgICBNUEM4NTQ0RFM6IFJlcG9ydCBib2FyZCBpZCwgYm9hcmQgdmVyc2lvbiBhbmQgZnBnYSB2ZXJzaW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNzNmMTVhMDYwZjY3YTI0NjI1NTFjMzM0MjE1YmQyMGZhYzZiODFkMQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBKdWwgMTQgMTQ6MDc6MDAgMjAwOCAtMDUwMAoKICAgIDg1eHg6IENsZWFudXAgTDIgY2FjaGUgc2l6ZSBkZXRlY3Rpb24KCiAgICBUaGUgTDIgc2l6ZSBkZXRlY3Rpb24gY29kZSB3YXMgYSBiaXQgY29uZnVzaW5nIGFuZCB3ZSBrZXB0IGhhdmluZyB0byBhZGQKICAgIGNvZGUgdG8gaXQgdG8gaGFuZGxlIG5ldyBwcm9jZXNzb3JzLiAgQ2hhbmdlIHRoZSBzZW5zZSBvZiBkZXRlY3Rpb24gc28gd2UKICAgIGxvb2sgZm9yIHRoZSBvbGRlciBwcm9jZXNzb3JzIHRoYXQgYXJlbid0IGNoYW5naW5nLgoKICAgIEFsc28gYWRkZWQgc3VwcG9ydCBmb3IgMU0gY2FjaGUgc2l6ZSBvbiA4NTcyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYzNjYTdlNWUwMGEyNDQ1MWYyMGRmM2JkZWQ5YTYxYmE1NDE5MjFkZgpBdXRob3I6IFBhdWwgR29ydG1ha2VyIDxwYXVsLmdvcnRtYWtlckB3aW5kcml2ZXIuY29tPgpEYXRlOglGcmkgSnVsIDExIDE1OjMzOjA4IDIwMDggLTA0MDAKCiAgICBzYmM4NTYwOiBlbmFibGUgQ09ORklHX09GX0xJQkZEVCBieSBkZWZhdWx0CgogICAgTWFrZSB0aGUgZGVmYXVsdCBidWlsZCBmb3IgdGhlIHNiYzg1NjAgYm9hcmQgYmUgcG93ZXJwYwogICAgY2FwYWJsZSB3aXRoIGxpYmZkdCBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFBhdWwgR29ydG1ha2VyIDxwYXVsLmdvcnRtYWtlckB3aW5kcml2ZXIuY29tPgoKY29tbWl0IDZiNDRhNDRlYzJhYWIxODBkNzA5NWMxYzkyZTY2OWNlZTFkM2UzYmQKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgMTQgMjA6MDQ6NDAgMjAwOCAtMDUwMAoKICAgIEZpeCBpbmRlbnRhdGlvbiBmb3IgZGVmYXVsdCBib290IGVudmlyb25tZW50IHZhcmlhYmxlcwoKICAgIFRoaXMgd2FzIHByb3Bvc2VkIGJ5IFBhdWwgR29ydG1ha2VyIGluIHJlc3BvbnNlIHRvIFdvbGZnYW5nJ3MgY29tbWVudHMgb24KICAgIHNpbWlsYXIgI2RlZmluZXMgaW4gc2JjODU2MC5oLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzN2ZlZjQ5OTEwNGUyOGUwYTgzYjAyYjg1Y2EwZDFmYmU4MGQyOTRhCkF1dGhvcjogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+CkRhdGU6CUZyaSBKdWwgMTEgMTU6MzM6MDcgMjAwOCAtMDQwMAoKICAgIHNiYzg1NjA6IGFkZCBkZWZhdWx0IGZkdCB2YWx1ZXMKCiAgICBBZGQgaW4gdGhlIGRlZmF1bHQgZmR0IHNldHRpbmdzIGFuZCB0aGUgdHlwaWNhbCBFWFRSQV9FTlYKICAgIHNldHRpbmdzIGFzIGJvcnJvd2VkIGZyb20gdGhlIG1wYzg1NjBhZHMuICBGaXggYSBjb3VwbGUKICAgIG9mIHN0YWxlIHJlZmVyZW5jZXMgdG8gdGhlIG1wYzg1NjBhZHMgZGF0aW5nIGJhY2sgdG8gdGhlCiAgICBvcmlnaW5hbCBjbG9uZS9mb3JrLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBhdWwgR29ydG1ha2VyIDxwYXVsLmdvcnRtYWtlckB3aW5kcml2ZXIuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQwNGU3NmVkZjkyZjdmODk2OTY5ODllODcwMmI5N2UwMjA0NTVhZjMKQXV0aG9yOiBQYXVsIEdvcnRtYWtlciA8cGF1bC5nb3J0bWFrZXJAd2luZHJpdmVyLmNvbT4KRGF0ZToJRnJpIEp1bCAxMSAxNTozMzowNiAyMDA4IC0wNDAwCgogICAgc2JjODU2MDogYWRkIGluIGZ0X2JvYXJkX3NldHVwKCkKCiAgICBBZGQgaW4gZm9yIHRoZSBzYmM4NTYwLCB0aGUgZnRfYm9hcmRfc2V0dXAoKSByb3V0aW5lLCBiYXNlZCBvbiB3aGF0IGlzCiAgICBpbiB1c2UgZm9yIHRoZSBGcmVlc2NhbGUgTVBDODU2MEFEUyBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQYXVsIEdvcnRtYWtlciA8cGF1bC5nb3J0bWFrZXJAd2luZHJpdmVyLmNvbT4KCmNvbW1pdCBjMTU4YmNhY2EzYjMxY2JlMzhjNDE0MzgxMmU2MTcwZTM4YTU3MzkzCkF1dGhvcjogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+CkRhdGU6CUZyaSBKdWwgMTEgMTU6MzM6MDUgMjAwOCAtMDQwMAoKICAgIHNiYzg1NjA6IGRlZmluZSBldGgwIGFuZCBldGgxIGluc3RlYWQgb2YgZXRoMSBhbmQgZXRoMgoKICAgIFRoZSBleGlzdGluZyBjb25maWcgZG9lc24ndCBkZWZpbmUgQ09ORklHX0hBU19FVEgwLCBhbmQgc28gdGhlCiAgICBmZHQgc3VwcG9ydCBkb2Vzbid0IHVwZGF0ZSB0aGUgemVyb3MgaW4gdGhlIGR0YiBsb2NhbC1tYWMgd2l0aAogICAgcmVhbCBkYXRhIGZyb20gdGhlIHUtYm9vdCBlbnYuICBTaW5jZSB0aGUgZXhpc3RpbmcgY29uZmlnIGlzCiAgICB0YWlsb3JlZCB0byBqdXN0IHR3byBpbnRlcmZhY2VzLCBnZXQgcmlkIG9mIHRoZSBFVEgyIGRlZmluaXRpb25zCiAgICBhdCB0aGUgc2FtZSB0aW1lLgoKICAgIEFsc28gZG9uJ3QgaW5jbHVkZSBhbnkgZW5kIHVzZXIgc3BlY2lmaWMgZGF0YSBpbnRvIHRoZSBlbnZpcm9ubWVudAogICAgYnkgZGVmYXVsdCAtLSB0aGluZ3MgbGlrZSBNQUMgYWRkcmVzcywgbmV0d29yayBwYXJhbWV0ZXJzIGV0Yy4gbmVlZAogICAgdG8gY29tZSBmcm9tIHRoZSBlbmQgdXNlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQYXVsIEdvcnRtYWtlciA8cGF1bC5nb3J0bWFrZXJAd2luZHJpdmVyLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZWM0MzZkMmY5NTA3NmQ5ZTQ2YWU1OTRkYjZlOWIxZDg3MzI4NDBkCkF1dGhvcjogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+CkRhdGU6CUZyaSBKdWwgMTEgMTU6MzM6MDQgMjAwOCAtMDQwMAoKICAgIHNiYzg1NjA6IHByb3Blcmx5IHNldCBjczBfYm5kcyBmb3IgNTEyTUIKCiAgICBUaGUgc2JjODU2MCBib2FyZCBzaGlwcyB3aXRoIDUxMk1CIG9mIG1lbW9yeSBpbnN0YWxsZWQsCiAgICBidXQgdGhlIGN1cnJlbnQgY3MwX2JuZHMgaXMgaGFyZCBjb2RlZCBmb3IgMjU2TUIuICBTZXQgdGhlCiAgICB2YWx1ZSBiYXNlZCBvbiBDRkdfU0RSQU1fU0laRS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQYXVsIEdvcnRtYWtlciA8cGF1bC5nb3J0bWFrZXJAd2luZHJpdmVyLmNvbT4KCmNvbW1pdCA2ZGU1YmYyNDAwNGM4ZDljOWIwNzBiYjhmNzQxOGQxYzQ1ZTVlYjI3CkF1dGhvcjogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+CkRhdGU6CUZyaSBKdWwgMTEgMTU6MzM6MDMgMjAwOCAtMDQwMAoKICAgIHNiYzg1NjA6IHByb3BlciBkZWZpbml0aW9ucyBmb3IgVFNFQy4KCiAgICBUaGUgZGVmaW5pdGlvbnMgZm9yIHRoZSBUU0VDIGhhdmUgYmVjb21lIG91dCBvZiBkYXRlLiAgVGhlcmUgaXMgbm8KICAgIGxvbmdlciBhbnkgc3VjaCBvcHRpb25zIGxpa2UgIkNPTkZJR19NUEM4NXh4X1RTRUMxIiBvciBzaW1pbGFyLgogICAgVXBkYXRlIHRvIG1hdGNoIHRob3NlIG9mIG90aGVyIGJvYXJkcywgbGlrZSB0aGUgTVBDODU2MEFEUy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQYXVsIEdvcnRtYWtlciA8cGF1bC5nb3J0bWFrZXJAd2luZHJpdmVyLmNvbT4KICAgIEFja2VkLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDcxMDc0YWJiZTBjNzY0Mjk1NzdhZmY1OGFlZmYwYTI0YWQyMTBiMjMKQXV0aG9yOiBQYXVsIEdvcnRtYWtlciA8cGF1bC5nb3J0bWFrZXJAd2luZHJpdmVyLmNvbT4KRGF0ZToJV2VkIEp1bCA5IDEzOjIzOjA1IDIwMDggLTA0MDAKCiAgICA4eHh4LWZkdDogc2V0IG5zMTY1NTAgY2xvY2sgZnJvbSBDRkdfTlMxNjU1MF9DTEssIG5vdCBiaV9idXNmcmVxCgogICAgU29tZSBib2FyZHMgdGhhdCBoYXZlIGV4dGVybmFsIDE2NTUwIFVBUlRzIGRvbid0IGhhdmUgYSBkaXJlY3QKICAgIHRpZSBiZXR3ZWVuIGJpX2J1c2ZyZXEgYW5kIHRoZSBjbG9jayB1c2VkIGZvciB0aGUgVUFSVHMuICBCb2FyZHMKICAgIHRoYXQgZG8gaGF2ZSBzdWNoIGEgdGllIHNob3VsZCBzZXQgQ0ZHX05TMTY1NTBfQ0xLIHRvIGJlCiAgICBnZXRfYnVzX2ZyZXEoMCkgLS0gd2hpY2ggbW9zdCBvZiB0aGVtIGRvIGFscmVhZHkuCgogICAgU2lnbmVkLW9mZi1ieTogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+CiAgICBBY2tlZC1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNGVmNzZmMzIwZmJhZGYwNzQxMDUyMjk4MjY1MTRkYjE0MGY5MzlmCkF1dGhvcjogQW5kcmV3IEtsb3NzbmVyIDxhbmRyZXdAY2VzYS5vcGJ1Lnhlcm94LmNvbT4KRGF0ZToJV2VkIEp1bCAyIDA3OjAzOjUzIDIwMDggLTA3MDAKCiAgICBDaGFuZ2UgdGhlIHRlbXAgbWFwIHRvIFJPTSB0byBhbGlnbiBhZGRyZXNzZXMgdG8gcGFnZSBzaXplLgoKICAgIFdpdGggYSBwYWdlIHNpemUgb2YgQk9PS0VfUEFHRVNaXzE2TSwgYm90aCB0aGUgcmVhbCBhbmQgZWZmZWN0aXZlCiAgICBhZGRyZXNzZXMgbXVzdCBiZSBtdWx0aXBsZXMgb2YgMTZNQi4gIFRoZSBoYXJkd2FyZSBzaWxlbnRseSB0cnVuY2F0ZXMKICAgIHRoZW0gc28gdGhlIGNvZGUgaGFwcGVucyB0byB3b3JrLiAgVGhpcyBwYXRjaCBjbGFyaWZpZXMgdGhlIHNpdHVhdGlvbgogICAgYnkgZXN0YWJsaXNoaW5nIGFkZHJlc3NlcyB0aGF0IHRoZSBoYXJkd2FyZSBkb2Vzbid0IG5lZWQgdG8gdHJ1bmNhdGUuCgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmV3IEtsb3NzbmVyIDxhbmRyZXdAY2VzYS5vcGJ1Lnhlcm94LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwNmI0MTg2YzEwMjA0YjY2ODNlZGIwNDdhYzVmNTA2ZmIwY2UwOTM3CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biAxNyAxNzo0NToyMiAyMDA4IC0wNTAwCgogICAgbXBjODV4eDogdXNlIElTX0VfUFJPQ0VTU09SIG1hY3JvCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2YjcwZmZiOWQxYjJlNzkxMTYxZjNjZjkyOTM3YWE0NWI0YTA3Yjc4CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1biAxNiAxNTo1NTo1MyAyMDA4IC0wNTAwCgogICAgZmR0OiBhZGQgY3J5cHRvIG5vZGUgaGFuZGxpbmcgZm9yIE1QQzh7MywgNX14eEUgcHJvY2Vzc29ycwoKICAgIERlbGV0ZSB0aGUgY3J5cHRvIG5vZGUgaWYgbm90IG9uIGFuIEUtcHJvY2Vzc29yLiAgSWYgb24gODM2MCBvciA4MzR4IGZhbWlseSwKICAgIGNoZWNrIHJldiBhbmQgdXAtcmV2IGNyeXB0byBub2RlICh0byBTRUMgcmV2LiAyLjQgcHJvcGVydHkgdmFsdWVzKQogICAgaWYgb24gYW4gJ0VBJyBwcm9jZXNzb3IsIGUuZy4gTVBDODM0OUVBLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODVlNTgwOGU4ZWE5Zjc3ZGE1MjE5ZjIzMzk0MTEyZjBiNDI0ZmE1ZQpBdXRob3I6IEh1Z28gVmlsbGVuZXV2ZSA8aHVnby52aWxsZW5ldXZlQGx5cnRlY2guY29tPgpEYXRlOglGcmkgSnVsIDExIDE1OjEwOjExIDIwMDggLTA0MDAKCiAgICBBUk0gRGFWaW5jaTogUmVtb3ZlIGV4dGVybiBwaHlfdCBkZWNsYXJhdGlvbiBieSBtb3ZpbmcgY29kZSB0byBwcm9wZXIgcGxhY2UKCiAgICBBUk0gRGFWaW5jaTogUmVtb3ZlIGV4dGVybiBwaHlfdCBkZWNsYXJhdGlvbiBieSBtb3ZpbmcKICAgIGNvZGUgdG8gcHJvcGVyIHBsYWNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEh1Z28gVmlsbGVuZXV2ZSA8aHVnby52aWxsZW5ldXZlQGx5cnRlY2guY29tPgoKY29tbWl0IDNhOWU3YmEyYWMxNDAxOGM1ZGQxZTc4YTdkZDczNTU3MTU2OWM5NzEKQXV0aG9yOiBIdWdvIFZpbGxlbmV1dmUgPGh1Z28udmlsbGVuZXV2ZUBseXJ0ZWNoLmNvbT4KRGF0ZToJRnJpIEp1bCAxMSAxNToxMDoxMCAyMDA4IC0wNDAwCgogICAgQVJNIERhVmluY2k6IFJlbW92ZSBkdXBsaWNhdGUgZGVmaW5pdGlvbnMgb2YgTUFDSF9UWVBFIGFuZCBwcm90b3R5cGUgb2YgaTJjX2luaXQoKQoKICAgIEFSTSBEYVZpbmNpOiBSZW1vdmUgZHVwbGljYXRlIGRlZmluaXRpb25zIG9mIE1BQ0hfVFlQRQogICAgYW5kIHByb3RvdHlwZSBvZiBpMmNfaW5pdCgpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEh1Z28gVmlsbGVuZXV2ZSA8aHVnby52aWxsZW5ldXZlQGx5cnRlY2guY29tPgoKY29tbWl0IDM0ODc1M2Q0MTZjZDJjOWU3ZWM2NTIwYTU0NGM4ZjMzY2YwMmE1NjAKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gSnVsIDE0IDE0OjAzOjAyIDIwMDggLTA1MDAKCiAgICBGaXggc29tZSBtb3JlIHByaW50ZigpIGZvcm1hdCBwcm9ibGVtcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDQ1YjE2ZDIyYzY0Njc0Y2NkOGM0NjM3NDU2YTk4NzQ2MzYwOTE0MWMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gSnVsIDE0IDIyOjM4OjQyIDIwMDggKzAyMDAKCiAgICBGaXggY29kaW5nIHN0eWxlOyBtYWtlIGNvZGUgYmV0dGVyIHBhcnNhYmxlIGJ5IGV4dGVybmFsIHRvb2xzCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBiODgwY2JmMjA3YjFjMTA5ZDNhNjYxNDE3YThmZWRkY2JkNzI5YTlkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIEp1bCAxNCAyMToxOTowOCAyMDA4ICswMjAwCgogICAgY3B1L2kzODYvc2VyaWFsLmM6IEZpeCBzeW50YXggZXJyb3JzCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlMmQ0NWU2ZjRkOTkxOWUxYWZlYWM1ZTA5NTU3YjIyNTI4MzJmY2NmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIEp1bCAxNCAyMDo0MTozNSAyMDA4ICswMjAwCgogICAgZWxwcGMgYm9hcmQ6IENvZGluZyBzdHlsZSBjbGVhbnVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgODJiMjRhOGE1MDVmYzgxNDY2NDg0YjNjNTViNTc0ZWUwYjQyMDViYwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBKdWwgMTQgMjA6NDA6MjIgMjAwOCArMDIwMAoKICAgIGVscHBjIGJvYXJkOiBmaXggc3ludGF4IGVycm9yLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMGZlMzQwNTg1YTZhNDhiZDM5MmQzMTViMGRkODRkMDY4YjFjMzc5MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBKdWwgMTQgMjA6Mzg6MjYgMjAwOCArMDIwMAoKICAgIEVCK01DRi1FVjEyMyBib2FyZDogZml4IGNvZGluZyBzdHlsZSAoYWxpbmdtZW50KQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNjg0MTc4NWEwYmIwZjM4MTc1NDU2YTkyM2VkZDYzNGZiN2RkNjk0NwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBKdWwgMTQgMjA6MzY6NDQgMjAwOCArMDIwMAoKICAgIEVCK01DRi1FVjEyMyBib2FyZDogZml4IHN5bnR4IGVycm9yCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBhYjVjZGE5Zjg4YzNlYWY5Y2Y1OTlhZGMzYTMzNzU5MDZjNGVkOTA0CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDcgMTg6MDI6MDggMjAwOCAtMDUwMAoKICAgIFJlbW92ZSBMQkNfQ0FDSEVfQkFTRSBmcm9tIDg1NDQgRFMKCiAgICBUaGUgODU0NCBEUyBkb2Vzbid0IGhhdmUgYW55IGNhY2hlYWJsZSBMb2NhbCBCdXMgbWVtb3JpZXMgc2V0IHVwLiAgQnkgbWFwcGluZwogICAgc3BhY2UgZm9yIHNvbWUgYW55d2F5LCB3ZSB3ZXJlIGFsbG93aW5nIHNwZWN1bGF0aXZlIGxvYWRzIGludG8gdW5tYXBwZWQgc3BhY2UsCiAgICB3aGljaCB3b3VsZCBjYXVzZSBhbiBleGNlcHRpb24gKGFubm95aW5nLCBldmVuIGlmIHVsdGltYXRlbHkgaGFybWxlc3MpLgogICAgUmVtb3ZpbmcgTEJDX0NBQ0hFX0JBU0UsIGFuZCB1c2luZyBMQkNfTk9OQ0FDSEVfQkFTRSBmb3IgdGhlIExCQyBMQVcgc29sdmVzIHRoZQogICAgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDBmZjUxYmE1ZDAzMDlkYmU5ZTI1ZWE1NGY4YTAyODVhNmQ1ZGI5MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBKdWwgMTQgMTU6MTk6MDcgMjAwOCArMDIwMAoKICAgIENvZGUgY2xlYW51cDogZml4IG9sZCBzdHlsZSBhc3NpZ25tZW50IGFtYmlndWl0aWVzIGxpa2UgIj0tIiBldGMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBkNzg1NDIyM2M1Yzg1YjU4NDlmYmY0MjJjYzhhYzBlZmVmNDYxYzM3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIEp1bCAxNCAxNToxMDo1MyAyMDA4ICswMjAwCgogICAgQW1pZ2FPbmVHM1NFOiByZW1vdmUgZGVhZCBhbmQgaW5jb21wbGV0ZSBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYjY0ZjE5MGI3YTM0MjI0ZGYwOWI1NTljYTExMWViMWI3MzNmMDBhZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBKdWwgMTQgMTU6MDY6MzUgMjAwOCArMDIwMAoKICAgIEZpeCBwcmludGYoKSBmb3JtYXQgaXNzdWVzIHdpdGggc2l6ZW9mX3QgdHlwZXMgYnkgdXNpbmcgJXp1CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZjM1NGI3M2UxNmE4NmY5ZTkwODU0NzFhODMwNjA1Zjc0Zjg0ZWE1ZApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBKdWwgMTQgMTQ6MTE6NDUgMjAwOCArMDIwMAoKICAgIHZzcHJpbnRmOiBhZGQgeiBhbmQgdCBvcHRpb25zCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAyNWRiZTk4YWJiNjg2ZDgyMTBlMTczMWZiYTg1Y2VkN2QzY2U4NzRjCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEp1bCAxMyAyMzowNzozNSAyMDA4ICswMjAwCgogICAgRml4IHNvbWUgbW9yZSBwcmludGYoKSBmb3JtYXQgaXNzdWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZDU5OTZkZDU1NWVkZjUyNzIxYjc2OTFhNGM1OWRlMDE2MjUxZWQzOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBKdWwgMTMgMTk6NTE6MDAgMjAwOCArMDIwMAoKICAgIEZpeCBzb21lIG1vcmUgcHJpbnRmKCkgZm9ybWF0IHByb2JsZW1zLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMGY5ZDVmNmQ2ZTgxNDkwNzc5NDk5NWM2YTIyYWY3NTIwNDBjMzVkOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBKdWwgMTMgMTk6NDg6MjYgMjAwOCArMDIwMAoKICAgIEFEUzUxMjE6IEZpeCAoZGVsZXRlKSBpbmNvcnJlY3QgYWRzNTEyMV9kaXVfaW5pdCgpIHByb3RvdHlwZQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMzIyNzE2YTFkMWViMzNhNzEwNjdiYTBlYjFjNTM0NmZiMmRkNmIzNApBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJU2F0IEp1bCAxMiAxNzozMTozNiAyMDA4ICswMjAwCgogICAgRml4IGJ1ZyBpbiBMaW1lIHZpZGVvIGRyaXZlcgoKICAgIFdlIG5lZWQgdG8gd2FpdCB3aGlsZSBkcmF3aW5nIGVuZ2luZSBjbGVhcnMgZnJhbWUKICAgIGJ1ZmZlciBiZWZvcmUgYW55IGZ1cnRoZXIgc29mdHdhcmUgYWNjZXNzZXMgdG8gZnJhbWUKICAgIGJ1ZmZlciB3aWxsIGJlIGluaXRpYXRlZC4gT3RoZXJ3aXNlIHNvZnR3YXJlIGRyYXduCiAgICBwYXJ0cyBjb3VsZCBiZSBwYXJ0aWFsbHkgZGVzdHJveWVkIGJ5IHRoZSBkcmF3aW5nCiAgICBlbmdpbmUgb3IgZXZlbiBHREMgY2hpcCBmcmVlemUgY291bGQgb2NjdXIgKGFzCiAgICBvYnNlcnZlZCBvbiBzb2NyYXRlcyBib2FyZCkuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IDBhNTY3NmJlZmIwYzU5MDIxMmE1M2Y3NjI3ZmE1ZDBkOGE4NGJmMzQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgSnVsIDEyIDE0OjM2OjM0IDIwMDggKzAyMDAKCiAgICBGaXggc29tZSBtb3JlIHByaW50ZigpIGZvcm1hdCBpc3N1ZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAxOGM4YTI4YWFkNDk4MDM3ODBiZDhkNTI0MzJkZWQ1MjhlMzdlNzAxCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgSnVsIDExIDE1OjExOjU3IDIwMDggKzAyMDAKCiAgICBod21vbjogcmVuYW1lIENPTkZJR19EUzE3MjIgdG8gQ09ORklHX0RUVF9EUzE3MjIKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZlY2JiNDViYjAyN2U5MGMxOWQ2M2I0OGU3YjBjMDVhY2MxYTg3YzAKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBKdWwgMTEgMTE6NTA6NTMgMjAwOCArMDIwMAoKICAgIGh3bW9uOiBDbGVhbmluZyBod21vbiBkZXZpY2VzCgogICAgQ2xlYW4gTWFrZWZpbGUKICAgIE1vdmUgZGV2aWNlIHNwZWNpZmljIHZhbHVlcyB0byBkcml2ZXIgZm9yIGJldHRlciByZWFkaW5nCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjNzhmY2U2OTljN2ZmNDY3ZWNkODQxZGE2YTc5ZjA2NTE4MGJmNTc4CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgSnVsIDExIDEwOjQzOjEzIDIwMDggKzAyMDAKCiAgICBGSVM6IHJlcGFyZSBpbmNvcnJlY3QgcmV0dXJuIHZhbHVlIHdpdGggcmFtZGlzayBoYW5kbGluZwoKICAgIE1pY3JvYmxhemUgYW5kIFBvd2VyUEMgdXNlIGJvb3RfZ2V0X3JhbWRpc2sgZm9yIGxvYWRpbmcKICAgIHJhbWRpc2sgdG8gbWVtb3J5IHdpdGggY2hlY2tpbmcgcmV0dXJuIHZhbHVlLgogICAgUmV0dXJuIDAgbWVhbnMgc3VjY2Vzcy4gUmV0dXJuIDEgbWVhbnMgZmFpbGVkLgogICAgSGVyZSBpcyBjb3JyZXNwb25kIHBhcnQgb2YgY29kZSBmcm9tIGJvb3RtLmMgd2hpY2ggY2hlY2sKICAgIHJldHVybiBjb2RlLgoKICAgIHJldCA9IGJvb3RfZ2V0X3JhbWRpc2sgKGFyZ2MsIGFyZ3YsIGltYWdlcywgSUhfQVJDSF9QUEMsCgkJJnJkX2RhdGFfc3RhcnQsICZyZF9kYXRhX2VuZCk7CiAgICBpZiAocmV0KQoJZ290byBlcnJvcjsKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+Cgpjb21taXQgODRhMmM2NGEyNmRjNWUyNzVlMWNmNGU3NmE2ZTE5NGExOGZiNTQ3NwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIEp1bCAxMSAxMDoxMDozMiAyMDA4ICswMjAwCgogICAgbWljcm9ibGF6ZTogUmVtb3ZlIHVzZWxlc3MgYW5jaWVudCBoZWFkZXJzCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgoKY29tbWl0IDUzZWE5ODFjMzEyNGIxM2MxMzdjMmQxMGU5NzViN2M2NjcyMjY2ZTAKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBKdWwgMTEgMTA6MTA6MzEgMjAwOCArMDIwMAoKICAgIG1pY3JvYmxhemU6IENsZWFuIHVhcnRsaXRlIGRyaXZlcgoKICAgIFJlZGVzaWduIHVhcnRsaXRlIGRyaXZlciB0byBpbl9iZTMyIGFuZCBvdXRfYmUzMiBtYWNyb3MKICAgIEZpeCBtaXNzaW5nIGhlYWRlciBpbiBpby5oCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgogICAgQWNrZWQtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBkYmYzZGZiMzg2YTJkNWQyMzgxODE0ZTM5OTg1YWIyZTIxODk0NTUwCkF1dGhvcjogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgpEYXRlOglGcmkgSnVsIDExIDAyOjM5OjE0IDIwMDggKzAyMDAKCiAgICBFbmFibGUgcGFzc2luZyBvZiBBVEFHcyByZXF1aXJlZCBieSBsYXRlc3QgTGludXgga2VybmVsLgoKY29tbWl0IGVmMTMwZDMwOTNiZGY4OGYwMWNmM2UwMDBmZTVkZjI0OWViZjJiMWEKQXV0aG9yOiBIdWdvIFZpbGxlbmV1dmUgPGh1Z28udmlsbGVuZXV2ZUBseXJ0ZWNoLmNvbT4KRGF0ZToJRnJpIEp1bCAxMSAxMDoyNDoxNSAyMDA4IC0wNDAwCgogICAgRml4IGludGVnZXIgb3ZlcmZsb3cgd2FybmluZyBpbiBjYWxjX2Rpdmlzb3IoKQoKICAgIHdoaWNoIGhhcHBlbmVkIHdoZW4gcm91bmRpbmcgdGhlIHNlcmlhbCBwb3J0IGNsb2NrIGRpdmlzb3IKCiAgICBTaWduZWQtb2ZmLWJ5OiBIdWdvIFZpbGxlbmV1dmUgPGh1Z28udmlsbGVuZXV2ZUBseXJ0ZWNoLmNvbT4KCmNvbW1pdCA2Yjc2MDE4OWQ3N2YwMDE2ODRlMzE2MGIzNTVjMTg1Y2EzODA0OTYxCkF1dGhvcjogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgpEYXRlOglGcmkgSnVsIDExIDAxOjA5OjU5IDIwMDggKzAyMDAKCiAgICBGaXggYnVpbGQgdGltZSB3YXJuaW5ncyBpbiBmdW5jdGlvbiBtbWNfZGVjb2RlX2NzZCgpCgogICAgU2lnbmVkLW9mZi1ieTogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgoKY29tbWl0IGMxNTk0N2Q2Y2UwZDU5OTI1Yzk3ZmRmYWM2OTI0NzZhZjZlMjYyZDAKQXV0aG9yOiBIdWdvIFZpbGxlbmV1dmUgPGh1Z28udmlsbGVuZXV2ZUBseXJ0ZWNoLmNvbT4KRGF0ZToJVGh1IEp1bCAxMCAxMDo0NjozMyAyMDA4IC0wNDAwCgogICAgQVJNOiBGaXggZm9yIGJyb2tlbiBjb21waWxhdGlvbiB3aGVuIGRlZmluaW5nIENPTkZJR19DTURfRUxGCgogICAgY2F1c2VkIGJ5IG1pc3NpbmcgZGNhY2hlIHN0YXR1cy9lbmFibGUvZGlzYWJsZSBmdW5jdGlvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogSHVnbyBWaWxsZW5ldXZlIDxodWdvLnZpbGxlbmV1dmVAbHlydGVjaC5jb20+Cgpjb21taXQgMDY4YzFiNzdjOGY0MmExYTMxMDg0ZDJmNGIxZDVjYzgwN2MxYTljZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEp1bCAxMCAxMzo1MzozMSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBSZW1vdmUgcmVkdW5kYW50IGZ0X2JvYXJkX3NldHVwKCkgZnVuY3Rpb25zIGZyb20gc29tZSA0eHggYm9hcmRzCgogICAgVGhpcyBwYXRjaCByZW1vdmVzIHNvbWUgZnRfYm9hcmRfc2V0dXAoKSBmdW5jdGlvbnMgZnJvbSBzb21lIDR4eCBib2FyZHMuCiAgICBUaGlzIGNhbiBiZSBkb25lIHNpbmNlIHdlIG5vdyBoYXZlIGEgZGVmYXVsdCB3ZWFrIGltcGxlbWVudGF0aW9uIGZvciB0aGlzCiAgICBpbiBjcHUvcHBjNHh4L2ZkdC5jLiBPbmx5IGJvYXJkIGluIG5lZWQgZm9yIGEgZGlmZmVyZW50L2N1c3RvbQogICAgaW1wbGVtZW50YXRpb24gbGlrZSBjYW55b25sYW5kcyBuZWVkIHRoZWlyIG93biB2ZXJzaW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkMzlhMDg5ZjhiYzk2MGJhOWFlNmEwOGZkYTU1ODJiNTc4NjIwY2MxCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEp1bCAxMyAxNDo1ODoxNiAyMDA4ICswMjAwCgogICAgQWRkIGxhc3Qga25vd24gbWFpbnRhaW5lciBmb3Igb3JwaGFuZWQgYm9hcmRzOyByZWZvcm1hdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDVjNzYxZDU3YmI5OTQwZTAxNmQ1NjFmZGE4YjJlZDg0YzU1ZGU1YjYKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBKdWwgMTAgMTM6MTY6MDQgMjAwOCArMDIwMAoKICAgIFJlbW92ZSBraGFycmlzQG5leHVzLXRlY2gubmV0IGZyb20gTUFJTlRBSU5FUlMKCiAgICBNYWlsIHRvIGtoYXJyaXNAbmV4dXMtdGVjaC5uZXQgYm91bmNlcyBiZWNhdXNlIHRoZSB1c2VyIGRvZXNuJ3QgZXhpc3QKICAgIGFueW1vcmUuIFlvdSBjYW4ndCBiZSBhIG1haW50YWluZXIgd2l0aG91dCBhIHZhbGlkIGUtbWFpbCBhZGRyZXNzLCBzbwogICAgbW92ZSBhbGwgYm9hcmRzIHRoYXQgdXNlZCB0byBiZSBtYWludGFpbmVkIGJ5IEt5bGUgSGFycmlzIHRvIHRoZQogICAgIm9ycGhhbmVkIiBsaXN0LgoKICAgIEN1cnJlbnRseSwgb25seSBQb3dlclBDIGhhcyBhIGxpc3Qgb2Ygb3JwaGFuZWQgYm9hcmRzLCBzbyB0aGlzIHBhdGNoCiAgICBjcmVhdGVzIG9uZSBmb3IgQVJNIGFzIHdlbGwuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDE3YmQxNzA3MTQ2M2IwY2RlMzkxYWM0YTA4NjNkNjAwNDc0YjRlYTEKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CVRodSBKdWwgMTAgMDE6MTU6MTAgMjAwOCArMDIwMAoKICAgIGF0OTE6IEZpeCB0byBlbmFibGUgdXNpbmcgVGVyaWRpYW4gTUlJIHBoeSAoNzhRMjF4Mykgd2l0aCBhdDkxc2FtOTI2MAoKICAgIE9uIHRoZSBhdDkxc2FtOTI2MGVwIGRldmVsb3BtZW50IGJvYXJkIHRoZXJlIGlzIGFuIEVFUFJPTQogICAgY29ubmVjdGVkIHRvIHRoZSBUV0kgaW50ZXJmYWNlIChQQTIzLCBQQTI0IFBlcmlwaGVyYWwgQQogICAgbXVsdGlwbGV4aW5nKSwgc28gd2UgY2Fubm90IHVzZSB0aGVzZSBwaW5zIGFzIEVUWDIsIEVUWDMuCiAgICBUaGlzIHBhdGNoIGNvbmZpZ3VyZXMgUEExMCwgUEExMSBwaW5zIGZvciBFVFgyLCBFVFgzCiAgICBpbnN0ZWFkIG9mIFBBMjMsIFBBMjQgcGlucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBNYW51ZWwgU2FobSA8TWFudWVsLlNhaG1AZmVpZy5kZT4KCmNvbW1pdCBmODg5MjY1NzUzZGRmNDQ2NWQ5ZDU4MDgyN2JiOTI4OWJmYWM1NWQ2CkF1dGhvcjogS2VubmV0aCBKb2hhbnNzb24gPGtlbm5ldGhAc291dGhwb2xlLnNlPgpEYXRlOglTYXQgSnVsIDEyIDEzOjE4OjM0IDIwMDggLTA2MDAKCiAgICBmaXggRElVIGZvciBzbWFsbCBzY3JlZW5zCgogICAgVGhlIERJVV9ESVYgcmVnaXN0ZXIgaXMgOCBiaXQgbm90IDUgYml0LiBUaGlzIHByZXZlbnRlZCBsYXJnZSBESVYgdmFsdWVzCiAgICBzbyBpdCB3YXMgbm90IHBvc3NpYmxlIHRvIHNldCBhIHNsb3cgcGl4ZWwgY2xvY2sgYW5kIHRodXMgcHJldmVudGVkCiAgICBkaXNwbGF5IG9uIHNtYWxsIHNjcmVlbnMuCgogICAgU2lnbmVkLW9mZi1ieTogS2VubmV0aCBKb2hhbnNzb24gPGtlbm5ldGhAc291dGhwb2xlLnNlPgogICAgQWNrZWQtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI2MGI4NTczODc1ZTY1MGU0YzY5YmU2NjdiZmM4OGQzZWQ0NzRhN2MKQXV0aG9yOiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAxMSAxNDo0NDowOSAyMDA4IC0wNjAwCgogICAgQURTNTEyMSBjbGVhbnVwIGNvbXBpbGUgd2FybmluZ3MKCiAgICBib2FyZC9hZHM1MTIxL2lvcGluLmMKCVJlcGxhY2UgYml0IGZpZWxkcyBpbiBzdHJ1Y3QgaW9waW5fdCB3aXRoIGEgc2luZ2xlCglmaWVsZCBhbmQgaW50aWFsaXplIGl0IHZpYSBwbGFpbiBvbGQgbWFjcm9zLgoJVGhpcyBmaXhlcyB0aGUgdHlwZSBwdW4gd2FybmluZ3MgYW5kIG1ha2VzIHRoZSBjb2RlCgltb3JlIHJlYWRhYmxlLgoKICAgIGJvYXJkL2FkczUxMjEvYWRzNTEyMS5jCglBZGQgaW5jbHVkZSBpb3Bpbi5oIHRvIGFkczUxMjEuYyBmb3IgdGhlIGlvcGluX2luaXRpYWxpemUKCXByb3RvdHlwZS4KCglBZGQgYW4gZXh0ZXJuIHZvaWQgYWRzNTEyMV9kaXVfaW5pdCh2b2lkKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJkZTYzNTg3NjIyYzRiODMwYTI3ZDFkZGY3MjY1ODQzZGU5ZTk5NGYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgSnVsIDExIDIyOjU2OjExIDIwMDggKzAyMDAKCiAgICBGaXggc29tZSBtb3JlIHByaW50ZigpIGZvcm1hdCBpc3N1ZXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAxODRmMWI0MDRhOTBlZWY4YjQyNWMwZTdiMzAxOGQ1OWVmOTk4MmM4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIEp1bCAxMSAyMjo1NTozMSAyMDA4ICswMjAwCgogICAgRml4ZWQgc29tZSBvdXQtb2YtdHJlZSBidWlsZCBpc3N1ZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDQ3YmY5YzcxYWU4MzgzMDVhM2VhMzE2MWFmOGQxNGU2ZjNmYzJjODIKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDkgMTY6MjA6MjMgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBGaXggRkIgQ1Mgbm90IHNldHVwIHByb3Blcmx5IGZvciBNY2Y1MjgyCgogICAgUmVtb3ZlIGFsbCBDRkdfQ1NuX1JPIGluIGNwdS9tY2Y1MngyL2NwdV9pbml0LmMuIElmCiAgICBDRkdfQ1NuX1JPIGlzIGRlZmluZWQgYXMgMCwgdGhlIGNoaXBzZWxlY3Qgd2lsbCBub3QKICAgIGJlIGFzc2lnbmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmMzY2NiMTM5ZjA4MzZmMGE4MzRjZmQzNzBhMTIwYTAwYWQ3ZTYzYQpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgOSAxNTo0NzoyNyAyMDA4IC0wNTAwCgogICAgQ29sZEZpcmU6IEZpeCBpbmNvcnJlY3QgZGVmaW5lIGZvciBtY2Y1MjI3eCBhbmQgbWNmNTQ0NXggUlRDCgogICAgUmVuYW1lIENPTkZJR19NQ0ZUTVIgdG8gQ09ORklHX01DRlJUQyB0byBpbmNsdWRlIHJlYWwgdGltZQogICAgY2xvY2sgbW9kdWxlIGluIGNwdS88Y2YgYXJjaD4vY3B1X2luaXQuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjk0OTQ1YjUxN2YxMGUwMTkyNzEwMTY3OWM2MjM2MWUwM2Q0ZTgzNwpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgOSAxNToyNTowMSAyMDA4IC0wNTAwCgogICAgQ29sZEZpcmU6IEZpeCBpbmNvcnJlY3QgYm9hcmQgbmFtZSBpbiBNQUtFQUxMIGZvciBNNTI1M0VWQkUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBlMGM0MzU3ZDE0YTM1NjNjNmEyYTFlNmQ1YWQ2YTJjYzRmMzVjYWIKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDkgMTU6MjE6NDQgMjAwOCAtMDUwMAoKICAgIEZpeCBjb21waWxlIGVycm9yIGNhdXNlZCBieSBtaXNzaW5nIHRpbWVyIGZ1bmN0aW9uCgogICAgQWRkICNkZWZpbmUgQ09ORklHX01DRlRNUiBpbiBFQitNQ0YtRVYxMjMuaCBjb25maWd1cmF0aW9uIGZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGMzN2VhMDMxMTc1YjgwN2M1NGU2YmFkOWIyNzBlOWJlZGU2YzAwNzgKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDkgMTU6MTQ6MjUgMjAwOCAtMDUwMAoKICAgIEZpeCBjb21waWxlIGVycm9yIGNhdXNlZCBieSBpbmNvcnJlY3QgZnVuY3Rpb24gcmV0dXJuIHR5cGUKCiAgICBSZW5hbWUgaW50IG1paV9pbml0KHZvaWQpIHRvIHZvaWQgbWlpX2luaXQodm9pZCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFiNDg2MGIyNTUyMzlkYmFlY2NjZGQwMDJjOGQxMWY0ZWY1NGRkNzUKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDE4IDE5OjI3OjIzIDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogRml4IHBvd2VyIHVwIGlzc3VlIGZvciBNQ0Y1MjM1CgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZDA4ZTk3MzYxZmJjOWU3OWZhNWVmMWE4YWNmMjkyNzNiOTM0YjExCkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAxOCAxOToxOTowNyAyMDA4IC0wNTAwCgogICAgQ29sZEZpcmU6IEZpeCBjb21waWxpbmcgZXJyb3IgZm9yIE1DRjUyNzUKCiAgICBUaGUgY29tcGlsaW5nIGVycm9yIHdhcyBjYXVzZWQgYnkgbWlzc2luZyBhIGNsb3NlZCBwYXJlbnRoZXNlcwogICAgaW4gc3BlZWQuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTQ2MDNjMmZkNGRiZTA2NTU4Nzg0MTZhYTBkYTlmMzAyZDRjMzBkMwpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMTggMTk6MTQ6MDEgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBGaXggdGltZXIgaXNzdWUgZm9yIE1DRjUyNzIKCiAgICBUaGUgdGltZXIgd2FzIGFzc2lnbmVkIHRvIHdyb25nIHRpbWVyIG1lbW9yeSBtYXBwZWQgd2hpY2gKICAgIGNhdXNlZCB1ZGVsYXkoKSBhbmQgdGltZXIoKSBub3Qgd29ya2luZyBwcm9wZXJseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNiMWU4YWM5YjQzZjg5Y2M5MjkxYTZhODZlNmIzM2VmNTU4MDE1MTUKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDE4IDE5OjEyOjEzIDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogQ2hhbmdlIGludmFsaWQgSk1QIHRvIEJSQSBjYXVnaHQgYnkgbmV3IHY0ZSB0b29sY2hhaW4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdXJ0IE1haGFuIDxrbWFoYW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4MzcxZGMyMDY2MTM2YmUyMWUxMGI3YjkyOTNlNDY5Mjk3ZDc3Mjk4CkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAxOCAxOTowNToyMyAyMDA4IC0wNTAwCgogICAgQ29sZEZpcmU6IEFkZCAtZ290PXNpbmdsZSBwYXJhbSBmb3IgbmV3IGxpbnV4IHY0ZSB0b29sY2hhaW5zCgogICAgU2lnbmVkLW9mZi1ieTogS3VydCBNYWhhbiA8a21haGFuQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTZkNTI2MTVjZDQ3YmM1MjJlZTEzYmI3ZWM3ZTU5ZDZjZTk0MjZjNwpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMTggMTM6MjE6MTkgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBGaXggY29kZSBmbGFzaCBjb25maWd1cmF0aW9uIGZvciBNNTQ3eC9NNTQ4eCBib2FyZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdXJ0IE1haGFuIDxrbWFoYW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2ZTM3MDkxYWZjMDdmZGNjMTU1OTAwOTNmZDA2NmIwY2I3Mzk5Zjg1CkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biAyNCAxMjoxMjoxNiAyMDA4IC0wNTAwCgogICAgQ29sZEZpcmU6IEZpeCB3YXJuaW5nIG1lc3NhZ2VzIGJ5IHBhc3NpbmcgY29ycmVjdCBkYXRhIHR5cGUgaW4gYm9hcmQuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODFjYzMyMzIyYWNiMWIzMjI1ZWU0NTYwNmNlZDQ4ZTJhMTQ4MjRkYwpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBNYXkgMjkgMTI6MjE6NTQgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBGaXggVUFSVCBiYXVkcmF0ZSBmb3JtdWxhCgogICAgVGhlIGZvcm11bGEgImNvdW50ZXIgPSAodTMyKSAoZ2QtPmJ1c19jbGsgLyBnZC0+YmF1ZHJhdGUpIC8gMzIiCiAgICBjYW4gZ2VuZXJhdGUgdGhlIHdyb25nIGRpdmlzb3IgZHVlIHRvIGludGVnZXIgZGl2aXNpb24gdHJ1bmNhdGlvbi4KICAgIFJvdW5kIHRoZSBjYWxjdWxhdGVkIGRpdmlzb3IgdmFsdWUgYnkgYWRkaW5nIDEvMiB0aGUgYmF1ZHJhdGUKICAgIGJlZm9yZSBkaXZpZGluZyBieSB0aGUgYmF1ZHJhdGUuCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IGI1NzhmYjQ3MTQ0NGNiZDdkYjEyODU3MDFiYTUxMzQzYmFhZjczZmIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgMTAgMTE6Mzg6MjYgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRml4IGluY2x1ZGUgc2VxdWVuY2UgaW4gNHh4X3BjaWUuYwoKICAgIFRoaXMgcGF0Y2ggbm93IG1vdmVzIGNvbW1vbi5oIHRvIHRoZSB0b3Agb2YgdGhlIGlubGN1ZGUgbGlzdC4gVGhpcwogICAgaXMgbmVlZGVkIGZvciBib2FyZHMgd2l0aCBDT05GSUdfUEhZU182NEJJVCBzZXQgKGUuZy4ga2F0bWFpKSwgc28gdGhhdAogICAgdGhlIHBoeXNfc2l6ZV90L3BoeXNfYWRkcl90IGFyZSBkZWZpbmVkIHRvIHRoZSBjb3JyZWN0IHNpemUgaW4gdGhpcwogICAgZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2OWUyYzZkMGQxM2Q3YzhjZjE2MTJhYzA5MGJkYzRjNTliYTY4NThlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVsIDExIDEzOjEwOjU2IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBjb21waWxlIHdhcm5pbmcgaW4gNDR4X3NwZF9kZHIyLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmJkOTEzODQ5OGMyZTRmNGYwOTE5MDEwOGI5OTE1N2QxYjIxNDBiNQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1bCAxMSAxMTo0MDoxMyAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggc21hbGwga29yYXQgbWVyZ2UgcHJvYmxlbQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxZDA1NTQ3MzZhMGExZGQ1OTcxOGFjZGE2NjA4NzFjZTU2YjY5ZTE4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVsIDExIDExOjM0OjUyIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFNvbWUgUmV3b29kIGNsZWFudXBzIChjb2Rpbmcgc3R5bGUsIGxlYWRpbmcgd2hpdGUgc3BhY2VzKQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzYTgyMTEzZWQ1OTM0ZDQ5OGYyNTA4MDQ0MWE4MjYxZmM5NDU0YjE1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSnVsIDEwIDE2OjM3OjA5IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEFkZCA0NjBTWCBVSUMgZGVmaW5lcwoKICAgIE9ubHkgdGhlIHJlYWxseSBuZWVkZWQgb25lcyBhcmUgYWRkZWQgKGNhc2NhZGluZyBhbmQgRU1BQy9NQUwpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyNjE3M2ZjNmY2MDUyMWMyYTgwNzJmNjUyZjg2MzYxN2ZjMTFiYTlhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSnVuIDMwIDE0OjExOjA3IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IENvbnRpbnVlIGNsZWFudXAgb2YgcHBjNDQwLmgKCiAgICBUaGlzIHBhdGNoIGNvbnRpbnVlcyB0aGUgcHBjNDQwLmggY2xlYW51cCBieSByZW1vdmluZyBzb21lIG9mIHRoZSB1bnVzZWQKICAgIGRlZmluZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQ5MDU2Yjc5MTNlZDZhMjI4ZDJmMzM2NzFkOTE2ZWZlZGVlNTQxZGQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKdW4gMzAgMTQ6MDU6MDUgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQ2xlYW51cCBLYXRtYWkgJiBZdWNjYSBQQ0llIHJlZ2lzdGVyIHVzYWdlCgogICAgVGhpcyBwYXRjaCBjbGVhbnMgdXAgdGhlIDQ0MFNQZSBQQ0llIHJlZ2lzdGVyIHVzYWdlLiBOb3cgb25seSBkZWZpbmVzCiAgICBmcm9tIHRoZSBpbmNsdWRlL2FzbS1wcGMvNHh4X3BjaWUuaCBhcmUgdXNlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNWRlODUxNDAzYjAxNDg5YjQ5M2ZhODMxMzdhZDk5MGI4Y2U2MGQxYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEp1biAyNiAxNzozNjozOSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBSZXdvcmsgNDQwR1ggVUlDIGhhbmRsaW5nCgogICAgVGhpcyBwYXRjaCByZXdvcmtzIHRoZSA0NDBHWCBpbnRlcnJ1cHQgaGFuZGxpbmcgc28gdGhhdCB0aGUgY29tbW9uIDR4eAogICAgY29kZSBjYW4gYmUgdXNlZC4gVGhlIDQ0MEdYIGlzIGFuIGV4Y2VwdGlvbiB0byBhbGwgb3RoZXIgNHh4IHZhcmlhbnRzCiAgICBieSBoYXZpbmcgdGhlIGNhc2NhZGluZyBpbnRlcnJ1cHQgdmVjdG9ycyBub3Qgb24gVUlDMCBidXQgb24gYSBzcGVjaWFsCiAgICBVSUMgbmFtZWQgVUlDQjAgKFVJQyBCYXNlIDApLiBXaXRoIHRoaXMgcGF0Y2ggbm93LCBVLUJvb3QgcmVmZXJlbmNlcwogICAgdGhlIDQ0MEdYIFVJQ0IwIHdoZW4gVUlDMCBpcyBzZWxlY3RlZC4gQW5kIHRoZSBjb21tb24gNHh4IGludGVycnVwdAogICAgaGFuZGxpbmcgaXMgc2ltcGxlciB3aXRob3V0IGFueSA0NDBHWCBzcGVjaWFsIGNhc2VzLgoKICAgIEFsc28gc29tZSBhZGRpdGlvbmFsIGNsZWFudXAgdG8gY3B1L3BwYzR4eC9pbnRlcnJ1cHQuYyBpcyBkb25lLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkMTYzMWZlMWEwNWIwNjNjY2FmNjJlYTg5MmE4ODg3YjgyOTg0N2QxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSnVuIDI2IDEzOjQwOjU3IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IENvbnNvbGlkYXRlIFBQQzR4eCBVSUMgZGVmaW5lcwoKICAgIFRoaXMgMm5kIHBhdGNoIG5vdyByZW1vdmVzIGFsbCBVSUMgbWFzayBiaXQgZGVmaW5pdGlvbi4gVGhleSBzaG91bGQgYmUKICAgIGdlbmVyYXRlZCBmcm9tIHRoZSB2ZWN0b3JzIGJ5IHVzaW5nIHRoZSBVSUNfTUFTSygpIG1hY3JvIGZyb20gbm93IG9uLgogICAgVGhpcyB3YXkgb25seSB0aGUgdmVjdG9ycyBuZWVkIHRvIGdldCBkZWZpbmVkIGZvciBuZXcgUFBDJ3MuCgogICAgQWxzbyBvbmx5IHRoZSByZWFsbHkgdXNlZCBpbnRlcnJ1cHQgdmVjdG9ycyBhcmUgbm93IGRlZmluZWQuIFRoaXMgbWFrZXMKICAgIGRlZmluaXRpb25zIGZvciBuZXcgUFBDIHZlcnNpb25zIGVhc2llciBhbmQgbGVzcyBlcnJvciBwcm9uZS4KCiAgICBBbm90aGVyIHBhcnQgb2YgdGhpcyBwYXRjaCBpcyB0aGF0IHRoZSA0eHggZW1hYyBkcml2ZXIgZ290IGEgbGl0dGxlCiAgICBjbGVhbnVwLCBzaW5jZSBub3cgdGhlIHVzYWdlIG9mIHRoZSBpbnRlcnJ1cHRzIGlzIGNsZWFyZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDRmYjI1YTNkYjNiMzgzOTA5NGFhOWFiNzQ4ZWZkN2E5NTkyNDY5MGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKdW4gMjUgMTA6NTk6MjIgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQ29uc29saWRhdGUgUFBDNHh4IFVJQyBkZWZpbmVzCgogICAgVGhpcyBwYXRjaCBpcyB0aGUgZmlyc3Qgc3RlcCB0byBjb25zb2xpZGF0ZSB0aGUgVUlDIHJlbGF0ZWQgZGVmaW5lcyBpbiB0aGUKICAgIDR4eCBoZWFkZXJzLiBNb3ZlIGhlYWRlciBmcm9tIGFzbS1wcGMvcHBjNHh4LWludHZlYy5oIHRvCiAgICBhc20tcHBjL3BwYzR4eC11aWMuaCBhcyBpdCB3aWxsIGhvbGQgYWxsIFVJQyByZWxhdGVkIGRlZmluZXMgaW4gdGhlIG5leHQKICAgIHN0ZXBzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3ZWUyNjE5YzIwY2NlY2Q1Nzk2NmQ3NGQ4NDRlNjMyOWUxNDEyNjFjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSnVuIDI0IDE3OjE4OjUwIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IENvbnNvbGlkYXRlIFBQQzR4eCBFQkMgZGVmaW5lcwoKICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBhbGwgRUJDIHJlbGF0ZWQgZGVmaW5lcyBmcm9tIHRoZSBQUEM0eHggaGVhZGVycwogICAgcHBjNDA1LmggYW5kIHBwYzQ0MC5oIGFuZCBpbnRyb2R1Y2VzIGEgbmV3IGhlYWRlcgoKICAgIGluY2x1ZGUvYXNtLXBwYy9wcGM0eHgtZWJjLmgKCiAgICB3aXRoIGFsbCB0aG9zZSBkZWZpbmVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlMzIxODAxYmVkNWE2ZDg5NmQyOThjMDBmZDIwMDQ2ZjAzOWQ1ZDY2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSnVsIDEwIDEzOjUyOjQ0IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFJlbW92ZSByZWR1bmRhbnQgZnRfYm9hcmRfc2V0dXAoKSBmdW5jdGlvbnMgZnJvbSBzb21lIDR4eCBib2FyZHMKCiAgICBUaGlzIHBhdGNoIHJlbW92ZXMgc29tZSBmdF9ib2FyZF9zZXR1cCgpIGZ1bmN0aW9ucyBmcm9tIHNvbWUgNHh4IGJvYXJkcy4KICAgIFRoaXMgY2FuIGJlIGRvbmUgc2luY2Ugd2Ugbm93IGhhdmUgYSBkZWZhdWx0IHdlYWsgaW1wbGVtZW50YXRpb24gZm9yIHRoaXMKICAgIGluIGNwdS9wcGM0eHgvZmR0LmMuIE9ubHkgYm9hcmQgaW4gbmVlZCBmb3IgYSBkaWZmZXJlbnQvY3VzdG9tCiAgICBpbXBsZW1lbnRhdGlvbiBsaWtlIGNhbnlvbmxhbmRzIG5lZWQgdGhlaXIgb3duIHZlcnNpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDA4MjUwZWIyZWRiZDk2NTE0ZDA0OTYwMmQ5ZTEzNDExMGFjMzE4NWYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgMTAgMTU6MzI6MzIgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRml4IG1lcmdlIHByb2JsZW1zIGluIDQ0eF9zcGRfZGRyMi5jCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDE3NDBjMWJmNDBlM2M2ZDAzYWMxNmMyOTk0M2ZkZDlmYzFlODcwMzgKQXV0aG9yOiBHcmFudCBFcmlja3NvbiA8Z2VyaWNrc29uQG51b3ZhdGlvbnMuY29tPgpEYXRlOglUdWUgSnVsIDggMDg6MzU6MDAgMjAwOCAtMDcwMAoKICAgIHBwYzR4eDogQWRkIE1JSSBtb2RlIHN1cHBvcnQgdG8gdGhlIEVNQUMgUkdNSUkgQnJpZGdlCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHBsYWNpbmcgdGhlIFJHTUlJIGJyaWRnZSBvbiB0aGUKICAgIFBQQzQwNUVYKHIpIGludG8gTUlJL0dNSUkgbW9kZSBhbmQgYWxsb3dzIGEgYm9hcmQtc3BlY2lmaWMKICAgIGNvbmZpZ3VyYXRpb24gdG8gc3BlY2lmeSB0aGUgYnJpZGdlIG1vZGUgYXQgY29tcGlsZS10aW1lLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IEVyaWNrc29uIDxnZXJpY2tzb25AbnVvdmF0aW9ucy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMmUyMDUwODQyZTczMWM4MjNjZThkNDFmYjBjMTU1NzllYjcwY2VkOQpBdXRob3I6IEdyYW50IEVyaWNrc29uIDxnZXJpY2tzb25AbnVvdmF0aW9ucy5jb20+CkRhdGU6CVdlZCBKdWwgOSAxNjo0NjozNSAyMDA4IC0wNzAwCgogICAgcHBjNHh4OiBBZGQgTW5lbW9uaWNzIGZvciBBTUNDL0lCTSBERFIyIFNEUkFNIENvbnRyb2xsZXIKCiAgICBUaGlzIHBhdGNoIGNvbXBsZXRlcyB0aGUgcHJlcHJvY2Vzc29yIG1uZW9taWNzIGZvciB0aGUgSUJNIEREUjIgU0RSQU0KICAgIGNvbnRyb2xsZXIgcmVnaXN0ZXJzIChNT0RUIGFuZCBJTklUUExSKSB1c2VkIGJ5IHRoZQogICAgUG93ZXJQQzQwNUVYKHIpLiBUaGUgTU1PREUgYW5kIE1FTU9ERSByZWdpc3RlcnMgYXJlIHVuaWZpZWQgd2l0aCB0aGVpcgogICAgcGVlciB2YWx1ZXMgdXNlZCBmb3IgdGhlIElOSVRQTFIgTVIgYW5kIEVNUiByZWdpc3RlcnMsCiAgICByZXNwZWN0aXZlbHkuIEZpbmFsbHksIGEgc3BlbGxpbmcgdHlwbyBpcyBjb3JyZWN0IChNQU5VRUwgdG8gTUFOVUFMKS4KCiAgICBXaXRoIHRoZXNlIG1uZW1vbmljcyBpbiBwbGFjZSwgdGhlIENGR19TRFJBTTBfKiBtYWdpYyBudW1iZXJzIGZvcgogICAgS2lsYXVlYSBhcmUgcmVwbGFjZWQgYnkgZXF1aXZhbGVudCBtbmVtb25pY3MgdG8gbWFrZSBpdCBlYXNpZXIgdG8KICAgIGNvbXBhcmUgYW5kIGNvbnRyYXN0IG90aGVyIDQwNUVYKHIpLWJhc2VkIGJvYXJkcyAoZS5nLiBkdXJpbmcgYm9hcmQKICAgIGJyaW5nLXVwKS4KCiAgICBGaW5hbGx5LCB1bmlmaWVkIHRoZSBTRFJBTSBjb250cm9sbGVyIHJlZ2lzdGVyIGR1bXAgcm91dGluZSBzdWNoIHRoYXQKICAgIGl0IGNhbiBiZSB1c2VkIGFjcm9zcyBhbGwgcHJvY2Vzc29yIHZhcmlhbnRzIHRoYXQgdXRpbGl6ZSB0aGUgSUJNIEREUjIKICAgIFNEUkFNIGNvbnRyb2xsZXIgY29yZS4gSXQgcHJvZHVjZXMgb3V0cHV0IG9mIHRoZSBmb3JtOgoKCVBQQzR4eCBJQk0gRERSMiBSZWdpc3RlciBEdW1wOgoJCS4uLgoJCVNEUkFNX01CMENGWzQwXSA9IDB4MDAwMDY3MDEKCQkuLi4KCiAgICB3aGljaCBpcyAnPG1uZW1vbmljPls8RENSICM+XSA9IDx2YWx1ZT4nLiBUaGUgRENSIG51bWJlciBpcyBpbmNsdWRlZAogICAgc2luY2UgaXQgaXMgbm90IHVuY29tbW9uIHRoYXQgdGhlIERDUiB2YWx1ZXMgaW4gaGVhZGVyIGZpbGVzIGdldCBtaXhlZAogICAgdXAgYW5kIGl0IGhlbHBzIHRvIHZhbGlkYXRlLCBhdCBhIGdsYW5jZSwgdGhleSBtYXRjaCB3aGF0IGlzIHByaW50ZWQKICAgIGluIHRoZSB1c2VyIG1hbnVhbC4KCiAgICBUZXN0ZWQgb246CiAgICAgIEFNQ0MgS2lsYXVlYS9IYWxlYWthbGE6CiAgICAgIC0gTkZTIExpbnV4IEJvb3Q6IFBBU1NFRAogICAgICAtIE5BTkQgTGludXggQm9vdDogUEFTU0VECgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgRXJpY2tzb24gPGdlcmlja3NvbkBudW92YXRpb25zLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhZDczODJkODI4OTgyZTljMWJhZmM0MzEzZWYxYjY2NmY2MTQ1ZjU4CkF1dGhvcjogR3JhbnQgRXJpY2tzb24gPGdlcmlja3NvbkBudW92YXRpb25zLmNvbT4KRGF0ZToJV2VkIEp1bCA5IDE2OjMxOjU5IDIwMDggLTA3MDAKCiAgICBwcGM0eHg6IEFkZCBBTUNDL0lCTSBERFIyIFNEUkFNIEVDQyBGaWVsZCBNbmVtb25pY3MKCiAgICBBZGQgYWRkaXRpb25hbCBERFIyIFNEUkFNIG1lbW9yeSBjb250cm9sbGVyIERDUiBtbmVvbW5pY3MsIGNvbmRpdGlvbgogICAgcmV2aXNpb24gSUQgRENSIGJhc2VkIG9uIDQwNUVYLCBhbmQgYWRkIGZpZWxkIG1uZW1vbmljcyBmb3IgYnVzIGVycm9yCiAgICBzdGF0dXMgYW5kIEVDQyBlcnJvciBzdGF0dXMgcmVnaXN0ZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IEVyaWNrc29uIDxnZXJpY2tzb25AbnVvdmF0aW9ucy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTAzMjAxNzMxYmQ4ZTg1NDA0ZDBmNTFhNWI0ZThhYmQxNGMwYjZjNgpBdXRob3I6IEdyYW50IEVyaWNrc29uIDxnZXJpY2tzb25AbnVvdmF0aW9ucy5jb20+CkRhdGU6CVdlZCBKdWwgOSAxNjozMTozNiAyMDA4IC0wNzAwCgogICAgcHBjNHh4OiBBZGQgU0RSMF9TUlNUIE1uZW1vbmljcyBmb3IgdGhlIDQwNUVYKHIpCgogICAgVGhpcyBwYXRjaCBhZGRzIGJpdCBmaWVsZCBtbmVtb25pY3MgZm9yIHRoZSA0MDVFWChyKSBTRFIwX1NSU1Qgc29mdCByZXNldCByZWdpc3Rlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBFcmlja3NvbiA8Z2VyaWNrc29uQG51b3ZhdGlvbnMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDViNDU3ZDAwNzMwZDRhYTBjNjQ1MGQyMWE5MTA0NzIzZTYwNmZiOTgKQXV0aG9yOiBHcmFudCBFcmlja3NvbiA8Z2VyaWNrc29uQG51b3ZhdGlvbnMuY29tPgpEYXRlOglXZWQgSnVsIDkgMTE6NTU6NDYgMjAwOCAtMDcwMAoKICAgIFBQQzR4eDogQ29ycmVjdCBTRFJBTV9NQ1NUQVQgZm9yIFBQQzQwNUVYKHIpCgogICAgV2hpbGUgdGhlIFBvd2VyUEMgNDA1RVgocikgc2hhcmVzIGluIGNvbW1vbiB0aGUgQU1DQy9JQk0gRERSMiBTRFJBTQogICAgY29udHJvbGxlciBjb3JlIGFsc28gdXNlZCBpbiB0aGUgNDQwU1AsIDQ0MFNQZSwgNDYwRVgsIGFuZCA0NjBHVCwgaW4KICAgIHRoZSA0MDVFWChyKSwgU0RSQU1fTUNTVEFUIGhhcyBhIGRpZmZlcmVudCBEQ1IgdmFsdWUuCgogICAgSXRzIHByZXNlbnQgdmFsdWUgb24gdGhlIDQwNUVYKHIpIGNhdXNlcyBhIHJlYWQgYmFjayBvZiAweEZGRkZGRkZGCiAgICB3aGljaCBjYXVzZXMgU0RSQU0gaW5pdGlhbGl6YXRpb24gdG8gcGVyaW9kaWNhbGx5IGZhaWwgc2luY2UgaXQgY2FuCiAgICBwcmVtYXR1cmVseSBpbmRpY2F0ZSBTRFJBTSByZWFkeSBzdGF0dXMuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgRXJpY2tzb24gPGdlcmlja3NvbkBudW92YXRpb25zLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwY2U1Yzg2NzViYjJjNjFmMWQ3MWZiOTdmMGJiZTgyMjY2M2ZiOTNkCkF1dGhvcjogRmVuZyBLYW4gPGZrYW5AYW1jYy5jb20+CkRhdGU6CVR1ZSBKdWwgOCAyMjo0ODo0MiAyMDA4IC0wNzAwCgogICAgcHBjNHh4OiBJbml0aWFsIGZyYW1ld29yayBvZiB0aGUgQU1DQyBQUEM0NjBTWCByZWR3b29kIHJlZmVyZW5jZSBib2FyZC4KCiAgICBBZGQgQU1DQyBSZWR3b29kIHJlZmVyZW5jZSBib2FyZCB0aGF0IHVzZXMgdGhlIGxhdGVzdAogICAgUFBDIDQ2NCBDUFUgcHJvY2Vzc29yIGNvbWJpbmVkIHdpdGggYSByaWNoIG1peCBvZiBwZXJpcGhlcmFsCiAgICBjb250cm9sbGVycy4gVGhlIGJvYXJkIHdpbGwgc3VwcG9ydCBQQ0llLCBtdXRpcGxlIEdpZyBldGhlcm5ldAogICAgcG9ydHMsIGFkdmFuY2VkIGhhcmR3YXJlIFJBSUQgYXNzaXN0YW5jZSBhbmQgSUVFRSAxNTg4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEZlbmcgS2FuIDxma2FuQGFtY2MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDk2ZTVmYzBlNmExODYxZDBmZWE0ZWZhM2NkMzc2ZGY5NWE1YjFiODkKQXV0aG9yOiBGZW5nIEthbiA8ZmthbkBhbWNjLmNvbT4KRGF0ZToJVHVlIEp1bCA4IDIyOjQ4OjA3IDIwMDggLTA3MDAKCiAgICBwcGM0eHg6IEFkZCBpbml0aWFsIDQ2MFNYIHJlZmVyZW5jZSBib2FyZCAocmVkd29vZCkgY29uZmlnIGZpbGUgYW5kIGRlZmluZXMuCgogICAgU2lnbmVkLW9mZi1ieTogRmVuZyBLYW4gPGZrYW5AYW1jYy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgN2QzMDc5MzY4NWVmY2FkYTE4Mzg5MWM3OGZjODkyZTZjOWJhNTBjNwpBdXRob3I6IEZlbmcgS2FuIDxma2FuQGFtY2MuY29tPgpEYXRlOglUdWUgSnVsIDggMjI6NDc6MzEgMjAwOCAtMDcwMAoKICAgIHBwYzR4eDogQWRkIGluaXRpYWwgNDYwU1ggZGVmaW5lcyBmb3IgdGhlIGNwdS9wcGM0eHggZGlyZWN0b3J5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEZlbmcgS2FuIDxma2FuQGFtY2MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDliNTVhMjUzNjkxOWY0ZGUxYmIxMDQ0ZTZlYjgyNjJjMmY1M2JjOTYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgSnVsIDExIDAxOjE2OjAwIDIwMDggKzAyMDAKCiAgICBGaXggc29tZSBtb3JlIHByaW50KCkgZm9ybWF0IGVycm9ycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGZkZDcwZDE5MjFiODcyODdkOWE5OWQxYmU5OWJjMzUyMjZjMmI0MTIKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUaHUgSnVsIDEwIDIwOjU3OjU0IDIwMDggKzAyMDAKCiAgICBNQUtFQUxMOiByZW1vdmUgZHVwbGljYXRlZCBhdDkxIGZyb20gQVJNOSBsaXN0IGFuZCBhZGQgTElTVF9hdDkxIHRvIGFybQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYzY0NTdlM2I4YmM3OWE5NzM4MWNmN2RlZmZhMDhmN2M1YTI0Zjg2YwpBdXRob3I6IFNlcmdleSBMYXBpbiA8c2xhcGluQG9zc2ZhbnMub3JnPgpEYXRlOglUaHUgSnVuIDUgMTE6MDY6MjkgMjAwOCArMDQwMAoKICAgIERhdGFGbGFzaCBBVDQ1REIwMjEgc3VwcG9ydAoKICAgIFNvbWUgYm9hcmRzIGJhc2VkIG9uIEFUOTFTQU05MjZYLUVLIHVzZSBzbWFsbGVyIERGIGNoaXBzIHRvIGtlZXAKICAgIGJvb3RzdHJhcCwgdS1ib290IGFuZCBpdHMgZW52aXJvbm1lbnQsIHVzaW5nIE5BTkQgb3Igb3RoZXIgZXh0ZXJuYWwKICAgIHN0b3JhZ2UgZm9yIGtlcm5lbCBhbmQgcm9vdGZzLiBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IKICAgIHNtYWxsIDEwMjR4MjYzIGNoaXAuCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2V5IExhcGluIDxzbGFwaW5Ab3NzZmFucy5vcmc+Cgpjb21taXQgNDEwOWRmNmY3NWZjMDBhYjdkYTU2ZDI4NmJhNTAxNDlhMGQxNmE2OQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgMTAgMTQ6MDA6MTUgMjAwOCAtMDUwMAoKICAgIHNpbGVuY2UgbWlzYyBwcmludGYgZm9ybWF0dGluZyBjb21waWxlciB3YXJuaW5ncwoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgM2Q3MWM4MWE5YmIwM2Y4NjZhMWU5OGRhOTYzNjNlZjNmNDZjNzZiMwpBdXRob3I6IE1hcmt1cyBLbG90emLDvGNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgMTAgMTQ6NDc6MDkgMjAwOCArMDIwMAoKICAgIFVTQjogc2h1dGRvd24gVVNCIGJlZm9yZSBib290aW5nCgogICAgVGhpcyBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbGx5IHNlcmlvdXMgaXNzdWUgcmVsYXRlZCB0byBVU0Igd2hpY2ggd2FzCiAgICBkaXNjb3V2ZXJlZCBieSBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4gYW5kIGZpeGVkIGZvcgogICAgQVJNOTIwVC4gTWFydGluIHdyb3RlOgoKICAgICAgVHVybiBvZmYgVVNCIHRvIHByZXZlbnQgdGhlIGhvc3QgY29udHJvbGxlciBmcm9tIHdyaXRpbmcgdG8gdGhlCiAgICAgIFNEUkFNIHdoaWxlIExpbnV4IGlzIGJvb3RpbmcuIFRoaXMgY291bGQgaGFwcGVuLCBiZWNhdXNlIHRoZSBIQ0NBCiAgICAgIChIb3N0IENvbnRyb2xsZXIgQ29tbXVuaWNhdGlvbiBBcmVhKSBsaWVzIHdpdGhpbiB0aGUgU0RSQU0gYW5kIHRoZQogICAgICBob3N0IGNvbnRyb2xsZXIgd3JpdGVzIGNvbnRpbm91c2x5IHRvIHRoaXMgYXJlYSAoYXMgYnVzbWFzdGVyISksIGZvcgogICAgICBleGFtcGxlIHRvIGluY3JlYXNlIHRoZSBIY2NhRnJhbWVOdW1iZXIgdmFyaWFibGUsIHdoaWNoIGhhcHBlbnMKICAgICAgZXZlcnkgMSBtcy4KCiAgICBUaGlzIGlzIGEgc2xpZ2h0bHkgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgcGF0Y2ggaW4gb3JkZXIgdG8gc2h1dGRvd24KICAgIFVTQiB3aGVuIGJvb3Rpbmcgb24gYWxsIGFyY2hpdGVjdHVyZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCBmMzFjNDlkYjJhNWUwNzZmNDE1YzA3ODVlYjM3ZjY3ZjJmYWE1ZmM4CkF1dGhvcjogTWFydGhhIE1hcnggPG1tYXJ4QHNpbGljb250a3guY29tPgpEYXRlOglUaHUgTWF5IDI5IDE0OjIzOjI1IDIwMDggLTA0MDAKCiAgICBDb25maWd1cmF0aW9uIGNoYW5nZXMgZm9yIEFEUzUxMjEgUmV2IDMKCiAgICBBRFM1MTIxIFJldiAzIGJvYXJkIGlzIG5vdyB0aGUgZGVmYXVsdCBjb25maWcKCiAgICBjb25maWcgdGFyZ2V0cyBhcmUgbm93CgogICAgYWRzNTEyMV9jb25maWcKCVJldiAzIGJvYXJkIHdpdGgKCVBDSQoJTTQxVDYyIG9uIGJvYXJkIFJUQwoJNTEyTUIgRFJBTQoKICAgIGFkczUxMjFfcmV2Ml9jb25maWcKCVJldiAyIGJvYXJkIHdpdGgKCU5vIFBDSQoJMjU2TUIgRFJBTQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRoYSBNYXJ4IDxtbWFyeEBzaWxpY29udGt4LmNvbT4KICAgIEFja2VkLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CiAgICBBY2tlZC1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTZiZWU3YjBkYzI5NGVlMDFjYTI0MzRhYTFkZDNiZDcxN2E2OTYxNQpBdXRob3I6IE1hcnRoYSBNYXJ4IDxtbWFyeEBzaWxpY29udGt4LmNvbT4KRGF0ZToJVGh1IE1heSAyOSAxNTozNzoyMSAyMDA4IC0wNDAwCgogICAgQ29uc29saWRhdGUgQURTNTEyMSBJTyBQaW4gY29uZmlndXJhdGlvbgoKICAgIENvbnNvbGlkYXRlIEFEUzUxMjEgSU8gUGluIGNvbmZpZ3VyYXRpb24gdG8gb25lIGZpbGUKICAgIGJvYXJkL2FkczUxMjEvaW9waW4uYy4KCiAgICBSZW1vdmUgcGluIGNvbmZpZyBmcm9tIGNwdS9tcGM1MTJ4L2ZlYy5jCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGhhIE1hcnggPG1tYXJ4QHNpbGljb250a3guY29tPgogICAgQWNrZWQtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KICAgIEFja2VkLWJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkNDY5MmIwYmE4M2I3YjQ1NGJiZDkyYmFkMWY0YmVmZTZlMTY1N2I3CkF1dGhvcjogQ2hyaXN0aWFuIEVnZ2VycyA8Y2hyaXN0aWFuQHAyNDAwLndnbmV0ei54eD4KRGF0ZToJRnJpIEp1biAyNyAxOTo0Njo1MSAyMDA4ICswMjAwCgogICAgRml4ICJ1c2IgcGFydCIgY29tbWFuZAoKICAgIE9ubHkgcHJpbnQgcGFydGl0aW9uIGZvciBzZWxlY3RlZCBkZXZpY2UgaWYgdXNlciBzdXBwbGllZCB0aGUgPGRldj4KICAgIGFyZyB3aXRoIHRoZSAidXNiIHBhcnQgW2Rldl0iIGNvbW1hbmQuCgogICAgU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEVnZ2VycyA8Y2VnZ2Vyc0BnbXguZGU+CiAgICBBY2tlZC1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCBjYzgzYjI3MjE3ZjczODAwNDFmZWEzODZkZGI2ZDZkOWIyNjE2MTdkCkF1dGhvcjogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQGdudW1vbmtzLm9yZz4KRGF0ZToJTW9uIEp1bCA3IDAwOjU4OjA1IDIwMDggKzA4MDAKCiAgICBmaXggVVNCIGRldmljZXMgd2l0aCBtdWx0aXBsZSBjb25maWd1cmF0aW9ucwoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYnVncyBpbiB1c2JkY29yZSouYyByZWxhdGVkIHRvIHRoZSB1c2Ugb2YgZGV2aWNlcwogICAgd2l0aCBtdWx0aXBsZSBjb25maWd1cmF0aW9ucy4KCiAgICBUaGUgb3JpZ2luYWwgY29kZSBtYWRlIG1pc3Rha2VzIGFib3V0IHRoZSBtZWFuaW5nIG9mIGNvbmZpZ3VyYXRpb24gdmFsdWUgYW5kCiAgICBjb25maWd1cmF0aW9uIGluZGV4LCBhbmQgdGhlIHJlc3VsdGluZyBvZmYtYnktb25lIGVycm9ycyByZXN1bHRlZCBpbjoKCiAgICAqIFNFVF9DT05GSUdVUkFUSU9OIGFsd2F5cyBzZWxlY3RlZCB0aGUgZmlyc3QgY29uZmlndXJhdGlvbiwgbm8gbWF0dGVyIHdoYXQKICAgICAgd1ZhbHVlIGlzIGJlaW5nIHBhc3NlZC4KICAgICogR0VUX0RFU0NSSVBUT1IvQ09ORklHVVJBVElPTiBhbHdheXMgcmV0dXJuZWQgdGhlIGRlc2NyaXB0b3IgZm9yIHRoZSBmaXJzdAogICAgICBjb25maWd1cmF0aW9uIChpbmRleCAwKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYXJhbGQgV2VsdGUgPGxhZm9yZ2VAb3Blbm1va28ub3JnPgogICAgQWNrZWQtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgMDZjNTNiZWFlMWE3MjZlNzA3OTcxYzU1NTYxM2YwOWIyNzBhMjQ2MQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgMTAgMTM6MTY6MDkgMjAwOCArMDIwMAoKICAgIEZpeCBzb21lIG1vcmUgcHJpbnQoKSBmb3JtYXQgZXJyb3JzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZDRiNWYzZmEwMDEyMjhkNzZlMmMzMzgwY2VkYWRmODA0YjgwMmMyYQpBdXRob3I6IENocmlzdGlhbiBFZ2dlcnMgPGNocmlzdGlhbkBwMjQwMC53Z25ldHoueHg+CkRhdGU6CUZyaSBKdW4gMjcgMTk6NDY6NTEgMjAwOCArMDIwMAoKICAgIEZpeCAidXNiIHBhcnQiIGNvbW1hbmQKCiAgICBPbmx5IHByaW50IHBhcnRpdGlvbiBmb3Igc2VsZWN0ZWQgZGV2aWNlIGlmIHVzZXIgc3VwcGxpZWQgdGhlIDxkZXY+CiAgICBhcmcgd2l0aCB0aGUgInVzYiBwYXJ0IFtkZXZdIiBjb21tYW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IENocmlzdGlhbiBFZ2dlcnMgPGNlZ2dlcnNAZ214LmRlPgogICAgQWNrZWQtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgZTczYjUyMTJlMDQ2M2EzZGIwYWYwYTVjOTVjNzViZmI3NjJjYTk3MwpBdXRob3I6IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBnbnVtb25rcy5vcmc+CkRhdGU6CU1vbiBKdWwgNyAwMDo1ODowNSAyMDA4ICswODAwCgogICAgZml4IFVTQiBkZXZpY2VzIHdpdGggbXVsdGlwbGUgY29uZmlndXJhdGlvbnMKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGJ1Z3MgaW4gdXNiZGNvcmUqLmMgcmVsYXRlZCB0byB0aGUgdXNlIG9mIGRldmljZXMKICAgIHdpdGggbXVsdGlwbGUgY29uZmlndXJhdGlvbnMuCgogICAgVGhlIG9yaWdpbmFsIGNvZGUgbWFkZSBtaXN0YWtlcyBhYm91dCB0aGUgbWVhbmluZyBvZiBjb25maWd1cmF0aW9uIHZhbHVlIGFuZAogICAgY29uZmlndXJhdGlvbiBpbmRleCwgYW5kIHRoZSByZXN1bHRpbmcgb2ZmLWJ5LW9uZSBlcnJvcnMgcmVzdWx0ZWQgaW46CgogICAgKiBTRVRfQ09ORklHVVJBVElPTiBhbHdheXMgc2VsZWN0ZWQgdGhlIGZpcnN0IGNvbmZpZ3VyYXRpb24sIG5vIG1hdHRlciB3aGF0CiAgICAgIHdWYWx1ZSBpcyBiZWluZyBwYXNzZWQuCiAgICAqIEdFVF9ERVNDUklQVE9SL0NPTkZJR1VSQVRJT04gYWx3YXlzIHJldHVybmVkIHRoZSBkZXNjcmlwdG9yIGZvciB0aGUgZmlyc3QKICAgICAgY29uZmlndXJhdGlvbiAoaW5kZXggMCkuCgogICAgU2lnbmVkLW9mZi1ieTogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQG9wZW5tb2tvLm9yZz4KICAgIEFja2VkLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IGU4NzA2OTBiZGNhMTU0OTQzZWNhZGQ1MjEyZDJkNTljMWI5ZDM5MWIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgMTAgMTA6MTA6NTQgMjAwOCArMDIwMAoKICAgIE1URC9OQU5EOiBGaXggcHJpbnRmIGZvcm1hdCB3YXJuaW5nIGluIG5hbmQgY29kZQoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgTkFORCByZWxhdGVkIHByaW50ZiBmb3JtYXQgd2FybmluZy4gVGhvc2Ugd2FybmluZ3MgYXJlCiAgICBub3cgdmlzaWJsZSBzaW5jZSBwYXRjaCBkYzRiMGIzOGQ0YWFkZjA4ODI2ZjZjMzEyNzBmMWVlY2QyNzk2NGZkCiAgICBbRml4IHByaW50ZiBlcnJvcnMuXSBieSBBbmRyZXcgS2xvc3NuZXIgaGFzIGJlZW4gYXBwbGllZC4gVGhhbmtzLCB0aGlzIGlzCiAgICByZWFsbHkgaGVscGZ1bC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTA5NDNjOWFmYTI1Njk0YmQ5OTk5NDYxZjRlOWU1MGNlMjJmZmYyYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEp1bCAxMCAxMDowMDo0NSAyMDA4ICswMjAwCgogICAgcnRjOiBGaXggcHJpbnRmIGZvcm1hdCB3YXJuaW5nIGluIG00MXQ2MC5jCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGRjMWRhNDJmODE0Y2Q3MWU2NzU2YzJjZjYyYWYxYWRhMWQwNTgxZmIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKdWwgOCAxMjowMTo0NyAyMDA4ICswMjAwCgogICAgcGNpOiBNb3ZlIFBDSSBkZXZpY2UgY29uZmlndXJhdGlvbiBjaGVjayBpbnRvIGEgc2VwYXJhdGUgd2VhayBmdW5jdGlvbgoKICAgIFRoaXMgcGF0Y2ggbW92ZXMgdGhlIGNoZWNrLCBpZiBhIGRldmljZSBzaG91bGQgYmUgc2tpcHBlZCBpbiBQQ0kgUE5QCiAgICBjb25maWd1cmF0aW9uIGludG8gdGhlIGZ1bmN0aW9uIHBjaV9za2lwX2RldigpLiBUaGlzIGZ1bmN0aW9uIGlzIGRlZmluZWQKICAgIGFzIHdlYWsgc28gdGhhdCBpdCBjYW4gYmUgb3ZlcndyaXR0ZW4gYnkgYSBwbGF0Zm9ybSBzcGVjaWZpYyBvbmUgaWYKICAgIG5lZWRlZC4gVGhlIGNoZWNrIGlmIHRoZSBkZXZpY2Ugc2hvdWxkIGdldCBwcmludGVkIGluIHRoZSBQQ0kgc3VtbWFyeSB1cG9uCiAgICBib290dXAgKHdoZW4gQ09ORklHX1BDSV9TQ0FOX1NIT1cgaXMgZGVmaW5lZCkgaXMgbW92ZWQgdG8gdGhlIGZ1bmN0aW9uCiAgICBwY2lfcHJpbnRfZGV2KCkgd2hpY2ggaXMgYWxzbyBkZWZpbmVkIGFzIHdlYWsgdG9vLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBiMDAyMTQ0ZTFkYzIxMzc0YjFlZjUyODFmZTZiNWQwMTRhZjk2NjUwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSnVsIDEwIDA5OjU4OjA2IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBwcmludGYgZm9ybWF0IHdhcm5pbmdzIG5vdyB2aXNpYmxlIHdpdGggdGhlIHVwZGF0ZWQgZm9ybWF0IGNoZWNrCgogICAgVGhpcyBwYXRjaCBmaXhlcyBwcGM0eHggcmVsYXRlZCBwcmludGYgZm9ybWF0IHdhcm5pbmcuIFRob3NlIHdhcm5pbmdzIGFyZQogICAgbm93IHZpc2libGUgc2luY2UgcGF0Y2ggZGM0YjBiMzhkNGFhZGYwODgyNmY2YzMxMjcwZjFlZWNkMjc5NjRmZAogICAgW0ZpeCBwcmludGYgZXJyb3JzLl0gYnkgQW5kcmV3IEtsb3NzbmVyIGhhcyBiZWVuIGFwcGxpZWQuIFRoYW5rcywgdGhpcyBpcwogICAgcmVhbGx5IGhlbHBmdWwuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDVkODEyYjhiNGFkOTY2N2M3N2E1YmY5MmI0YmE4MTY5OWFiYzlmYzMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKdWwgOSAxNzozMzo1NyAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBFbmFibGUgc3VwcG9ydCBmb3IgPiAyR0IgU0RSQU0gb24gQU1DQyBLYXRtYWkKCiAgICBOZXdlciBQUEMncyBsaWtlIDQ0MFNQZSwgNDYwRVgvR1QgY2FuIGJlIGVxdWlwcGVkIHdpdGggbW9yZSB0aGFuIDJHQiBvZiBTRFJBTS4KICAgIFRvIHN1cHBvcnQgc3VjaCBjb25maWd1cmF0aW9ucywgd2UgIm9ubHkiIG1hcCB0aGUgZmlyc3QgMkdCIHZpYSB0aGUgVExCJ3MuIFdlCiAgICBuZWVkIHNvbWUgZnJlZSB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2UgZm9yIHRoZSByZW1haW5pbmcgcGVyaXBoZXJhbHMgbGlrZSwgU29DCiAgICBkZXZpY2VzLCBGTEFTSCBldGMuCgogICAgTm90ZSB0aGF0IEVDQyBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCBvbiBjb25maWd1cmF0aW9ucyB3aXRoIG1vcmUgdGhhbiAyR0IKICAgIFNEUkFNLiBUaGlzIGlzIGJlY2F1c2Ugd2Ugb25seSBtYXAgdGhlIGZpcnN0IDJHQiBvbiBzdWNoIHN5c3RlbXMsIGFuZCB0aGVyZWZvcmUKICAgIHRoZSBFQ0MgcGFyaXR5IGJ5dGUgb2YgdGhlIHJlbWFpbmluZyBhcmVhIGNhbid0IGJlIHdyaXR0ZW4uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNmMWMyZWQ5MWRmMjY5MDNiOTU2OTQ4ZjM3ZjgyZGU5ZTExNThhODkKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJU2F0IEp1biAxNCAxNzowMjo0OSAyMDA4IC0wNDAwCgogICAgcHBjNHh4OiBSZW1vdmUgaW1wbGVtZW50YXRpb24gb2YgdGVzdGRyYW0oKSBmcm9tIEtvcmF0IGJvYXJkIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0N2NlNGEyOGNjZmNmYjgwM2FhNjhkM2Q0NTA1YThkZTA1NmE4YTVlCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CkRhdGU6CVNhdCBKdW4gMTQgMTY6NTM6MDIgMjAwOCAtMDQwMAoKICAgIHBwYzR4eDogVXBkYXRlIGFuZCBhZGQgRkRUIHRvIEtvcmF0IGJvYXJkIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0MTg4ZjA0OTE4ODZiM2I0ODYxNjRlODE5YzBhODNmZGI5N2VmZDdkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEp1bCAxMCAwMToxMzozMCAyMDA4ICswMjAwCgogICAgTWlub3IgY29kaW5nIHN0eWxlIGNsZWFudXA7IHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDg5MTVmMTE4OWMxZDI5ZDhiZTdmNGRlMzI1NzAyZDkwYTg5ODgyMTkKQXV0aG9yOiBQYXVsIEdvcnRtYWtlciA8cGF1bC5nb3J0bWFrZXJAd2luZHJpdmVyLmNvbT4KRGF0ZToJV2VkIEp1bCA5IDE3OjUwOjQ1IDIwMDggLTA0MDAKCiAgICBlMTAwMDogYWRkIHN1cHBvcnQgZm9yIDgyNTQ1R00gNjRiaXQgUENJLVggY29wcGVyIHZhcmlhbnQKCiAgICBUaGlzIFBDSS1YIGUxMDAwIHZhcmlhbnQgd29ya3MgYnkganVzdCBhZGRpbmcgaW4gdGhlIGNvcnJlY3QKICAgIFBDSSBJRHMgaW4gdGhlIGFwcHJvcHJpYXRlIHBsYWNlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQYXVsIEdvcnRtYWtlciA8cGF1bC5nb3J0bWFrZXJAd2luZHJpdmVyLmNvbT4KCmNvbW1pdCAyMWFlNmNhMDMxNWFmZGJjNjVkYzNlOTVmZmQ1NzYzZTY3NzNkMDMwCkF1dGhvcjogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgpEYXRlOglXZWQgSnVsIDkgMTI6MzQ6MTEgMjAwOCArMDAwMAoKICAgIFNQQVJDOiBCdWlsZCBlcnJvciBmaXgKCiAgICAoaW50cm9kdWNlZCBieSBjb21taXQgMzkxZmQ5M2FiMjNlMTVhYjNkZDU4YTU0ZjViNjA5MDI0MDA5YzM3OCkKCiAgICBUaGlzIHBhdGNoIG1ha2VzIFNQQVJDIHRhcmdldHMgYnVpbGQgYWdhaW4uIEl0IGlzIGNhdXNlZCBieQogICAgcGh5c19hZGRyX3QgYW5kIHBoeXNfc2l6ZV90IGJlaW5nIGRlZmluZWQgaW4gdGhlIHdyb25nIGhlYWRlcgogICAgZmlsZS4gaW5jbHVkZS9sbWIuaCBuZWVkIHRob3NlIHR5cGVkZWZzIHRvIGJ1aWxkLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KCmNvbW1pdCAxMWNjYzMzZmEyMWFjY2UxMDhmNmI0YTY5MzZlMzI3MWFmOTA0YzY0CkF1dGhvcjogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgpEYXRlOglXZWQgSnVsIDkgMDg6MTc6MTUgMjAwOCArMDIwMAoKICAgIE1hbnkgc3BlbGxpbmcgZml4ZXMgaW4gUkVBRE1FLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KCmNvbW1pdCBkYmFiMDY5MWQyNTMzNTYwZjdlOTFiOTJhZTg0NDA0NmE5YWQxZGYzCkF1dGhvcjogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgpEYXRlOglXZWQgSnVsIDkgMDg6MTc6MDYgMjAwOCArMDIwMAoKICAgIE1pbm9yIHNwZWxsaW5nIGZpeCBpbiBjb21tZW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KCmNvbW1pdCA4OTEzNGVhMWY2NzIwOGZkMzE2MGJkYmIwYjllYWFiNGVhYjk4NDg0CkF1dGhvcjogSHVnbyBWaWxsZW5ldXZlIDxodWdvLnZpbGxlbmV1dmVAbHlydGVjaC5jb20+CkRhdGU6CVR1ZSBKdWwgOCAxNDo1NDo1OCAyMDA4IC0wNDAwCgogICAgUm91bmQgdGhlIHNlcmlhbCBwb3J0IGNsb2NrIGRpdmlzb3IgdmFsdWUgcmV0dXJuZWQgYnkgY2FsY19kaXZpc29yKCkKCiAgICBSb3VuZCB0aGUgc2VyaWFsIHBvcnQgY2xvY2sgZGl2aXNvciB2YWx1ZSByZXR1cm5lZCBieQogICAgY2FsY19kaXZpc29yKCkuCgogICAgU2lnbmVkLW9mZi1ieTogSHVnbyBWaWxsZW5ldXZlIDxodWdvLnZpbGxlbmV1dmVAbHlydGVjaC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb2huIFJvYmVydHMgPGpvaG4ucm9iZXJ0c0Bwd2F2LmNvbT4KCmNvbW1pdCA5ZDJlMzk0N2IyOTQ0ZTViYjg1YjQzMzU1MzNmOGM5M2M1ODQ0NWZlCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgOSAxNzo0Nzo1MiAyMDA4IC0wNTAwCgogICAgTkFORDogaWZkZWYtcHJvdGVjdCBtb3N0IG9mIG5hbmQuaCB3aGVuIHVzaW5nIGxlZ2FjeSBOQU5ELgoKICAgIFNvbWUgbWFjcm9zIHN1Y2ggYXMgTkFORF9DVExfU0VUQUxFIGNvbmZsaWN0IGJldHdlZW4gY3VycmVudCBhbmQgbGVnYWN5CiAgICBOQU5ELCBiZWluZyBkZWZpbmVkIGJ5IHRoZSBzdWJzeXN0ZW0gaW4gdGhlIGZvcm1lciBjYXNlIGFuZCB0aGUgYm9hcmQKICAgIGNvbmZpZyBmaWxlIGluIHRoZSBsYXR0ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmIxZmE5ZDM4M2NiYmI3ZDM0N2MxNTgzYmQ2Y2E0ZTE4MWJhOGU5ZQpBdXRob3I6IEh1Z28gVmlsbGVuZXV2ZSA8aHVnby52aWxsZW5ldXZlQGx5cnRlY2guY29tPgpEYXRlOglUdWUgSnVsIDggMTE6MDI6MDUgMjAwOCAtMDQwMAoKICAgIEFSTTogRml4IGZvciB3cm9uZyBwYXRjaCB2ZXJzaW9uIGFwcGxpZWQgZm9yIEx5cnRlY2ggU0ZGLVNEUiBib2FyZCAoQVJNOTI2RUpTKQoKICAgIEFSTTogRml4IGZvciBpbmNvcnJlY3QgdmVyc2lvbiBvZiBwYXRjaCBhcHBsaWVkIHdoZW4KICAgIGFkZGluZyBzdXBwb3J0IGZvciB0aGUgTHlydGVjaCBTRkYtU0RSIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEh1Z28gVmlsbGVuZXV2ZSA8aHVnby52aWxsZW5ldXZlQGx5cnRlY2guY29tPgogICAgU2lnbmVkLW9mZi1ieTogUGhpbGlwIEJhbGlzdGVyLCBPcGVuU0RSIDxwaGlsaXBAb3BlbnNkci5jb20+Cgpjb21taXQgNDcwNDJiMzYzZWU1MDIyYjgxODBjNjVkM2Y0NTU4ZTc5NzJjNzljZApBdXRob3I6IEt5dW5nbWluIFBhcmsgPGttcGFya0BpbmZyYWRlYWQub3JnPgpEYXRlOglUdWUgSnVsIDggMDk6MDg6NDAgMjAwOCArMDkwMAoKICAgIFJlbW92ZSB1c2VsZXNzIHByaW50IG1lc3NhZ2UgYXQgYXBvbGxvbgoKICAgIFJlbW92ZSB1c2VsZXNzIHByaW50IG1lc3NhZ2UgYXQgYXBvbGxvbgoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgOTg4NzRmZjMyOWQ0YTViMzJjNDY3YjQzZjZlOTY2ZTFhYTY4NDc5ZgpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA3IDE0OjI0OjM5IDIwMDggLTA1MDAKCiAgICBGaXggTE1CIHR5cGUgaXNzdWVzCgogICAgVGhlIExNQiBjb2RlIG5vdyB1c2VzIHBoeXNfYWRkcl90IGFuZCBwaHlzX3NpemVfdC4JQWxzbywgdGhlcmUgd2VyZSBhIGNvdXBsZQogICAgb2YgY2FzdGluZyBwcm9ibGVtcyBpbiB0aGUgYm9vdG0gY29kZSB0aGF0IGNhbGxlZCB0aGUgTE1CIGZ1bmN0aW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGE4NjkzYTkxYjhlZWY3NWFkZThkZTUwYTFiMmNlMDM1YmM1ZmI1NApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBKdWwgNyAwOTozOTowNiAyMDA4IC0wNTAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzCgogICAgZ2NjLTQuMy54IGdlbmVyYXRlcyB0aGUgZm9sbG93aW5nOgoKICAgIGJvb3RtLmM6IEluIGZ1bmN0aW9uICdkb19ib290bV9saW51eCc6CiAgICBib290bS5jOjIwODogd2FybmluZzogY2FzdCBmcm9tIHBvaW50ZXIgdG8gaW50ZWdlciBvZiBkaWZmZXJlbnQgc2l6ZQogICAgYm9vdG0uYzoyMTU6IHdhcm5pbmc6IGNhc3QgZnJvbSBwb2ludGVyIHRvIGludGVnZXIgb2YgZGlmZmVyZW50IHNpemUKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDViYjEyZGJkN2FlMDMxODliNmMxM2Q4NzM3YjVhMWIzN2MzZGY2OTgKQXV0aG9yOiBIYXJhbGQgV2VsdGUgPGxhZm9yZ2VAZ251bW9ua3Mub3JnPgpEYXRlOglNb24gSnVsIDcgMTU6NDA6MzkgMjAwOCArMDgwMAoKICAgIFJlbW92ZSBjb2RlIGR1cGxpY2F0aW9uIGZvciBzZXR0aW5nIHRoZSBkZWZhdWx0IGVudmlyb25tZW50CgogICAgY29tbW9uL2Vudl9jb21tb24uYyAoZGVmYXVsdF9lbnYpOiBuZXcgZnVuY3Rpb24gdGhhdCByZXNldHMgdGhlIGVudmlyb25tZW50IHRvCgkJICAgIHRoZSBkZWZhdWx0IHZhbHVlCiAgICBjb21tb24vZW52X2NvbW1vbi5jIChlbnZfcmVsb2NhdGUpOiB1c2UgZGVmYXVsdF9lbnYgaW5zdGVhZCBvZiBvd24gY29weQogICAgY29tbW9uL2Vudl9uYW5kLmMgKGVudl9yZWxvY2F0ZV9zcGVjKTogdXNlIGRlZmF1bHRfZW52IGluc3RlYWQgb2Ygb3duIGNvcHkKICAgIGluY2x1ZGUvZW52aXJvbm1lbnQuaDogYWRkZWQgZGVmYXVsdF9lbnYgcHJvdG90eXBlCgogICAgU2lnbmVkLW9mZi1ieTogV2VybmVyIEFsbWVzYmVyZ2VyIDx3ZXJuZXJAb3Blbm1va28ub3JnPgogICAgU2lnbmVkLW9mZi1ieTogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQG9wZW5tb2tvLm9yZz4KCmNvbW1pdCA5OWMyYjQzNGQzNzg2M2RmNWRkYTUyMDdhNTM3NjBjNjUwNmZjMmJlCkF1dGhvcjogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgpEYXRlOglTdW4gSnVuIDIyIDE2OjEzOjQ2IDIwMDggKzAyMDAKCiAgICBOQU5EOiBGaXggd2FybmluZyBkdWUgdG8gbWlzc2luZyBlbnZfcHRyIGNhc3RzIHRvIHVfY2hhciAqIGluIGVudl9uYW5kLmMuCgogICAgVGhlIHdyaXRlZW52KCkgYW5kIHJlYWRlbnYoKSBjYWxscyBpbnRyb2R1Y2VkIGJ5IHRoZSByZWNlbnRseSBhZGRlZCBiYWQgYmxvY2sKICAgIG1hbmFnZW1lbnQgZm9yIGVudmlyb25tZW50IHZhcmlhYmxlcyB3ZXJlIG1pc3NpbmcgY2FzdHMgdGhlcmVmb3JlIHByb2R1Y2luZwogICAgY29tcGlsZSB0aW1lIHdhcm5pbmdzLgogICAgV2hpbGUgYXQgaXQgZml4aW5nIHNvbWUgdHlwbyBpbiBhIGNvbW1lbnQgYW5kIGluZGVudGF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDMxNjdjNTM4NmVhMWM5OGI2MzhiZTVkODc2M2VmNmQ1OTM4ZWYxYmQKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1biAyMCAxMjozODo1NyAyMDA4IC0wNTAwCgogICAgTkFORDogUmVuYW1lIERFQlVHIHRvIE1URERFQlVHIHRvIGF2b2lkIG5hbWVzcGFjZSBwb2xsdXRpb24uCgogICAgVGhpcyBpcyBwYXJ0aWN1bGFybHkgcHJvYmxlbWF0aWMgbm93IHRoYXQgbm9uLU5BTkQtc3BlY2lmaWMgY29kZSBpcwogICAgaW5jbHVkaW5nIDxuYW5kLmg+LCBhbmQgdGh1cyBhbGwgZGVidWdnaW5nIGNvZGUgaXMgYmVpbmcgY29tcGlsZWQKICAgIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCB3YXMgcmVxdWVzdGVkLCBhcyByZXBvcnRlZCBieSBTY290dCBNY051dHQKICAgIDxzbWNudXR0QHBzeWVudC5jb20+LgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGMzYmYxYWQ3YmFhMWIwZGQ5ODlkZWRjMjYwYjcwOThiNjA4OWFlMDUKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBKdW4gMTIgMTk6Mjc6NTggMjAwOCArMDIwMAoKICAgIG1tYzogTW92ZSBhdG1lbF9tY2kgZHJpdmVyIGludG8gZHJpdmVycy9tbWMKCiAgICBUaGlzIG1ha2VzIGl0IGVhc2llciB0byB1c2UgdGhlIGRyaXZlciBvbiBvdGhlciBwbGF0Zm9ybXMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgogICAgQWNrZWQtYnk6IEplYW4tQ2hyaXRvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBkMmQ1NGVhNDQ5NjM5ZjNkMWE2MDA3ZTMzM2FiOWZjYzYwOWExOGYwCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgSnVuIDEyIDE5OjI3OjU3IDIwMDggKzAyMDAKCiAgICBhdnIzMjogVXNlIENPTkZJR19BVE1FTF9NQ0kgdG8gc2VsZWN0IHRoZSBhdG1lbF9tY2kgZHJpdmVyCgogICAgQWZ0ZXIgd2UgbW92ZSB0aGUgYXRtZWxfbWNpIGRyaXZlciBpbnRvIGRyaXZlcnMvbW1jLCB3ZSBjYW4ndCBzZWxlY3QKICAgIGl0IHdpdGggQ09ORklHX01NQyBhbnltb3JlLiBJbnRyb2R1Y2UgYSBuZXcgc3ltYm9sIHNwZWNpZmljYWxseSBmb3IKICAgIHRoaXMgZHJpdmVyIHNvIHRoYXQgdGhlcmUncyBubyBhbWJpZ3VpdHkuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgogICAgQWNrZWQtYnk6IEplYW4tQ2hyaXRvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA1Y2UxMzA1MWE0OGM2MmJkYTk3MjNkZjNiNDc3OGM0OTJmYjQ3ZjM2CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgSnVuIDEyIDE5OjI3OjU2IDIwMDggKzAyMDAKCiAgICBDcmVhdGUgZHJpdmVycy9tbWMgc3ViZGlyZWN0b3J5CgogICAgSW4gb3JkZXIgdG8gY29uc29saWRhdGUgbW9yZSBvZiB0aGUgdmFyaW91cyBNTUMgZHJpdmVycyBhcm91bmQgdGhlCiAgICB0cmVlLCB3ZSBtdXN0IGZpcnN0IGhhdmUgYSBjb21tb24gcGxhY2UgdG8gcHV0IHRoZW0uCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgogICAgQWNrZWQtYnk6IEplYW4tQ2hyaXRvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBiNTAyNjExYjUxZjAyNzE4YzJkMTExN2Q0OTgxZGFiY2ViNWFmNmRlCkF1dGhvcjogSm9ha2ltIFRqZXJubHVuZCA8am9ha2ltLnRqZXJubHVuZEB0cmFuc21vZGUuc2U+CkRhdGU6CVN1biBKdWwgNiAxMjozMDowOSAyMDA4ICswMjAwCgogICAgQ2hhbmdlIGVudl9nZXRfY2hhciBmcm9tIGEgZ2xvYmFsIGZ1bmN0aW9uIHB0ciB0byBhIGZ1bmN0aW9uCgogICAgVGhpcyBhdm9pZHMgYW4gZWFybHkgZ2xvYmFsIGRhdGEgcmVmZXJlbmNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvYWtpbSBUamVybmx1bmQgPEpvYWtpbS5UamVybmx1bmRAdHJhbnNtb2RlLnNlPgoKY29tbWl0IDI3MjY5NDE3YWRlNDMyMTg5YjIzNGQ5ZmJhYzk4YjU0ZTM3Yjk3OGMKQXV0aG9yOiBNYXR2ZWpjaGlrb3YgSWx5YSA8bWF0dmVqY2hpa292QGdtYWlsLmNvbT4KRGF0ZToJU3VuIEp1bCA2IDEzOjU3OjU4IDIwMDggKzA0MDAKCiAgICBTb21lIGNvcHktbi1wYXN0ZSBmaXhlcyBpbiBwcmludGYgdXNhZ2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR2ZWpjaGlrb3YgSWx5YSA8bWF0dmVqY2hpa292QGdtYWlsLmNvbT4KCmNvbW1pdCAwZTY5ODliOWZhZjE1ODhlODcyMzUzNTUzOWU4OGEwZGYzYzcxMzU2CkF1dGhvcjogTWF0dmVqY2hpa292IElseWEgPG1hdHZlamNoaWtvdkBnbWFpbC5jb20+CkRhdGU6CVN1biBKdWwgNiAxMzo1NzowMCAyMDA4ICswNDAwCgogICAgRkRUIG1lbW9yeSBhbmQgcGNpIG5vZGUgZml4ZXMgZm9yIE1QQzgyNjBBRFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR2ZWpjaGlrb3YgSWx5YSA8bWF0dmVqY2hpa292QGdtYWlsLmNvbT4KCmNvbW1pdCBkYzRiMGIzOGQ0YWFkZjA4ODI2ZjZjMzEyNzBmMWVlY2QyNzk2NGZkCkF1dGhvcjogQW5kcmV3IEtsb3NzbmVyIDxhbmRyZXdAY2VzYS5vcGJ1Lnhlcm94LmNvbT4KRGF0ZToJTW9uIEp1bCA3IDA2OjQxOjE0IDIwMDggLTA3MDAKCiAgICBGaXggcHJpbnRmIGVycm9ycy4KCiAgICBUaGUgY29tcGlsZXIgd2lsbCBoZWxwIGZpbmQgbWlzbWF0Y2hlcyBiZXR3ZWVuIHByaW50ZiBmb3JtYXRzIGFuZAogICAgYXJndW1lbnRzIGlmIHlvdSBsZXQgaXQuICBUaGlzIHBhdGNoIGFkZHMgdGhlIG5lY2Vzc2FyeSBhdHRyaWJ1dGVzIHRvCiAgICBkZWNsYXJhdGlvbnMgaW4gaW5jbHVkZS9jb21tb24uaCwgdGhlbiBiZWdpbnMgdG8gY29ycmVjdCB0aGUgcmVzdWx0aW5nCiAgICBjb21waWxlciB3YXJuaW5ncy4JU29tZSBvZiB0aGVzZSB3ZXJlIGJ1Z3MsIGUuZy4sICIkZCIgaW5zdGVhZCBvZgogICAgIiVkIiBhbmQgaW5jb3JyZWN0IGFyZ3VtZW50cy4gIE90aGVycyB3ZXJlIGp1c3QgYW5ub3lpbmcsIGxpa2UKICAgIGludC1sb25nIG1pc21hdGNoZXMgb24gYSBzeXN0ZW0gd2hlcmUgYm90aCBhcmUgMzIgYml0cy4gIEl0J3Mgd29ydGgKICAgIGZpeGluZyB0aGUgYW5ub3lpbmcgZXJyb3JzIHRvIGNhdGNoIHRoZSByZWFsIG9uZXMuCgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmV3IEtsb3NzbmVyIDxhbmRyZXdAY2VzYS5vcGJ1Lnhlcm94LmNvbT4KCmNvbW1pdCA0MTdmYWYyODViMjUyN2FjYjJkZTI0YzVjZDNlMjYyMWQzODU0MDhjCkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgOSAxMTowOTo0MSAyMDA4IC0wNTAwCgogICAgQWxsb3cgcHJpbnRfc2l6ZSB0byBwcmludCBpbiBHQgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU3YzM3NDUyOWM4NzUyNWM5YWE0NjNlMDU1N2MyODc4ODdhZTRlOWUKQXV0aG9yOiBKYXNvbiBNY011bGxhbiA8bWNtdWxsYW5AbmV0YXBwLmNvbT4KRGF0ZToJU3VuIEp1biA4IDIzOjU2OjAwIDIwMDggLTA0MDAKCiAgICBtaXBzOiBXaGVuIGJvb3RpbmcgTGludXggaW1hZ2VzLCBhZGQgJ2V0aGFkZHInIGFuZCAnZXRoMWFkZHInIHRvIHRoZSBlbnZpcm9ubWVudAoKICAgIEFkZCAnZXRoYWRkcicgYW5kICdldGgxYWRkcicgdG8gdGhlIExpbnV4IGtlcm5lbCBlbnZpcm9ubWVudCBpZgogICAgdGhleSBhcmUgc2V0IGluIHRoZSBVLUJvb3QgZW52aXJvbm1lbnQuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gTWNNdWxsYW4gPG1jbXVsbGFuQG5ldGFwcC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDAxOTJkN2Q1NmU5MzIwODE5ZGVhMjYyZjQ5Nzg5YWUxOGZkZDJjNzIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKdWwgOCAxMjo1NzoxNCAyMDA4ICswMjAwCgogICAgamVkZWNfZmxhc2g6IEZpeCBBTTI5REw4MDBCQiBkZXZpY2UgSUQKCiAgICBBcyBwb2ludGVkIG91dCBieSBKZXJyeSBIaWNrcywgdGhpcyBwYXRjaCBjb3JyZWN0cyB0aGUgZGV2aWNlIElEIG9mCiAgICB0aGUgU3BhbnNpb24gQU0yOURMODAwQkIgTk9SIGRldmljZS4gVmVyaWZpZWQgYWdhaW5zdCBsYXRlc3QgU3BhbnNpb24KICAgIGRhdGFzaGVldCAocmV2IEM0IGZyb20gRGV6ZW1iZXIgMjAwNikuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDY4OWMxYjMwY2FhY2JhM2ZiY2EwYjE4MTNmYWNiM2FiNzBiNmNkNjMKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CU1vbiBKdWwgNyAxMToyMjozNyAyMDA4ICswOTAwCgogICAgc2g6IEZpeCBjb21waWxlIGVycm9yIHNoNzc2M3JkcCBib2FyZAoKICAgIERpc2FibGUgU0ggZXRoZXIgZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA5ZTIzZmUwNTYwYjg0ZTMyNGRjNWYwZmY4ODEzZGFiMmFhMzRmMDc0CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglUdWUgSnVsIDggMTI6MDM6MjQgMjAwOCArMDkwMAoKICAgIHNoOiBGaXggU0gtYm9hcmRzIGNvbXBpbGUgZXJyb3IKCiAgICBCeSBDbGVhbnVwIG91dC1vci10cmVlIGJ1aWxkaW5nIGZvciBzb21lIGJvYXJkcyAoLmRlcGVuZCkKICAgIChjb21taXQ6YzhhM2IxMDlmMDdmMDIzNDJkMDk3YjMwOTA4OTY1ZjcyNjFkOWYxNSkKICAgIGJlY2F1c2UgZmlsc2Ugd2FyZSBjaGFuZ2VkLCBzb21lIFNILWJvYXJkcyBoYXZlIGNvbXBpbGUgZXJyb3IuCiAgICBJIHJldmlzZWQgdGhpcyBwcm9ibGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAzNDczYWI3MzcyODJiMDhhZDYxODQxZmNiYjE0YzRkMjY0YTkzYThlCkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1heSAxMyAxMTo1MDozNiAyMDA4ICswODAwCgogICAgRmVlZCB0aGUgd2F0Y2hkb2cgaW4gdS1ib290IGZvciA4NjEwIGJvYXJkLgoKICAgIFRoZSB3YXRjaGRvZyBvbiA4NjEwIGJvYXJkIGlzIGVuYWJsZWQgYnkgc2V0dGluZyBzd1s2XQogICAgdG8gb24uIE9uY2UgZW5hYmxlZCwgdGhlIHdhdGNoZG9nIGNhbiBub3QgYmUgZGlzYWJsZWQKICAgIGJ5IHNvZnR3YXJlLiBTbyBmZWVkIHRoZSBkb2cgaW4gdS1ib290IGlzIG5lY2Vzc2FyeSBmb3IKICAgIG5vcm1hbCBvcGVyYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2MzY3Njg0MWNhMmQ2MDNiMTM3NjVmM2Y3YjcyZmYxYTYxYzIzZjkwCkF1dGhvcjogSHVnbyBWaWxsZW5ldXZlIDxodWdvLnZpbGxlbmV1dmVAbHlydGVjaC5jb20+CkRhdGU6CVdlZCBKdW4gMTggMTI6MTA6MzMgMjAwOCAtMDQwMAoKICAgIFJlbW92ZSBkdXBsaWNhdGUgY29kZSBpbiBjcHUvYXJtOTI2ZWpzL2RhdmluY2kvbHh0OTcyLmMuCgogICAgUmVtb3ZlIGR1cGxpY2F0ZSBjb2RlIGluIGNwdS9hcm05MjZlanMvZGF2aW5jaS9seHQ5NzIuYy4KCiAgICBSZW1vdmUgZHVwbGljYXRlIGNvZGUgaW4gYSBpZi9lbHNlIGJsb2NrIGluCiAgICBjcHUvYXJtOTI2ZWpzL2RhdmluY2kvbHh0OTcyLmMuCiAgICBGaXhlZCBzdHlsZSBpc3N1ZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSHVnbyBWaWxsZW5ldXZlIDxodWdvLnZpbGxlbmV1dmVAbHlydGVjaC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGZlYzYxNDMxYTAwM2Y1Nzc4YmFmYTI2MjQwNzNhNTcxYWY4YmVjOWYKQXV0aG9yOiBIdWdvIFZpbGxlbmV1dmUgPGh1Z28udmlsbGVuZXV2ZUBseXJ0ZWNoLmNvbT4KRGF0ZToJV2VkIEp1biAxOCAxMjoxMDozMSAyMDA4IC0wNDAwCgogICAgUmVtb3ZlIGR1cGxpY2F0ZSBkZWZpbml0aW9ucyBpbiBpbmNsdWRlL2x4dDk3MWEuaC4KCiAgICBSZW1vdmUgZHVwbGljYXRlIGRlZmluaXRpb25zIGluIGluY2x1ZGUvbHh0OTcxYS5oLgoKICAgIFJlbW92ZSBkdXBsaWNhdGUgcmVnaXN0ZXJzIGFuZCBiaXRzIGRlZmluaXRpb25zIGluCiAgICBpbmNsdWRlL2x4dDk3MWEuaCBmb3Igc3RhbmRhcmQgTUlJIHJlZ2lzdGVycywgYW5kCiAgICB1c2UgdmFsdWVzIGluIGluY2x1ZGUvbWlpcGh5LmggaW5zdGVhZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIdWdvIFZpbGxlbmV1dmUgPGh1Z28udmlsbGVuZXV2ZUBseXJ0ZWNoLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgOTc1MWVlMDk5MGY0Njc5NDFkYTBiMDk1YTRlOTk1Zjg2MzY3MmQ3YQpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJV2VkIEp1biAxMSAyMTowNTowMCAyMDA4ICswOTAwCgogICAgbmV0OiBzaDogUmVuZXNhcyBTSDc3NjMgRXRoZXJuZXQgZGV2aWNlIHN1cHBvcnQKCiAgICBSZW5lc2FzIFNINzc2MyBoYXMgMiBjaGFubmVsIEV0aGVybmV0IGRldmljZS4KICAgIFRoaXMgaXMgMTAvMTAwLzEwMDAgQmFzZSBzdXBwb3J0LgogICAgQnV0IHRoaXMgcGF0Y2ggY2hlY2sgMTAvMTAwIEJhc2Ugb25seS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDg3M2Q5N2FhYmMwYjFjODgyMmVkMWQ4N2U4YzVjOGFlMGE3ZTRhZTkKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVR1ZSBKdW4gMTcgMTY6Mjg6MDUgMjAwOCArMDkwMAoKICAgIHNoOiBVcGRhdGUgUmVuZXNhcyBSMkRQbHVzIGJvYXJkCgogICAgTmV3IE5PUiBGbGFzaCBib2FyZCBzdXBwb3J0IGFuZCByZW1vdmUgb2xkIHR5cGUgZmxhc2ggYm9hcmQgY29uZmlnLgogICAgQW5kIFJlbW92ZSBuZXR3b3JrIHNldHRpbmcgZnJvbSBjb25maWcgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgZWMzOWQ0NzlkMjAwM2YxNWU4NmUyM2ViYzRlMDJhMWM5YTNhMTgxYwpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJVHVlIEp1biAxNyAxNjoyODowMSAyMDA4ICswOTAwCgogICAgc2g6IFVwZGF0ZSBSZW5lc2FzIFI3NzgwTVAgYm9hcmQKCiAgICBOZXcgTk9SIEZsYXNoIGJvYXJkIHN1cHBvcnQgYW5kIHJlbW92ZSBuZXR3b3JrIHNldHRpbmcgZnJvbSBjb25maWcgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgYzAwMWNkNjA0ZTlmMTMzNzQzZWZmYmRkYjFjMjE1YjQ4ZTc2MWM1YQpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJVHVlIEp1biAxNyAxNjoyNzo1NiAyMDA4ICswOTAwCgogICAgc2g6IFVwZGF0ZSBSZW5lc2FzIE1pZ28tUiBib2FyZAoKICAgIFJlbW92ZSBuZXR3b3JrIHNldHRpbmcgZnJvbSBjb25maWcgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgZjk1OTllY2E3Y2I1ZWJlNDBlNTMwNWM4MDA2ZGNlZDZlY2M1Y2Q5ZQpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJVHVlIEp1biAxNyAxNjoyNzo1MiAyMDA4ICswOTAwCgogICAgc2g6IFVwZGF0ZSBIaXRhY2hpIE1TNzcyMlNFIGJvYXJkCgogICAgUmVtb3ZlIG5ldHdvcmsgc2V0dGluZyBmcm9tIGNvbmZpZyBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAyNjIwOWU0OGU4NzkxNjcwYzkzMTA4MDI5YTVjMzFhMzAwMTZjNmRmCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgpEYXRlOglUdWUgSnVuIDE3IDE2OjI3OjQ4IDIwMDggKzA5MDAKCiAgICBzaDogQ2xlYW51cCBzb3VyY2UgY29kZSBvZiBTSDc3NjNSRFAKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNWNkNWIyYzk2ZWYwMDI1NzYyOTMxMzQ5ZDM1MDI4N2FlYzAzYWI0NwpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJVHVlIEp1biAxNyAxNjoyNzo0NCAyMDA4ICswOTAwCgogICAgc2g6IENsZWFudXAgc291cmNlIGNvZGUgb2YgUjJEUGx1cwoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA0ZWM3ZTkxNWNmYWEzMWIzOTI3NTVkZDJjODIzMWU2NDczNmQyZWE4CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgpEYXRlOglUdWUgSnVuIDE3IDE2OjI3OjQxIDIwMDggKzA5MDAKCiAgICBzaDogQ2xlYW51cCBzb3VyY2UgY29kZSBvZiBSNzc4ME1QCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDA5NTVlZjM0YzA0NTRhZTJlZTU5YTc4NjU3YTBmMDFmYjNlZjE2ZDYKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVR1ZSBKdW4gMTcgMTY6Mjc6MzggMjAwOCArMDkwMAoKICAgIHNoOiBDbGVhbnVwIHNvdXJjZSBjb2RlIG9mIE1TNzcyMlNFCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDFkN2IzMWQ5N2IzNGNjYjZmOWIyMGEyNDY1ODY0OTk4YjBiZjI2OTEKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVR1ZSBKdW4gMTcgMTY6Mjc6MzQgMjAwOCArMDkwMAoKICAgIHNoOiBDbGVhbnVwIHNvdXJjZSBjb2RlIG9mIE1TNzcyMFNFCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDNhYjQ4MjdjYmU0MDk0ODhlYmVhMWEyZWU1MDk0NzgzZjI2NzIyMTQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gSnVsIDcgMDA6NDU6MDMgMjAwOCArMDIwMAoKICAgIFNIOiBmaXggb3V0IG9mIHRyZWUgYnVpbGRpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDkwNDdiZmExZTczN2Q3ODdiZTQ2MDM4N2RkNmY0NTczN2VlY2ViMTAKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3Uubm9idWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVRodSBKdWwgMyAyMzoxNjowNiAyMDA4ICswOTAwCgogICAgbmV0OiBzbWM5MTF4OiBGaXggdHlwbwoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KCmNvbW1pdCA1ZWQ1NDZmZGQwY2E0NmExNjU2NjFjMjAwOWZhNzQzZDljOWZjZWNhCkF1dGhvcjogQW5kcmUgU2Nod2FyeiA8YW5kcmUuc2Nod2FyekBtYXRyaXgtdmlzaW9uLmRlPgpEYXRlOglXZWQgSnVsIDIgMTg6NTQ6MDggMjAwOCArMDIwMAoKICAgIHVwZGF0ZSBtdkJMLU03IGJvYXJkIGNvbmZpZwoKICAgIHVwZGF0ZSBtdkJMLU03IGNvbmZpZyBmaWxlIHRvIHVzZSBVQk9PVF9WRVJTSU9OIGFuZCBkZWZpbmUKICAgIENPTkZJR19ISUdIX0JBVFMuCgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmUgU2Nod2FyeiA8YW5kcmUuc2Nod2FyekBtYXRyaXgtdmlzaW9uLmRlPgoKY29tbWl0IDVjYWNjNWQwZWM1MjY3OGE1ZWI4M2VjZGE1YzNiY2IyMmViNDdmMzAKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CU1vbiBKdW4gMzAgMTc6NDU6MDEgMjAwOCArMDkwMAoKICAgIG5ldDogZml4IGNvbXBpbGUgcHJvYmxlbSBpbiBzbWM5MTF4IGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CiAgICBBY2tlZC1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA5ZmVhNjVhNmM0NjliMWI0NzRiMjc0NDZmZWI1ODczOGJhYmEyZDMxCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglUdWUgSnVuIDI0IDA5OjU0OjA5IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFJlbmFtZSBDT05GSUdfWElMSU5YX01MMzAwIHRvIENPTkZJR19YSUxJTlhfNDA1CgogICAgVGhpcyBjaGFuZ2UgaGVscHMgd2l0aCBiZXR0ZXIgaGFuZGxpbmcgd2l0aCBvdGhlcnMKICAgIFhpbGlueCBiYXNlZCBwbGF0Zm9ybS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNiYjYyODk1NjlhZTRmYzZlMmQ2NzY1MjhlNDZmZmNjNzJkNzQzZDAKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVR1ZSBKdW4gMTcgMTM6MDc6MTEgMjAwOCArMDkwMAoKICAgIG5ldDogbmUyMDAwOiBNb3ZlIGRldl9hZGRyIHZhcmlhYmxlIGZyb20gZ3JvYmFsIHRvIGxvY2FsLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZGQ3ZTVmYTVmODQ3MTg4Zjc4ZjYyZjJjNTJkZTZjYjNkZWYzZWNkYgpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJVHVlIEp1biAxNyAxMzowNzoxNSAyMDA4ICswOTAwCgogICAgbmV0OiBuZTIwMDA6IEZpeCBjb21waWxlIGVycm9yIG9mIE5FMjAwMAoKICAgIElmIGVuYWJsZSBERUJVRywgY2FuIG5vdCBjb21waWxlIG5lMjAwMCBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBkZDM1NDc5YTUwZjZjN2MzMWVhNDkxYzA3YzUyMDBjNmRmZDA2YTI0CkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJTW9uIEp1biAyMyAyMjo1NzoyNyAyMDA4IC0wNzAwCgogICAgQWRkIG1lY2hhbmlzbXMgZm9yIENQVSBhbmQgYm9hcmQtc3BlY2lmaWMgRXRoZXJuZXQgaW5pdGlhbGl6YXRpb24KCiAgICBUaGlzIHBhdGNoIGlzIHRoZSBmaXJzdCBzdGVwIGluIGNsZWFuaW5nIHVwIG5ldC9ldGguYywgYnkgbW92aW5nIEV0aGVybmV0CiAgICBpbml0aWFsaXphdGlvbiB0byBDUFUgb3IgYm9hcmQtc3BlY2lmaWMgY29kZS4gIEluaXRpYWwgaW1wbGVtZW50YXRpb24gaXMKICAgIG9ubHkgb24gdGhlIEZyZWVzY2FsZSBUU0VDIGNvbnRyb2xsZXIsIGJ1dCBvdGhlcnMgd2lsbCBiZSBhZGRlZCBzb29uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNzc1NGYyYmU1ZDE4MzVkMjYzYWFkMjFiNWE2Mjk1MjZmM2U2ODBiMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBKdWwgNiAwMToyMTo0NiAyMDA4ICswMjAwCgogICAgaW5jbHVkZS9zaGEyNTYuaDogZml4IGZpbGUgcGVybWlzc2lvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBkM2JjZGY4MzhlMjk5MWQ1ODU3MTMwOGZhNmUwNGNhMzM1YmMwNmU4CkF1dGhvcjogUGF0cmljZSBWaWxjaGV6IDxwYXRyaWNlLnZpbGNoZXpAYXRtZWwuY29tPgpEYXRlOglUdWUgTWF5IDI3IDExOjE1OjI5IDIwMDggKzAyMDAKCiAgICBbQVQ5MVNBTTldIEZpeCBOQU5EIEZMQVNIIHRpbWluZ3MKCiAgICBGaXggTkFORCBGTEFTSCB0aW1pbmdzIGZvciBhdDkxc2FtOXggZXZhbHVhdGlvbiBraXRzLgoKICAgIE5ldyB0aW1pbmdzIGFyZSBiYXNlZCBvbiBhcHBsaWNhdGlvbiBub3RlCiAgICAiTkFORCBGbGFzaCBTdXBwb3J0IG9uIEFUOTFTQU05IE1pY3JvY29udHJvbGxlcnMiIGF2YWlsYWJsZSBhdAogICAgaHR0cDovL2F0bWVsLmNvbS9keW4vcmVzb3VyY2VzL3Byb2RfZG9jdW1lbnRzL2RvYzYyNTUucGRmCgogICAgU2lnbmVkLW9mZi1ieTogUGF0cmljZSBWaWxjaGV6IDxwYXRpY2UudmlsY2hlekBhdG1lbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgQWNrZWQtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+Cgpjb21taXQgMTliZDY4ODQ4NDMyMmZlNjJkMWE2NmM4Mjk5ZGE2ZmY5ZTk2N2ZmOQpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVRodSBNYXkgMjIgMDA6MTU6NDAgMjAwOCArMDIwMAoKICAgIEZpeCBib290IGZyb20gTk9SIGR1ZSB0byBpbmNvcnJlY3QgcmVzZXQgZGVsYXkuCgogICAgQVQ5MSBSU1RDIHJlZ2lzdGVycyBhcmUgYmF0dGVyeS1iYWNrdXBlZCwgc28gdGhlaXIgdmFsdWVzCiAgICBhcmUgbm90IHJlc2V0IGFjcm9zcyBwb3dlciBjeWNsZXMuIE9uZSBvZiB0aG9zZSByZWdpc3RlcnMsCiAgICB0aGUgQVQ5MV9SU1RDX01SIHJlZ2lzdGVyLCBpcyBiZWluZyBtb2RpZmllZCBieSBVLUJvb3QsIGluCiAgICB0aGUgZXRoZXJuZXQgaW5pdGlhbGlzYXRpb24gcm91dGluZSwgdG8gZ2VuZXJhdGUgYSA1MDBtcwogICAgdXNlciByZXNldC4KCiAgICBVbmZvcnR1bmF0ZWx5LCB0aGlzIHZhbHVlIGlzIG5vdCBiZWluZyByZXN0b3JlZCBhZnRlcndhcmRzLAogICAgY2F1c2luZyBzdWJzZXF1ZW50IHJlc2V0cyB0byBhbHNvIGxhc3QgZm9yIDUwMG1zLgoKICAgIFRoaXMgbG9uZyByZXNldCBzZXF1ZW5jZSBjYXVzZXMgcHJvYmxlbXMgKGF0IGxlYXN0KSBpbiB0aGUKICAgIGJvb3Qgc2VxdWVuY2UgZnJvbSBOT1I6IGJ5IHRoZSB0aW1lIHRoZSBDUFUgdHJpZXMgdG8gbG9hZAogICAgYSBwcm9ncmFtIGZyb20gdGhlIE5PUiBmbGFzaCwgdGhlIGxhdHRlciBpcyBzdGlsbCBpbiByZXNldAogICAgYW5kIG5vdCB5ZXQgYXZhaWxhYmxlLgoKICAgIEFkZGl0aW9uYWx5LCB0aGlzIHBhdGNoIGZpeGVzIGEgYnVnIGluIHRoZSBvcmlnaW5hbCBjb2RlIHdoaWNoCiAgICBjYXVzZWQgdGhlIHJlc2V0IGRlbGF5IHRvIGxhc3QgZm9yIDJzIGluc3RlYWQgb2YgNTAwbXMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZjQ5MmRkNjM2ZmJiYWU1MjllMTc1MzM5OTViYzZlNTgxM2MwMDdmNgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBKdWwgNCAyMDoxMTo0OSAyMDA4ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNWU2ZTM1MGZjNDg5YWExOTQwMmYxZTc5MDM3ZGQ4YzBhNGJiZDczZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBKdWwgNCAyMDowNzozNSAyMDA4ICswMjAwCgogICAgQ0NNL1NDTSBib2FyZHM6IGZpeCBvdXQgb2YgdHJlZSBidWlsZGluZwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYWI0YzNhNDkwZGY5YTk2NDcxMTU1NmQyYTA1YjBjNzg3ZGI0NWZkZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgMyAyMzoyMjoyNyAyMDA4ICswMjAwCgogICAgU0NNIGJvYXJkOiBmaXggYnVpbGQgZXJyb3JzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYTU2NjQ2NmYxN2JhMGUyZDJiNmMyNTBlNzdkYTY3OGZiOTMyNDcwZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgMyAyMzowNjozNiAyMDA4ICswMjAwCgogICAgSUFEMjEwIGJvYXJkOiBmaXggYGAiQUxJR04iIHJlZGVmaW5lZCcnIHdhcm5pbmcuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBhZDc1NjMxNDc5N2MxNmZhNWRjYTIzZTExNWFhYjg4MTAxMWYxNjRmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEp1bCAzIDIzOjAwOjI0IDIwMDggKzAyMDAKCiAgICBDQ00gYm9hcmQ6IGZpeCBidWlsZCBlcnJvcnMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmMTZlZDUxNzAyY2I5ZmI2ZmEyZTAxOWJiYzBmY2QxNDY2YjU3YzNiCkF1dGhvcjogQW5kcmUgU2Nod2FyeiA8YW5kcmUuc2Nod2FyekBtYXRyaXgtdmlzaW9uLmRlPgpEYXRlOglXZWQgSnVsIDIgMTg6NTQ6MDggMjAwOCArMDIwMAoKICAgIHVwZGF0ZSBtdkJMLU03IGJvYXJkIGNvbmZpZwoKICAgIHVwZGF0ZSBtdkJMLU03IGNvbmZpZyBmaWxlIHRvIHVzZSBVQk9PVF9WRVJTSU9OLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJlIFNjaHdhcnogPGFuZHJlLnNjaHdhcnpAbWF0cml4LXZpc2lvbi5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2VkMjA5YzUwZTgwYzI1ZjEzYzA4MzA5OWIwNTA0NDA0OGQyMWY0ZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgMyAyMjozOToyMSAyMDA4ICswMjAwCgogICAgc2Fjc25nIGJvYXJkOiBmaXggd2FybmluZ3MgInN1Z2dlc3QgZXhwbGljaXQgYnJhY2VzIHRvIGF2b2lkIGFtYmlndW91cyAnZWxzZSciCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0ZmYxNzBhODE4MGE3OWRhNGNkYWFiMWIzMGQ1OGNkN2I2YmU1NjVlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEp1bCAzIDIyOjM0OjA4IDIwMDggKzAyMDAKCiAgICBDbGVhbnVwOiBmaXggImV4cGVjdGVkIHNwZWNpZmllci1xdWFsaWZpZXItbGlzdCBiZWZvcmUgJ3BoeXNfc2l6ZV90JyIgZXJyb3JzCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3MzBmMjk4NDg1OTg0YjAxMWI2ZWU4ZjRhY2I1MTFjYjQ1YTg0M2RkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEp1bCAzIDIyOjA0OjE3IDIwMDggKzAyMDAKCiAgICBsbWI6IGZpeCAiaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2xtYl9mcmVlJyIgd2FybmluZwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMzIyZWY1ZTI4ZDJkYzYyNTcxYWZjNjk5YjAwYWRkMjJhOGUwMDZlNApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKdWwgMiAyMzo1MzoyMyAyMDA4ICswMjAwCgogICAgQ2xlYW51cDogcmVtb3ZlIHJlZHVuZGFudCBkZWxldGluZyBvbiAqfiBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYzhhM2IxMDlmMDdmMDIzNDJkMDk3YjMwOTA4OTY1ZjcyNjFkOWYxNQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKdWwgMiAyMzo0OToxOCAyMDA4ICswMjAwCgogICAgQ2xlYW51cCBvdXQtb3ItdHJlZSBidWlsZGluZyBmb3Igc29tZSBib2FyZHMgKC5kZXBlbmQpCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBhMzBjYzVhMzQwZTdmOGY1Zjg1YTBlMDhlN2Y2YzQxMDZjZTExN2M0CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEp1bCAyIDIzOjM4OjUwIDIwMDggKzAyMDAKCiAgICBDbGVhbnVwOiBmaXggb3V0LW9mLXRyZWUgYnVpbGRpbmcgZm9yIHNvbWUgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0NjFmYTY4ZDIwODYxODExNDg3OTQ0ZDIyMjkxZGI1YTEzNDEwZTIwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEp1bCAyIDIzOjAwOjE0IDIwMDggKzAyMDAKCiAgICBDbGVhbnVwOiByZXBsYWNlIGhhcmQtd2lyZWQgJChBUikgJ2Nydicgc2V0dGluZ3MgYnkgJChBUkZMQUdTKQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNTk4MWViZDMyMDE3ZTA2MmIwOGFhNjc0N2NmNTkxMjc2ZjJkYjc3OQpBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDIwIDIyOjI2OjI0IDIwMDggKzAyMDAKCiAgICBmZHQ6IEZpeCB0eXBvIGluIHZhcmlhYmxlIG5hbWUuCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgYTdhNTk4MmNkMGYzNDgyZjg4MjI1YWY0ZGE3Nzk1YmM0ZjZjYjliYwpBdXRob3I6IEdhcnkgSmVubmVqb2huIDxnYXJ5akBkZW54LmRlPgpEYXRlOglUaHUgSnVuIDE5IDExOjExOjE5IDIwMDggKzAyMDAKCiAgICBBZGQgbG9nb3MgZm9yIFJSdmlzaW9uIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQGRlbnguZGU+Cgpjb21taXQgZWU0YWUzODM0MjE0MjIzN2NhODU5MTNmODhlZTU3MGMxZWI1Y2E3YwpBdXRob3I6IEVzYmVuIEhhYWJlbmRhbCA8RXNiZW5IYWFiZW5kYWxAZ21haWwuY29tPgpEYXRlOglXZWQgSnVuIDE4IDExOjAzOjU3IDIwMDggKzAyMDAKCiAgICBtcGM4MjYwOiBhZGQgZmR0X2ZpeHVwX2V0aGVybmV0IHN1cHBvcnQKCiAgICBBZGQgc3VwcG9ydCBmb3IgdXBkYXRpbmcgbWFjLWFkZHJlc3MgYW5kIGxvY2FsLW1hYy1hZGRyZXNzIGluIGZkdCBmb3IKICAgIGFsbCBNUEM4MjYwIHRhcmdldHMuCgogICAgU2lnbmVkLW9mZi1ieTogRXNiZW4gSGFhYmVuZGFsIDxlaGFAZG9yZWRldmVsb3BtZW50LmRrPgoKY29tbWl0IGY2YTY5NTU5ZDY0NDk4YTA0ZTFlMGIwODdhOWI5MjBlNTc3NWY4NjYKQXV0aG9yOiBTdGV2ZW4gQS4gRmFsY28gPHNmYWxjb0BoYXJyaXMuY29tPgpEYXRlOglUaHUgSnVuIDEyIDEzOjI0OjQyIDIwMDggLTA0MDAKCiAgICBjbWRfbnZlZGl0LmM6IGNsZWFuIHVwIHN5bnRheCBoaWdobGlnaHRpbmcKCiAgICBNeSB0ZXh0LWVkaXRvciAodmltKSBoYXMgYSBiaXQgb2YgdHJvdWJsZSBzeW50YXgtaGlnaGxpZ2h0aW5nIHRoZQogICAgY21kX252ZWRpdC5jIGZpbGUsIGJlY2F1c2UgaXQgYXBwYXJlbnRseSBkb2VzIG5vdCBwYXJzZSBDCiAgICBpZmRlZi9lbHNlL2VuZGlmLiBUaGUgZm9sbG93aW5nIHBhdGNoIGRvZXMgbm90IGNoYW5nZSB0aGUgYmVoYXZpb3Igb2YKICAgIHRoZSBjb2RlIGF0IGFsbCwgYnV0IGRvZXMgYWxsb3cgdGhlIGVkaXRvciB0byBwcm9wZXJseQogICAgc3ludGF4LWhpZ2hsaWdodCB0aGUgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGV2ZSBGYWxjbyA8c2ZhbGNvQGhhcnJpcy5jb20+Cgpjb21taXQgNzU2NzhjODA3YTYyNzJlY2M1NTQxZWIzMjg5OGM5Mzg4N2YwODQwMApBdXRob3I6IFN0ZXZlbiBBLiBGYWxjbyA8c2ZhbGNvQGhhcnJpcy5jb20+CkRhdGU6CVRodSBKdW4gMTIgMTM6MjI6MTIgMjAwOCAtMDQwMAoKICAgIE1ha2Ugc2V0ZW52KCkgcmV0dXJuIHN0YXR1cwoKICAgIEN1cnJlbnRseSwgdGhlIHNldGVudiBmdW5jdGlvbiBkb2VzIG5vdCByZXR1cm4gYW4gZXJyb3IgY29kZS4KICAgIFRoaXMgcGF0Y2ggYWxsb3dzIHRvIHRlc3QgZm9yIGVycm9ycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGV2ZSBGYWxjbyA8c2ZhbGNvQGhhcnJpcy5jb20+Cgpjb21taXQgNDkyOGU5N2M4NTMxMjgzY2E5YjM2OGI3YzI5YThhMTJlNzI2NTYyYQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBKdW4gMTEgMTA6MTQ6MDYgMjAwOCAtMDUwMAoKICAgIFBQQzogQWRkZWQgZmxzLCBmbHM2NCwgX19pbG9nMl91NjQsIGFuZCBmZnM2NCB0byBiaXRvcHMKCiAgICBmbHM2NCwgX19pbG9nMl91NjQsIGZmczY0IGFyZSB2YXJpYW50cyB0aGF0IHdvcmsgb24gYW4gdTY0LAogICAgYW5kIGZscyBpcyB1c2VkIHRvIGltcGxlbWVudCB0aGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgODMwMDJhNzdjYmRmMzgzMDE1Y2EzODRlZmY1ZmEzMTcyMmQ4ZTU3MQpBdXRob3I6IE1hZ251cyBMaWxqYSA8bGlsamEubWFnbnVzQGdtYWlsLmNvbT4KRGF0ZToJTW9uIEp1biA5IDIyOjU4OjQ4IDIwMDggKzAyMDAKCiAgICBpLk1YMzE6IENsZWFudXAgY29tbWVudHMgaW4gbG93bGV2ZWxfaW5pdC5TLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hZ251cyBMaWxqYSA8bGlsamEubWFnbnVzQGdtYWlsLmNvbT4KCmNvbW1pdCBmOGNjMzEyYmJlZTY5MjU3ZDc0MWRjOWY0MDYyZjRhMGY1YWRmNjA5CkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJU3VuIEp1biA4IDIzOjI4OjMzIDIwMDggLTA3MDAKCiAgICBNb3ZlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIG9mIE1QQzhYWFggU1BJIGRyaXZlciB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZDkyZWEyMWJhZmI2NzRlZTJiZjI3NDQ3OTcwYjA0Nzg0NWU3YjBhMgpBdXRob3I6IEp1ZXJnZW4gS2lsYiA8Si5LaWxiQGdteC5kZT4KRGF0ZToJU3VuIEp1biA4IDE3OjU5OjUzIDIwMDggKzAyMDAKCiAgICBpLk1YMzE6IGZpeGVkIENUUkwtQyBkZXRlY3Rpb24KCiAgICBUaGUgUmVnaXN0ZXIgVVJYRCBjb250YWlucyBzdGF0dXMgaW5mb3JtYXRpb24gaW4gYml0cyBbMTUuLjhdLgogICAgV2l0aCBzdGF0dXMgYml0IDE1IHNldCwgQ1RSTC1DIHdhcyByZXBvcnRlZCBhcyAweDgwMDMgaW5zdGVhZAogICAgb2YgMHgwMy4gVGhlcmVmb3JlIENUUkwtQyB3YXMgbm90IGRldGVjdGVkLgogICAgVG8gc29sdmUgdGhpcywgYml0cyBbMTUuLjhdIHdlcmUgbWFza2VkIG91dCBub3cuCgogICAgU2lnbmVkLW9mZi1ieTogSnVlcmdlbiBLaWxiIDxKLktpbGJAZ214LmRlPgogICAgQWNrZWQtYnk6IEZlbGl4IFJhZGVuc2t5IDxmZWxpeEBlbWJlZGRlZC1zb2wuY29tPgoKY29tbWl0IGRkMWM1NTIzZDZmNDRlODQyZTY5ZjJmY2I1MDc4OGM2MDYwZWFiODYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKdWwgMSAxNzowMzoxOSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggNDYwRVgvR1QgUENJZSBwb3J0IGluaXRpYWxpemF0aW9uCgogICAgVGhpcyBwYXRjaCBmaXhlcyBhIGJ1ZyB3aGVyZSB0aGUgNDYwRVgvR1QgUENJZSBVVExTRVQxIHJlZ2lzdGVyIHdhcwogICAgY29uZmlndXJlZCBpbmNvcnJlY3RseS4gVGhhbmtzIHRvIE9sZ2EgQnVjaG9uaW5hIGZyb20gQU1DQyBmb3IgcG9pbnRpbmcKICAgIHRoaXMgb3V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBiNTcxYWZkZTAyOTViMDA3YTQ1MDU1ZWU0OWY4ODIyYzc1M2E1NjUxCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IEp1biA3IDEyOjI5OjUyIDIwMDggKzAyMDAKCiAgICBhZGQgU0hBMjU2IHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogRnJhbmNlc2NvIEFsYmFuZXNlIDxGcmFuY2VzY28uQWxiYW5lc2VAc3dpc3Njb20uY29tPgoKY29tbWl0IDNiYWI3NmEyNmUwM2RmNGZmODEzNDJmY2MxNjM5M2NlMzdkOTc2NmIKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgSnVuIDYgMjM6MDc6NDAgMjAwOCArMDIwMAoKICAgIERlbGF5IEZJVCBmb3JtYXQgY2hlY2sgb24gc2VjdG9yIGJhc2VkIGRldmljZXMKCiAgICBHbG9iYWwgRklUIGltYWdlIG9wZXJhdGlvbnMgbGlrZSBmb3JtYXQgY2hlY2sgY2Fubm90IGJlIHBlcmZvcm1lZCBvbgogICAgYSBmaXJzdCBzZWN0b3IgZGF0YSwgZGVmZXIgdGhlbSB0byB0aGUgcG9pbnQgd2hlbiB3aG9sZSBGSVQgaW1hZ2Ugd2FzCiAgICB1cGxvYWRlZCB0byBhIHN5c3RlbSBSQU0uCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KICAgIFBhcnRpYWwgKCdjbWRfbmFuZCcgY2FzZSkgQWNrZWQtYnk6IEdyYW50IEVyaWNrc29uIDxnZXJpY2tzb25AbnVvdmF0aW9ucy5jb20+CiAgICBOQU5EIGFuZCBET0MgYml0cyBBY2tlZC1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTgxMDI2M2FmZWM1YWM1ZjM4ZjkyOTYzYmIzYjZkNzk5ZTQzMzFkMApBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biAzIDE3OjM4OjE5IDIwMDggKzA4MDAKCiAgICBzYXRhOiB3YWl0IGZvciBkZXZpY2UgdXBkYXRpbmcgc2lnbmF0dXJlIHRvIGhvc3QKCiAgICBUaGUgZHJpdmVyIG5lZWQgd2FpdCBmb3IgdGhlIGRldmljZSB1cGRhdGluZyBzaWduYXR1cmUgdG8gaG9zdC4KICAgIElmIHdlIGRvbid0IHdhaXQgZm9yIGl0LCB0aGUgZHJpdmVyIGNhbiBub3QgZGV0ZWN0IHRoZSBkZXZpY2UoZGlzaykKICAgIHdoZW4gdGhlIHN5c3RlbSBwb3dlcnMgdXAuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3NDVkOGEwZDNjZWE4MmU2ZDE3NTNlMTRhZmI0NTg4YzM0NzYxYjE1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgSnVuIDI4IDE0OjU2OjE3IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeCA0NjBFWCBlcnJhdGEgd2l0aCBDUFUgbG9ja3VwIHVwb24gaGlnaCBBSEIgdHJhZmZpYwoKICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBhIGZpeCBwcm92aWRlZCBieSBBTUNDIHNvIHRoYXQgdGhlIGxvY2t1cCB1cG9uCiAgICBzaW11bHRhbmlvdXMgdHJhZmZpYyBvbiBBSEIgVVNCIE9URywgVVNCIDIuMCBhbmQgU0FUQSBkb2Vzbid0IG9jY3VyCiAgICBhbnltb3JlOgoKICAgIFNldCBTRFIwX0FIQl9DRkdbQTJQX0lOQ1I0XSAoYml0IDI0KSBhbmQgY2xlYXIgU0RSMF9BSEJfQ0ZHW0EyUF9QUk9UMl0KICAgIChiaXQgMjUpIGZvciBhIG5ldyA0NjBFWCBlcnJhdGEgcmVnYXJkaW5nIGNvbmN1cnJlbnQgdXNlIG9mIEFIQiBVU0IgT1RHLAogICAgVVNCIDIuMCBob3N0IGFuZCBTQVRBLgoKICAgIFRoaXMgZXJyYXRhIGlzIG5vdCBvZmZpY2lhbGx5IGF2YWlsYWJsZSB5ZXQuIEknbGwgdXBkYXRlIHRoZSBjb21tZW50CiAgICB0byBhZGQgdGhlIGVycmF0YSBudW1iZXIgbGF0ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDhiNjE2ZWRiMTE4ZTM3ZDA1ZjY0MDEzODllYWVlMWM2MzZiMjI4MjgKQXV0aG9yOiBTdHVhcnQgV29vZCA8c3R1YXJ0Lndvb2RAbGFieHRlY2hub2xvZ2llcy5jb20+CkRhdGU6CU1vbiBKdW4gMiAxNjo0MjoxOSAyMDA4IC0wNDAwCgogICAgc2VyaWFsX3BsMDEwLmM6IGFkZCB3YXRjaGRvZyBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogU3R1YXJ0IFdvb2QgPHN0dWFydC53b29kQGxhYnh0ZWNobm9sb2dpZXMuY29tPgoKY29tbWl0IDg2ZDMyNzNlMmI3YmUzZmZmYjQ1ZTIwYzA4NTM1ZDZhZDNhZGVkNmIKQXV0aG9yOiBTdHVhcnQgV29vZCA8c3R1YXJ0Lndvb2RAbGFieHRlY2hub2xvZ2llcy5jb20+CkRhdGU6CU1vbiBKdW4gMiAxNjo0MDowOCAyMDA4IC0wNDAwCgogICAgamZmczJfMXBhc3MuYzogYWRkIHdhdGNoZG9nIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdHVhcnQgV29vZCA8c3R1YXJ0Lndvb2RAbGFieHRlY2hub2xvZ2llcy5jb20+Cgpjb21taXQgNTc0NGRkYzY2MzdmZWE0ZjdiOTExYTU0YTVmYTg2MGNiODFhNWQ4OQpBdXRob3I6IFNhc2NoYSBMYXVlIDxzYXNjaGEubGF1ZUBsaWViaGVyci5jb20+CkRhdGU6CUZyaSBNYXkgMzAgMDk6NDg6MTQgMjAwOCArMDIwMAoKICAgIENvbmZpZ3VyZSBEU1AgUE9TVDsgYWRkIHdhdGNoZG9nIHJlc2V0IHRvIGRpYWcgY29tbWFuZAoKICAgIFNpZ25lZC1vZmYtYnk6IFNhc2NoYSBMYXVlIDxzYXNjaGEubGF1ZUBsaWViaGVyci5jb20+Cgpjb21taXQgZjEzNTI2NTE3ODU5YmY2YjU3M2UyM2ZmNDcxOTllMTA3ZDEwMDliNQpBdXRob3I6IFRvciBLcmlsbCA8dG9yQGV4Y2l0by5jb20+CkRhdGU6CVRodSBNYXkgMjkgMTA6NDA6MTcgMjAwOCArMDIwMAoKICAgIEFkZCBzYXRhIHNpbDMxMTQgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFRvciBLcmlsbCA8dG9yQGV4Y2l0by5jb20+Cgpjb21taXQgZTA5M2EyNDc2MjgyMjgxMDBmNDA1YjZkN2Y2YjFiZmMxNjE0MTkzOApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBKdW4gMjggMjM6MzQ6MzcgMjAwOCArMDIwMAoKICAgIENvZGluZyBTdHlsZSBDbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAwMWRiMjMyZGQ3YTBjZWI4MTIwOGE5ZjI1NDU3MjBjODBlNWJmZDgzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IEp1biAyOCAyMzoxNjowMSAyMDA4ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYzdmODc5ZWMyYjM4OWM0ZjJiZjcyNmIyOTNiZDUxNmY0YzY5MmUwMwpBdXRob3I6IEh1Z28gVmlsbGVuZXV2ZSA8aHVnby52aWxsZW5ldXZlQGx5cnRlY2guY29tPgpEYXRlOglXZWQgTWF5IDIxIDEzOjU4OjQxIDIwMDggLTA0MDAKCiAgICBBUk06IEFkZCBzdXBwb3J0IGZvciBMeXJ0ZWNoIFNGRi1TRFIgYm9hcmQgKEFSTTkyNkVKUykKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIEx5cnRlY2ggU0ZGLVNEUiBib2FyZCwKICAgIGJhc2VkIG9uIHRoZSBUSSBEYVZpbmNpIGFyY2hpdGVjdHVyZSAoQVJNOTI2RUpTKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIdWdvIFZpbGxlbmV1dmUgPGh1Z28udmlsbGVuZXV2ZUBseXJ0ZWNoLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFBoaWxpcCBCYWxpc3RlciA8cGhpbGlwQGJhbGlzdGVyLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMzQxMTg4YjljY2FhOGQ0NDYyZDc3MmNjMDY3YWNhOGQ3NjE4NjMzYQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJVGh1IE1heSAyMiAxMTowOTo1OSAyMDA4ICswMjAwCgogICAgTU1DOiBDb25zb2xpZGF0ZSBNTUMvU0QgY29tbWFuZCBkZWZpbml0aW9ucwoKICAgIFRoaXMgbW92ZXMgdGhlIE1NQyBhbmQgU0QgQ2FyZCBjb21tYW5kIGRlZmluaXRpb25zIGZyb20KICAgIGluY2x1ZGUvYXNtL2FyY2gvbW1jLmggaW50byBpbmNsdWRlL21tYy5oLiBUaGVzZSBkZWZpbml0aW9ucyBhcmUKICAgIGdpdmVuIGJ5IHRoZSBNTUMgYW5kIFNEIENhcmQgc3RhbmRhcmRzLCBub3QgYnkgYW55IHBhcnRpY3VsYXIKICAgIGFyY2hpdGVjdHVyZS4KCiAgICBUaGVyZSdzIGEgbG90IG1vcmUgcm9vbSBmb3IgY29uc29saWRhdGlvbiBpbiB0aGUgTU1DIGRyaXZlcnMgd2hpY2gKICAgIEknbSBob3BpbmcgdG8gZ2V0IGRvbmUgZXZlbnR1YWxseSwgYnV0IHRoaXMgcGF0Y2ggaXMgYSBzdGFydC4KCiAgICBDb21waWxlLXRlc3RlZCBmb3IgYWxsIGF2cjMyIGJvYXJkcyBhcyB3ZWxsIGFzIGxwYzIyOTJzb2RpbW0gYW5kCiAgICBsdWJib2NrLiBUaGlzIHNob3VsZCBjb3ZlciBhbGwgdGhyZWUgbW1jIGRyaXZlcnMgaW4gdGhlIHRyZWUuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGZhNjBlZGZjNGM5NTI2MjZlMDQ4YzBlMDY1ZjY1NGIzYzE4MjJmYTUKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxrbXBhcmtAaW5mcmFkZWFkLm9yZz4KRGF0ZToJV2VkIE1heSAyMSAxNDozODowOCAyMDA4ICswOTAwCgogICAgVXNlIGJldHRlciBFdGhlcm5ldCB0aW1pbmdzIGZvciBhcG9sbG9uIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCA0MWM1ZWFhNzI1M2VkODJiYmFlMWVkYTU2Njc3NTU4NzJjNjE1MTY0CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVuIDE2IDEzOjU4OjU2IDIwMDggLTA1MDAKCiAgICBSZXNpemUgZGV2aWNlIHRyZWUgdG8gYWxsb3cgc3BhY2UgZm9yIGJvYXJkIGNoYW5nZXMgYW5kIHRoZSBjaG9zZW4gbm9kZQoKICAgIEN1cnJlbnQgY29kZSByZXF1aXJlcyB0aGF0IGEgY29tcGlsZWQgZGV2aWNlIHRyZWUgaGF2ZSBzcGFjZSBhZGRlZCB0byB0aGUgZW5kIHRvCiAgICBsZWF2ZSByb29tIGZvciBleHRyYSBub2RlcyBhZGRlZCBieSBib2FyZCBjb2RlIChhbmQgdGhlIGNob3NlbiBub2RlKS4gIFRoaXMKICAgIHJlcXVpcmVzIHRoYXQgZGV2aWNlIHRyZWUgY3JlYXRvcnMgYW50aWNpcGF0ZSBob3cgbXVjaCBzcGFjZSBVLUJvb3Qgd2lsbCBhZGQgdG8KICAgIHRoZSB0cmVlLCB3aGljaCBpcyBhYnN1cmQuCUlkZWFsbHksIHRoZSBjb2RlIHdvdWxkIHJlc2l6ZSBhbmQvb3IgcmVsb2NhdGUgdGhlCiAgICB0cmVlIHdoZW4gaXQgbmVlZGVkIG1vcmUgc3BhY2UsIGJ1dCB0aGlzIHdvdWxkIHJlcXVpcmUgYSBzeXN0ZW1pYyBjaGFuZ2UgdG8gdGhlCiAgICBmZHQgY29kZSwgd2hpY2ggaXMgbm9uLXRyaXZpYWwuICBJbnN0ZWFkLCB3ZSByZXNpemUgdGhlIHRyZWUgaW5zaWRlCiAgICBib290X3JlbG9jYXRlX2ZkdCwgcmVzZXJ2aW5nIGVpdGhlciB0aGUgcmVtYWluZGVyIG9mIHRoZSBib290bWFwIChpbiB0aGUgY2FzZQogICAgd2hlcmUgdGhlIGZkdCBpcyBpbnNpZGUgdGhlIGJvb3RtYXApLCBvciBhZGRpbmcgQ0ZHX0ZEVF9QQUQgYnl0ZXMgdG8gdGhlIHNpemUuCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc1NzBhOTk0MWZjNTY1OTIyMDc4Njc5YTcyZDI0NmZlMjA4ZDY5NmQKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdW4gMTYgMTM6NTg6NTUgMjAwOCAtMDUwMAoKICAgIEZpeCBhbiB1bmRlcmZsb3cgYnVnIGluIF9fbG1iX2FsbG9jX2Jhc2UKCiAgICBfX2xtYl9hbGxvY19iYXNlIGNhbiB1bmRlcmZsb3cgaWYgaXQgZmFpbHMgdG8gZmluZCBmcmVlIHNwYWNlLiAgVGhpcyB3YXMgZml4ZWQKICAgIGluIGxpbnV4IHdpdGggY29tbWl0IGQ5MDI0ZGYwMmZmZTc0ZDcyM2Q5N2Q1NTJmODZkZTNiMzRiZWI4Y2MuICBUaGlzIHBhdGNoCiAgICBtZXJlbHkgdXBkYXRlcyBfX2xtYl9hbGxvY19iYXNlIHRvIHJlc2VtYmxlIHRoZSBjdXJyZW50IHZlcnNpb24gaW4gTGludXguCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDYzNzk2YzRlNjFiMjA3ZDJlNjM1NzI5ZDQxYjdhN2Y3ZDE4OGIwM2MKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdW4gMTYgMTM6NTg6NTQgMjAwOCAtMDUwMAoKICAgIEFkZCBsbWJfZnJlZQoKICAgIGxtYl9mcmVlIGFsbG93cyB1cyB0byB1bnJlc2VydmUgc29tZSBtZW1vcnkgc28gd2UgY2FuIHVzZSBsbWJfYWxsb2NfYmFzZSBvcgogICAgbG1iX3Jlc2VydmUgdG8gdGVtcG9yYXJpbHkgcmVzZXJ2ZSBzb21lIG1lbW9yeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGIwM2FjOGI1MTAyYWQ5NWY5ZmVkZTdkMTNmYTIzNjk3NzU5M2U3ZApBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1biAxNiAxMzo1ODo1MyAyMDA4IC0wNTAwCgogICAgQWRkIEFMSUdOKCkgbWFjcm8KCiAgICBBTElHTigpIHJldHVybnMgdGhlIHNtYWxsZXN0IGFsaWduZWQgdmFsdWUgZ3JlYXRlciB0aGFuIHRoZSBwYXNzZWQKICAgIGluIGFkZHJlc3Mgb3Igc2l6ZS4gIFRha2VuIGZyb20gTGludXguCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDkzMjYyYWY4NWUzZTlkOTk3NGM2YzA4ZmJkMzdhOWE3MmUwOTBjYTIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKdW4gMjQgMTc6MTU6MjIgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRml4IGNvbXBpbGF0aW9uIHByb2JsZW1zIHdpdGggcGh5c19zaXplX3QKCiAgICBUaGlzIHBhdGNoIGluY2x1ZGVzIDxhc20vdHlwZXMuaD4gYmVmb3JlIDxhc20vdS1ib290Lmg+IGluIHNvbWUgNHh4CiAgICBib2FyZCBzcGVjaWZpYyBmaWxlcyB3aGVyZSBpdCBoYXMgYmVlbiBtaXNzaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyOGVhYjBkNzczNTJiODQ4ODVmOTM4NzU5YmYyNjEyYjdiZjBiYzQ0CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CU1vbiBNYXkgMTkgMTI6MjY6MzggMjAwOCArMDIwMAoKICAgIENvbmRpdGlvbmFsbHkgYWRkIC1mbm8tc3RhY2stcHJvdGVjdG9yIHRvIENGTEFHUwoKICAgIFdoZW4gY29tcGlsZS10ZXN0aW5nIG9uIHBvd2VycGMsIEkgZ2V0IGVycm9ycyBsaWtlIHRoaXM6CgogICAgbmV0L25mcy5jOjQyMjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgX19zdGFja19jaGtfZmFpbF9sb2NhbCcKCiAgICBUaGlzIHNlZW1zIHRvIGJlIGJlY2F1c2UgLWZzdGFjay1wcm90ZWN0b3IgaXMgb24gYnkgZGVmYXVsdCwgc28KICAgIGxldCdzIGV4cGxpY2l0bHkgZGlzYWJsZSBpdCBvbiBhbGwgYXJjaGl0ZWN0dXJlcyB0aGF0IHN1cHBvcnQgdGhlCiAgICBvcHRpb24uCgogICAgVGhlIFVidW50dSB0b29sY2hhaW4gaXMgYWZmZWN0ZWQgYnkgdGhpcyBwcm9ibGVtLCBhbmQgYWNjb3JkaW5nIHRvCiAgICBNaWtlIEZyeXNpbmdlciwgR2VudG9vIGhhcyBiZWVuIHJ1bm5pbmcgd2l0aCBTU1AgZW5hYmxlZCBmb3IgeWVhcnMuCiAgICBNb3JlIGFuZCBtb3JlIGRpc3Ryb3MgYXJlIHR1cm5pbmcgU1NQIG9uIGJ5IGRlZmF1bHQsIHNvIHRoaXMgcHJvYmxlbQogICAgaXMgbGlrZWx5IHRvIGdldCB3b3JzZSBpbiB0aGUgZnV0dXJlLgoKICAgIEFsc28sIHBvd2VycGMganVzdCBoYXBwZW5zIHRvIGJlIG9uZSBvZiB0aGUgYXJjaGVzIEkgZG8KICAgIGNvbXBpbGUtdGVzdGluZyBvbi4gVGhlcmUgbWF5IGJlIG90aGVyIGFyY2hlcyBhZmZlY3RlZCBieSB0aGlzIHRvby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBkZmQzYmU4ODFjMDNhMjZlMzFmMGRlYTRhNDJlNzYwNjFmYTYxMGFjCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE1heSAxOCAxOTowOTo1MiAyMDA4ICswMjAwCgogICAgcGNtY2lhL3RpX3BjaTE0MTBhOiBNb3ZlIGNvbXBpbGUgY29uZGl0aW9uIHRvIHRoZSBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNzJkNWQ1ZjdiNWM3NGExODhkZjIzOGVjNmRkODI0ZDgwYzc0ODU3YQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBNYXkgMTggMTk6MDk6NTEgMjAwOCArMDIwMAoKICAgIHB4YV9wY21jaWE6IE1vdmUgY29tcGlsZSBjb25kaXRpb24gdG8gdGhlIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBjOWVmZjMyODgxZmI0MjkxMDFjOTM3Y2Y4YzI2OGYxZDQyZTVjMmE5CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE1heSAxOCAxOTowOTo1MCAyMDA4ICswMjAwCgogICAgbWFyYWJ1bl9wY21jaWE6IE1vdmUgY29tcGlsZSBjb25kaXRpb24gdG8gdGhlIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA2YTE5YzQ2Y2FlNDNjMTZjNTI4ZWRkZWZhZTNkYjk3MTM0ZjE5MTVkCkF1dGhvcjogQW5kcmUgU2Nod2FyeiA8YW5kcmUuc2Nod2FyekBtYXRyaXgtdmlzaW9uLmRlPgpEYXRlOglNb24gSnVuIDIzIDEzOjI1OjM0IDIwMDggKzAyMDAKCiAgICBmaXggbm9uLXdvcmtpbmcgbXZCTC1NNwoKICAgIEFkZCBtaXNzaW5nICNkZWZpbmUgQ09ORklHX0hJR0hfQkFUUyBpbiBtdkJMLU03IGJvYXJkIGNvbmZpZyBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJlIFNjaHdhcnogPGFuZHJlLnNjaHdhcnpAbWF0cml4LXZpc2lvbi5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODQ2ZjE1NzRkZGRkZWRhMmJjMjI3NjU1ZTY4NzMwODY5NWY0MWNkYwpBdXRob3I6IEFuZHJlIFNjaHdhcnogPGFuZHJlLnNjaHdhcnpAbWF0cml4LXZpc2lvbi5kZT4KRGF0ZToJTW9uIEp1biAyMyAxMTo0MDo1NiAyMDA4ICswMjAwCgogICAgZml4IHN5c3RlbSBjb25maWcgb3ZlcndyaXRlIEAgTVBDODM0eCBhbmQgTVBDODMxMwoKICAgIER1cmluZyA4M3h4IHNldHVwIHRoZSAiU3lzdGVtIEkvTyBjb25maWd1cmF0aW9uIHJlZ2lzdGVyIGhpZ2giIGdldHMKICAgIG92ZXJ3cml0dGVuIHdpdGggdXNlciBkZWZpbmVkIHZhbHVlIGlmIENGR19TSUNSSCBpcyBkZWZpbmVkLgoKICAgIFJlZ2FyZGluZyB0byB0aGUgTVBDODM0eCBtYW51YWwgKFRhYmxlIDUtMjggcmV2ZS4xKSBiaXRzIDI4KzI5IG9mIFNJQ1JICiAgICBtdXN0IGtlZXAgdGhlaXIgcmVzZXQgdmFsdWUgcmVnYXJkbGVzcyBvZiBjb25maWd1cmF0aW9uLgoKICAgIE9uIG15IGJvYXJkICh1c2luZyBSR01JSSkgdGhvc2UgYml0cyBhcmUgc2V0IGFmdGVyIHJlc2V0IC0geWV0IGl0J3MKICAgIHVuY2xlYXIgd2hlcmUgdGhleSBjb21lIGZyb20uCgogICAgVGhlIHBhdGNoIGtlZXBzIGJvdGggYml0cyBvbiBNUEM4MzR4IGFuZCBNUEM4MzEzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJlIFNjaHdhcnogPGFuZHJlLnNjaHdhcnpAbWF0cml4LXZpc2lvbi5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDg5MDI0NmEyYzVkZjkwYTc0ZTI5NDFlMzY3M2E0OWJiZDM2YWVlOQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdW4gMTcgMTc6NDU6MjcgMjAwOCAtMDUwMAoKICAgIG1wYzgzeHg6IG1vdmUgQ1BVX1RZUEVfRU5UUlkgb3ZlciB0byBwcm9jZXNzb3IuaAoKICAgIHRvIGF2b2lkIHRoaXM6CgogICAgY3B1LmM6NDc6MTogd2FybmluZzogIkNQVV9UWVBFX0VOVFJZIiByZWRlZmluZWQKICAgIEluIGZpbGUgaW5jbHVkZWQgZnJvbSBjcHUuYzozMzoKICAgIC9ob21lL2tpbS9naXQvdS1ib290L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oOjk4MjoxOiB3YXJuaW5nOiB0aGlzIGlzIHRoZSBsb2NhdGlvbiBvZiB0aGUgcHJldmlvdXMgZGVmaW5pdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWFjN2E1MDk1Yjk2OGQ2YzlhM2U2NDIyZjMxYjRhZDIwM2NhYzljOApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEp1biAyMyAxMToxNTowOSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggcHJvYmxlbSBpbiBncGlvX2NvbmZpZygpCgogICAgQXMgcG9pbnRlZCBvdXQgYnkgR3Vlbm5hZGkgTGlha2hvdmV0c2tpICh0aGFua3MpLCBwaW4yIGlzIGFscmVhZHkgc2hpZnRlZAogICAgbGVmdCBieSBvbmUuIFNvIHRoZSBhZGRpdGlvbmFsIHNoaWZ0IGlzIGJvZ3VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0MDc3NzgxMjMxNmZjMjUyYzk0MTY2NWMwZjYwYzE0OGZkNzlkNTBmCkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMjAgMjI6MjQ6MDUgMjAwOCArMDIwMAoKICAgIGZkdDogRml4IHR5cG8gaW4gdmFyaWFibGUgbmFtZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCA1ZjcyM2EzYjk4YzYzMGJkZTMzZGU3NDM1MWYyMTIxNjkxZmRlZjE0CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglGcmkgSnVuIDIwIDEwOjQxOjA1IDIwMDggKzAyMDAKCiAgICBhdnIzMjogRW5hYmxlIFNQSSBmbGFzaCBzdXBwb3J0IG9uIEFUTkdXMTAwCgogICAgVGhlIEFUTkdXMTAwIGhhcyA4TUIgRGF0YUZsYXNoIG9uIGJvYXJkLiBHaXZlIHVzZXJzIGFjY2VzcyB0byBpdCB0aHJvdWdoCiAgICB0aGUgbmV3IFNQSSBmbGFzaCBmcmFtZXdvcmsuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDU2MDVlZjZiNTgwMjkyMWNiZWZlNmE5MzNhOWRlYTM0OTczOTZiNWMKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CUZyaSBKdW4gMjAgMTI6NDQ6MjggMjAwOCArMDIwMAoKICAgIGF2cjMyOiBGaXggU1BJIHBvcnRtdXggaW5pdGlhbGl6YXRpb24KCiAgICBVc2UgdGhlIG5ldyBHUElPIG1hbmlwdWxhdGlvbiBmdW5jdGlvbnMgdG8gc2V0IHVwIHRoZSBjaGlwIHNlbGVjdCBsaW5lcywKICAgIGFuZCBtYWtlIHN1cmUgYm90aCBidXNzZXMgdXNlIEdQSU8gZm9yIGNoaXAgc2VsZWN0IGNvbnRyb2wuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDQ2ODhmOWUzNGE4N2U4MjVhZWQzNGQwN2M5Y2E3YTI3M2U2ZmM4YWIKQXV0aG9yOiBQZXRlciBNYSA8cG1hQG1lZGlhbWF0ZWNoLmNvbT4KRGF0ZToJU3VuIEp1biAxIDIyOjU5OjI0IDIwMDggLTA3MDAKCiAgICBhdnIzMjogQWRkIEdQSU8gbWFuaXB1bGF0aW9uIGZ1bmN0aW9ucwoKICAgIEFkZHMgR1BJTyBtYW5pcHVsYXRpb24gZnVuY3Rpb25zIGZvciBBVlIzMiBBUDcgcGxhdGZvcm0uCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgTWEgPHBtYUBtZWRpYW1hdGVjaC5jb20+CiAgICBbaGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbTogY29kaW5nIHN0eWxlIGZpeHVwLCBzbGlnaHQgc2ltcGxpZmljYXRpb25dCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgYjRmZTFhNzEwOTBjNzNlZmM2ZTQxODhlZWQxODhiMmZmNjdmYzAyYQpBdXRob3I6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgpEYXRlOglUaHUgSnVuIDUgMTM6MDI6MzAgMjAwOCArMDIwMAoKICAgIE1QQzgzNjBFUkRLOiBhZGFwdCBOQU5EIGludGVyZmFjZSBmb3IgdGhlIHJlLXdyaXR0ZW4gRlNMIE5BTkQgVVBNIGRyaXZlcgoKICAgIFRoaXMgcGF0Y2ggaXMgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBwYXRjaCBzZW50IGEgZmV3IG1pbnV0ZXMgYWdvOgogICAgIk5BTkQgRlNMIFVQTTogZHJpdmVyIHJlLXdyaXRlIHVzaW5nIHRoZSBod2NvbnRyb2wgY2FsbGJhY2siCiAgICBJdCBpcyB1bnRlc3RlZCwgb2YgY291cnNlLiBBbnRvbiwgY291bGQgeW91IHBsZWFzZSBnaXZlIGl0IGEgdHJ5LgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgogICAgQWNrZWQtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IDk2MDI2ZDQyZmE0ZTY0NmQyODMxOGMwYTE0MzhhYWM0YjIwMTc5MDkKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CVRodSBKdW4gMTIgMTI6NDA6MTEgMjAwOCArMDIwMAoKICAgIEZpeCA0eHggYnVpbGQgaXNzdWUKCiAgICBCdWlsZGluZyBmb3IgNHh4IGRvZXNuJ3Qgd29yayBzaW5jZSBjb21taXQgNGRiZGI3Njg6CgogICAgSW4gZmlsZSBpbmNsdWRlZCBmcm9tIDR4eF9wY2llLmM6Mjg6CiAgICBpbmNsdWRlL2FzbS9wcm9jZXNzb3IuaDo5NzE6IGVycm9yOiBleHBlY3RlZCAnKScgYmVmb3JlICd2ZXInCiAgICBtYWtlWzFdOiAqKiogWzR4eF9wY2llLm9dIEVycm9yIDEKCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBwcm9ibGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBBY2tlZC1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBhMDM2YjA0NDM2NTdmZTBmNDc3Mzc4NmRlOTA5MjI1MTg2OWYwOGFjCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEp1biAxOSAwMTo0NTo1MCAyMDA4IC0wNTAwCgogICAgTVBDODYxMEhQQ0Q6IFJlcG9ydCBib2FyZCBpZCwgYm9hcmQgdmVyc2lvbiBhbmQgZnBnYSB2ZXJzaW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgN2RlOGMyMWYxNGRmOWMyMGZkY2Y2MDI3YWVjOGU4NTQ1Zjc1ZjgzNQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBKdW4gMTkgMDE6NDU6MjcgMjAwOCAtMDUwMAoKICAgIE1QQzg2NDFIUENOOiBSZXBvcnQgYm9hcmQgaWQsIGJvYXJkIHZlcnNpb24gYW5kIGZwZ2EgdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGZiOGMwNjFlYTA1ZmM2OGQzN2UyYThiOWY4Yzk0OWQ3NmM4ZDcxYTgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKdW4gMTYgMTA6NDA6MDIgMjAwOCArMDIwMAoKICAgIGNmaS1mbGFzaDogRml4IHByb2JsZW0gaW4gZmxhc2hfdG9nZ2xlKCksIGJ1c3kgd2FzIG5vdCBkZXRlY3RlZCByZWxpYWJseQoKICAgIFRoaXMgcGF0Y2ggc2ltcGxpZmllcyBmbGFzaF90b2dnbGUoKSAoQU1EIGNvbW1hbmRzZXQpLCB3aGljaCBpcyB1c2VkIHRvCiAgICBkZXRlY3QgaWYgYSBGTEFTSCBkZXZpY2UgaXMgc3RpbGwgYnVzeSB3aXRoIGVyYXNlL3Byb2dyYW0gb3BlcmF0aW9ucy4gT24KICAgIDgwME1IeiBDYW55b25sYW5kcy9HbGFjaWVyIGJvYXJkcyAoNDYwRVgvR1QpIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uCiAgICBkaWQgbm90IGRldGVjdCB0aGUgYnVzeSBzdGF0ZSByZWxpYWJseSwgcmVzdWx0aW5nIGluIG5vbiBlcmFzZWQgc2VjdG9ycwogICAgZXRjLiBUaGlzIHBhdGNoIG5vdyBzaW1wbGlmaWVzIHRoaXMgZnVuY3Rpb24gYnkgImp1c3QiIGNvbXBhcmluZyB0aGUKICAgIGNvbXBsZXRlIGRhdGEtd29yZCBpbnN0ZWFkIG9mIEFORGluZyBpdCB3aXRoIHRoZSBjb21tYW5kLXdvcmQgKDB4NDApCiAgICBiZWZvcmUgdGhlIGNvbXBhdGlzb24uIEl0IGlzIGRvbmUgdGhlIHNhbWUgd2F5IGluIHRoZSBMaW51eCBpbXBsZW1lbnRhdGlvbgogICAgY2hpcF9yZWFkeSgpIGluIGNmaV9jbWRzZXRfMDAwMi5jLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5ZTQwMDZiY2EzZDlmYjRhMmQwNjE5OTY3NzEwMzZjYjAxZTUzOWQzCkF1dGhvcjogUGhpbGlwIEJhbGlzdGVyIDxwaGlsaXBAYmFsaXN0ZXIub3JnPgpEYXRlOglNb24gSnVuIDE2IDA4OjU4OjA3IDIwMDggLTA0MDAKCiAgICBOQU5EOiBBZGQgbWlzc2luZyBkZWNsYXJhdGlvbiB0byBub24tcmVkdW5kYW50IHNhdmVlbnYoKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyY2RiN2Y1MGFjNTk1OTQ1NDBmZmZkZjhkYmQ3YjEyYmVhYzc5YzUyCkF1dGhvcjogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CkRhdGU6CU1vbiBKdW4gMiAxNTowOTo1NSAyMDA4ICswMjAwCgogICAgTVBDODM2MEVSREs6IGFkYXB0IE5BTkQgaW50ZXJmYWNlIGZvciB0aGUgcmUtd3JpdHRlbiBGU0wgTkFORCBVUE0gZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CiAgICBBY2tlZC1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyMTJlZDkwNjE1YzNkMjBmYTZiZDczZDcwZDUxNTNiZDBkMTI0ZTVmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSnVuIDEwIDE1OjM0OjExIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IENhbnlvbmxhbmRzOiBEaXNhYmxlIHRoZSBSVEMgTTQxVDYyIHNxdWFyZSB3YXZlIG91dHB1dAoKICAgIFRoaXMgcGF0Y2ggZGlzYWJsZXMgdGhlIHNxdWFyZSB3YXZlIG91dHB1dCBvZiB0aGUgTTQxVDYyIFJUQyB1c2VkIG9uCiAgICBDYW55b25sYW5kcyAmIEdsYWNpZXIuIEhlcmUgdGhlIGV4cGxhbmF0aW9uOgoKICAgIFRoZSBzZXJpYWwgcmVhbC10aW1lIGNsb2NrIHBhcnQgdXNlZCBpbiB0aGUgZGVzaWduIGlzIGFuCiAgICBTVE1pY3JvIE00MVQ2Mi4gVGhpcyBwYXJ0IGhhcyBhIGZ1bGwtdGltZSAzMktIeiBzcXVhcmUgd2F2ZQogICAgb3V0cHV0IHRoYXQgaXMgY29ubmVjdGVkIHRvIHRoZSBUbXJDbGsgaW5wdXQgdG8gdGhlCiAgICBwcm9jZXNzb3IuIFRoZSBkZWZhdWx0IHN0YXRlIGZvciB0aGlzIHNxdWFyZSB3YXZlIG91dHB1dCBpcwogICAgZW5hYmxlZCBzbyB0aGUgb3V0cHV0IHJ1bnMgY29udGludW91c2x5IHdoZW4gdGhlIGJvYXJkIGlzCiAgICBwb3dlcmVkIG5vcm1hbGx5IGFuZCBhbHNvIGZyb20gdGhlIGJhdHRlcnkuIFRoZSBUbXJDbGsgaW5wdXQKICAgIHRvIHRoZSBwcm9jZXNzb3IgZ29lcyB0byBncm91bmQgd2hlbiB0aGUgcG93ZXIgaXMgcmVtb3ZlZAogICAgZnJvbSB0aGUgYm9hcmQvcHJvY2Vzc29yLCBhbmQgdGhlcmVmb3JlIHRoZSBydW5uaW5nIHNxdWFyZQogICAgd2F2ZSBvdXRwdXQgaXMgZHJpdmluZyBncm91bmQgd2hpY2ggZHJhaW5zIHRoZSBiYXR0ZXJ5IHF1aWNrbHkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGE5NGYyMmYwOGYyODA5MDU5MjYyMTllNTY4NTY4OTY0Y2I5ZWViOWQKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMTEgMTg6MTA6MjAgMjAwOCAtMDUwMAoKICAgIEZpeCBidWlsZCBpc3N1ZSB3aXRoIHN0cmluZy5oIGFuZCBsaW51eC9zdHJpbmcuaAoKICAgIFRoaXMgY29tbWl0OgogICAgY29tbWl0IDMzOGNjMDM4NDYxYTZjNzcwOWM1Yjg2ZmQ5YTI0MDIwOTMzOGExYWUKICAgIEF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KICAgIERhdGU6ICAgRnJpIEp1biA2IDE0OjI4OjE0IDIwMDggKzAyMDAKCgl0b29scy9ta2ltYWdlOiBmaXggY29tcGlsZXIgd2FybmluZ3Mgb24gc29tZSBzeXN0ZW1zLgoKICAgIEJyb2tlIGJ1aWxkaW5nIG9uIHNvbWUgc3lzdGVtcywgYmVjYXVzZSB0aGUgaG9zdCdzIHN0cmluZy5oIHdhcyBpbnRlcmZlcmluZwogICAgd2l0aCB1LWJvb3QncyBsaW51eC9zdHJpbmcuaC4gIEl0IGRvZXNuJ3QgbG9vayBsaWtlIHdlIG5lZWQgdGhlIHUtYm9vdCBvbmUgaWYKICAgIHdlJ3JlIGJ1aWxkaW5nIGZvciB0aGUgaG9zdCwgc28gbm93IHdlIG9ubHkgaW5jbHVkZSB3aGVuIGJ1aWxkaW5nIGluc2lkZQogICAgdS1ib290LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5OTczZTNjNjE0NzIxYmJmMTY5ODgyZmZjM2JlMjY2YTY2MTFjZDYwCkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdW4gOSAxNjowMzo0MCAyMDA4IC0wNTAwCgogICAgQ2hhbmdlIGluaXRkcmFtKCkgcmV0dXJuIHR5cGUgdG8gcGh5c19zaXplX3QKCiAgICBUaGlzIHBhdGNoIGNoYW5nZXMgdGhlIHJldHVybiB0eXBlIG9mIGluaXRkcmFtKCkgZnJvbSBsb25nIGludCB0byBwaHlzX3NpemVfdC4KICAgIFRoaXMgaXMgcmVxdWlyZWQgZm9yIGEgY291cGxlIG9mIHJlYXNvbnM6IGxvbmcgaW50IGxpbWl0cyB0aGUgYW1vdW50IG9mIGRyYW0KICAgIHRvIDJHQiwgYW5kIHUtYm9vdCBpbiBnZW5lcmFsIGlzIG1vdmluZyBvdmVyIHRvIHBoeXNfc2l6ZV90IHRvIHJlcHJlc2VudCB0aGUKICAgIHNpemUgb2YgcGh5c2ljYWwgbWVtb3J5LiAgcGh5c19zaXplX3QgaXMgZGVmaW5lZCBhcyBhbiB1bnNpZ25lZCBsb25nIG9uIGFsbW9zdAogICAgYWxsIGN1cnJlbnQgcGxhdGZvcm1zLgoKICAgIFRoaXMgcGF0Y2ggKm9ubHkqIGNoYW5nZXMgdGhlIHJldHVybiB0eXBlIG9mIHRoZSBpbml0ZHJhbSBmdW5jdGlvbiAoaW4KICAgIGluY2x1ZGUvY29tbW9uLmgsIGFzIHdlbGwgYXMgaW4gZWFjaCBib2FyZCdzIGltcGxlbWVudGF0aW9uIG9mIGluaXRkcmFtKS4gIEl0CiAgICBkb2VzIG5vdCBhY3R1YWxseSBtb2RpZnkgdGhlIGNvZGUgaW5zaWRlIHRoZSBmdW5jdGlvbiBvbiBhbnkgb2YgdGhlIHBsYXRmb3JtczsKICAgIHBsYXRmb3JtcyB3aGljaCB3aXNoIHRvIHN1cHBvcnQgbW9yZSB0aGFuIDJHQiBvZiBEUkFNIHdpbGwgbmVlZCB0byBtb2RpZnkKICAgIHRoZWlyIGluaXRkcmFtKCkgZnVuY3Rpb24gY29kZS4KCiAgICBCdWlsZCB0ZXN0ZWQgd2l0aCBNQUtFQUxMIGZvciBwcGMsIGFybSwgbWlwcywgbWlwcy1lbC4gQm9vdGVkIG9uIHBvd2VycGMKICAgIE1QQzg2NDFIUENOLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM5MWZkOTNhYjIzZTE1YWIzZGQ1OGE1NGY1YjYwOTAyNDAwOWMzNzgKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1biA5IDIwOjM3OjE4IDIwMDggLTA1MDAKCiAgICBDaGFuZ2UgbG1iIHRvIHVzZSBwaHlzX3NpemVfdC9waHlzX2FkZHJfdAoKICAgIFRoaXMgdXBkYXRlcyB0aGUgbG1iIGNvZGUgdG8gdXNlIHBoeXNfc2l6ZV90CiAgICBhbmQgcGh5c19hZGRyX3QgaW5zdGVhZCBvZiB1bnNpZ25lZCBsb25nLiAgT3RoZXIgY29kZQogICAgd2hpY2ggaW50ZXJhY3RzIHdpdGggdGhpcyBjb2RlLCBsaWtlIGdldGVudl9ib290bV9zaXplKCkKICAgIGlzIGFsc28gdXBkYXRlZC4KCiAgICBCb290ZWQgb24gTVBDODY0MUhQQ04sIGJ1aWxkLXRlc3RlZCBwcGMsIGFybSwgbWlwcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2MWIwOWZjMjk1MmRjNjM2MDE3ZGY0ZTc5NzBlM2RlMTMyMjc2YmExCkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdW4gOSAyMDozNzoxNyAyMDA4IC0wNTAwCgogICAgQ2hhbmdlIHByaW50X3NpemUgdG8gdGFrZSBwaHlzX3NpemVfdAoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI1N2NhM2UxMjhjYzEwYTEzM2JhNzliYzdlYzNlN2I1MGU3YzhmYmUKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1biA5IDIwOjM3OjE2IDIwMDggLTA1MDAKCiAgICBDaGFuZ2UgYmQvZ2QgbWVtc2l6ZS9yYW1fc2l6ZSB0byBiZSBwaHlzX3NpemVfdC4KCiAgICBDdXJyZW50bHksIGJvdGggYXJlIGRlZmluZWQgYXMgYW4gdW5zaWduZWQgbG9uZywgYnV0CiAgICBzaG91bGQgYmUgcGh5c19zaXplX3QuIFRoaXMgc2hvdWxkIHJlc3VsdCBpbiBubyByZWFsIGNoYW5nZSwKICAgIHNpbmNlIHBoeXNfc2l6ZV90IGlzIGN1cnJlbnRseSBhbiB1bnNpZ25lZCBsb25nIGZvciBhbGwgdGhlCiAgICBkZWZhdWx0IGNvbmZpZ3MuICBBbHNvIGFkZCBwcmludF9sbnVtIHRvIGNtZF9iZGluZm8gdG8gZGVhbAogICAgd2l0aCB0aGUgcG90ZW50aWFsbHkgd2lkZXIgbWVtc2l6ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiYTA0ZjcwMTA5NThlODhhODkxMGYyYTEyM2ZlZTUzZmRjNzJlMDEzCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEp1biAxMCAxNjoxNjowMiAyMDA4IC0wNTAwCgogICAgRlNMIExBVzogQWRkIG5ldyBpbnRlcmZhY2UgdG8gdXNlIHRoZSBsYXN0IGZyZWUgTEFXCgogICAgTEFXcyBoYXZlIHRoZSBjb25jZXB0IG9mIHByaW9yaXR5IHNvIGl0cyB1c2VmdWwgdG8gYmUgYWJsZSB0byBhbGxvY2F0ZQogICAgdGhlIGxvd2VzdCAoaGlnaGVzdCBudW1iZXIpIHByaW9yaXR5LiAgV2Ugd2lsbCBlbmQgdXAgdXNpbmcgdGhpcyB3aXRoIHRoZQogICAgbmV3IEREUiBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgODU5YTg2YTI1YzU2OWQzNjY1ZmY0MTNkMWQ5MjMzOTRiOGE5NjFmMwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBKdW4gMTEgMDA6NTE6NDUgMjAwOCAtMDUwMAoKICAgIDg1eHgvODZ4eDogTW92ZSB0byBkeW5hbWljIG1nbXQgb2YgTEFXcwoKICAgIFdpdGggdGhlIG5ldyBMQVcgaW50ZXJmYWNlIChzZXRfbmV4dF9sYXcpIHdlIGNhbiBtb3ZlIHRvIGxldHRpbmcgdGhlCiAgICBzeXN0ZW0gYWxsb2NhdGUgd2hpY2ggTEFXcyBhcmUgdXNlZCBmb3Igd2hhdCBwdXJwb3NlLiAgVGhpcyBtYWtlcyBsaWZlCiAgICBhIGJpdCBlYXNpZXIgZ29pbmcgZm9yd2FyZCB3aXRoIHRoZSBuZXcgRERSIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGYwNjAwNTRkYWRiYmU3MDI3Y2EwODhlZWQ4MDZhM2VmMWY4MmZkYjcKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgSnVuIDExIDAwOjQ0OjEwIDIwMDggLTA1MDAKCiAgICBGU0wgTEFXOiBLZWVwIHRyYWNrIG9mIExBVyBhbGxvY2F0aW9ucwoKICAgIE1ha2UgaXQgc28gd2Uga2VlcCB0cmFjayBvZiB3aGljaCBMQVdzIGhhdmUgYWxsb2NhdGVkIGFuZCBwcm92aWRlCiAgICBhIGZ1bmN0aW9uIChzZXRfbmV4dF9sYXcpIHdoaWNoIGNhbiBhbGxvY2F0ZSBhIExBVyBmb3IgdXMgaWYgb25lIGlzCiAgICBmcmVlLgoKICAgIEluIHRoZSBmdXR1cmUgd2Ugd2lsbCBtb3ZlIHRvIGRvaW5nIG1vcmUgImR5bmFtaWMiIExBVyBhbGxvY2F0aW9uCiAgICBzaW5jZSB0aGUgbWFqb3JpdHkgb2YgdXNlcnMgZG9udCByZWFsbHkgY2FyZSBhYm91dCB3aGF0IExBVyBudW1iZXIKICAgIHRoZXkgYXJlIGF0LgoKICAgIEFsc28sIGFkZCBDT05GSUdfTVBDODU0MCBvciBDT05GSUdfTVBDODU2MCB0byB0aG9zZSBib2FyZHMgd2hpY2ggbmVlZGVkIHRoZW0KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRkZGU3NGExNTljYWE2ZTE4YjQ4MWZlYzAxZDQwYjg4NWFlYmI1NjYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gSnVuIDkgMjI6MzE6NTcgMjAwOCAtMDUwMAoKICAgIDg1eHg6IHJlbW92ZSBkdW1teSBib2FyZF9lYXJseV9pbml0X2YKCiAgICBBIG51bWJlciBvZiBib2FyZCBwb3J0cyBoYXZlIGVtcHR5IHZlcnNpb24gb2YgYm9hcmRfZWFybHlfaW5pdF9mCiAgICBmb3Igbm8gcmVhc29uIHNpbmNlIHdlIGNvbnRyb2wgaXRzIHZpYSBDT05GSUdfQk9BUkRfRUFSTFlfSU5JVF9GLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgODFlNTZlOWFmMGQ0MzcxMmRiOGVmYjg0MzYwNmE4ZDYyZWFiNDU0ZgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBKdW4gOSAxODo1NTozOCAyMDA4IC0wNTAwCgogICAgTVBDODU0NERTOiBVcGRhdGUgY29uZmlnLmgKCiAgICAqIEVuYWJsZSBmbGFzaCBwcm9ncmVzcwogICAgKiByZW1vdmUgQ0xFQVJfTEFXMCBzaW5jZSB3ZSBkb250IHJlYWxseSB1c2UgaXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDk3OGU4MTYwNGMxYjI4NTI2ZWQ1ODBkZjBmYmU2NGViODM4NGU5NGYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gSnVuIDkgMTM6Mzc6MjQgMjAwOCAtMDUwMAoKICAgIDg1eHg6IFJlbW92ZSB1bnVzZWQgYW5kIHVuY29uZmlndXJlZCBtZW1vcnkgdGVzdCBjb2RlLgoKICAgIFJlbW92ZSB1bnVzZWQgYW5kIHVuY29uZmlndXJlZCBERFIgdGVzdCBjb2RlIGZyb20gRlNMIDg1eHggYm9hcmRzLgogICAgQmVzaWRlcywgb3RoZXIgY29tbW9uIGNvZGUgZXhpc3RzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYTIzY2RkZGUxYTk1Zjk4N2UzZmUyYTcyMGE3ZWM5Mzc1YjcyNjRkNwpBdXRob3I6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CkRhdGU6CUZyaSBKdW4gNiAxNTo0Mjo0NSAyMDA4ICswMjAwCgogICAgU29jcmF0ZXM6IEFkZGVkIEZQR0EgYmFzZSBhZGRyZXNzIHVwZGF0ZSBpbiBGRFQuCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KCmNvbW1pdCBmZDUxYjBlMGU2MjBiOGJjOWZkNGY2ZGFhM2E0ZmE2ZjVlMTMxNmY0CkF1dGhvcjogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KRGF0ZToJRnJpIEp1biA2IDE1OjQyOjQ0IDIwMDggKzAyMDAKCiAgICBTb2NyYXRlczogTkFORCBzdXBwb3J0IGFkZGVkLiBDaGFuZ2VkIHRoZSBVLUJvb3QgYmFzZSBhZGRyZXNzIGFuZAoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+Cgpjb21taXQgMjQ4YWU1Y2ZjOGJmNjkwNzRkMWRhMDk5ZGM0OTVkOGUwNjA3MDU0NwpBdXRob3I6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CkRhdGU6CUZyaSBKdW4gNiAxNTo0Mjo0MyAyMDA4ICswMjAwCgogICAgTkFORDogQWRkZWQgc3VwcG9ydCBmb3IgMTI4LWJpdCBPT0IsIGFkYXB0ZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgoKY29tbWl0IDMxY2EwMjA4NjEyZjJlYjU3NjkwMTEwZDdjMjgxNTk1MzY1MGU0N2IKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglGcmkgSnVuIDYgMTU6NDI6NDIgMjAwOCArMDIwMAoKICAgIFNvY3JhdGVzOiBhZGRlZCBtaXNzZWQgZmlsZSB3aXRoIFVQTUEgY29uZmlndXJhdGlvbiBkYXRhLgoKICAgIFNpZ25lZC1vZi1ieTogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KCmNvbW1pdCA1OWFiZDE1YjQzY2FiN2E0ZDE5ZGU0YmEwOTQzODM3ZDk1NTVmN2JhCkF1dGhvcjogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KRGF0ZToJRnJpIEp1biA2IDE1OjQyOjQxIDIwMDggKzAyMDAKCiAgICBTb2NyYXRlczogQWRkZWQgRlBHQSBtYXBwaW5nLiBMQVdzIGFuZCBUTEJzIGNsZWFudXAuCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KCmNvbW1pdCA3NDAyODBlNjhjY2MwYjk3MWU2MTNmYWNlN2VhYWE4YmQxMzgyYjhjCkF1dGhvcjogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KRGF0ZToJRnJpIEp1biA2IDE1OjQyOjQwIDIwMDggKzAyMDAKCiAgICBBZGRlZCB0aGUgdXBtY29uZmlnKCkgZnVuY3Rpb24gZm9yIDg1eHguCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkMzllNjg1MTRmZjk0MzkzMGVlNjkyY2ZmM2ZkZTAzNTMyZWI3ZmVjCkF1dGhvcjogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KRGF0ZToJRnJpIEp1biA2IDE1OjQyOjM5IDIwMDggKzAyMDAKCiAgICBTb2NyYXRlczogY29uZmlnIGZpbGUgY2xlYW51cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgoKY29tbWl0IGU4Y2MzZjA0YjEyNGY3NTdhZjQ1MjgyMDZlNjBkOGViNzE1YWUwODMKQXV0aG9yOiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KRGF0ZToJVGh1IEp1biA1IDEzOjEyOjEwIDIwMDggKzAyMDAKCiAgICBUUU04NXh4OiBDaGFuZ2UgbWVtb3J5IG1hcCB0byBzdXBwb3J0IEZsYXNoIG1lbW9yeSA+IDEyOCBNaUIKCiAgICBTb21lIFRRTTg1eHggYm9hcmRzIGNvdWxkIGJlIGVxdWlwcGVkIHdpdGggdXAgdG8gMSBHaUIgKE5PUikgRmxhc2gKICAgIG1lbW9yeS4gVGhlIGN1cnJlbnQgbWVtb3J5IG1hcCBvbmx5IHN1cHBvcnRzIHVwIHRvIDEyOCBNaUIgRmxhc2guCiAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9uIENPTkZJR19UUU1fQklHRkxBU0guIElmCiAgICBzZXQsIHVwIHRvIDEgR2lCIGZsYXNoIGlzIHN1cHBvcnRlZC4gVG8gYWNoaWV2ZSB0aGlzLCB0aGUgbWVtb3J5CiAgICBtYXAgaGFzIHRvIGJlIGFkanVzdGVkIGluIGdyZWF0IHBhcnRzIChmb3IgZXhhbXBsZSB0aGUgQ0NTUkJBUiBpcwogICAgbW92ZWQgZnJvbSAweEUwMDAwMDAwIHRvIDB4QTAwMDAwMDApLgoKICAgIElmIHlvdSB3YW50IHRvIGJvb3QgTGludXggd2l0aCBDT05GSUdfVFFNX0JJR0ZMQVNIIHNldCwgdGhlIG5ldwogICAgbWVtb3J5IG1hcCBhbHNvIGhhcyB0byBiZSBjb25zaWRlcmVkIGluIHRoZSBrZXJuZWwgKGNoYW5nZWQKICAgIENDU1JCQVIgYWRkcmVzcywgY2hhbmdlZCBQQ0kgSU8gYmFzZSBhZGRyZXNzLCAuLi4pLiBQbGVhc2UgdXNlCiAgICBhbiBhcHByb3ByaWF0ZSBGbGF0IERldmljZSBUcmVlIGJsb2IgKHRxbTg1NDguZHRiKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgoKY29tbWl0IDFjMmRlZmYyMmNkNmUyYmYwZTYxOGZkNmUwOWNhM2VlYzVhOGQwNTEKQXV0aG9yOiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KRGF0ZToJVGh1IEp1biA1IDEzOjEyOjA5IDIwMDggKzAyMDAKCiAgICBUUU04NXh4OiBOQU5EIHN1cHBvcnQgdmlhIGxvY2FsIGJ1cyBVUE1CCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIE5BTkQgRkxBU0ggb24gdGhlIFRRTTg1NDguIEl0IGlzIGRpc2FibGVkIGJ5CiAgICBkZWZhdWx0IGFuZCBjYW4gYmUgZW5hYmxlZCBmb3IgdGhlIFRRTTg1NDggbW9kdWxlcy4gSXQgaXMgbm93IGJhc2VkIG9uCiAgICB0aGUgcmUtd3JpdHRlbiBGU0wgTkFORCBVUE0gZHJpdmVyLiBBIHBhdGNoIGhhcyBiZWVuIHBvc3RlZCBlYXJsaWVyIHRvZGF5CiAgICB3aXRoIHRoZSBzdWJqZWN0OgoKICAgICJOQU5EIEZTTCBVUE06IGRyaXZlciByZS13cml0ZSB1c2luZyB0aGUgaHdjb250cm9sIGNhbGxiYWNrIgoKICAgIE5vdGUgdGhhdCB0aGUgUi9CIHBpbiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoYXQgbW9kdWxlIHJlcXVpcmluZyB0byB1c2UKICAgIHRoZSBzcGVjaWZpZWQgbWF4aW11bSBkZWxheSB0aW1lLgoKICAgIE5vdGU6IFdpdGggTkFORCBzdXBwb3J0IGVuYWJsZWQgdGhlIHNpemUgb2YgdGhlIFUtQm9vdCBpbWFnZSBleGNlZWRzCiAgICAyNTYgS0IgYW5kIFRFWFRfQkFTRSBtdXN0IHRoZXJlZm9yZSBiZSBzZXQgdG8gMHhmZmY4MDAwMCBpbiBjb25maWcubWssCiAgICBkb3VibGluZyB0aGUgaW1hZ2Ugc2l6ZSA6LSguCgogICAgU2lnbmVkLW9mZi1ieTogVGhvbWFzIFdhZWhuZXIgPHRob21hcy53YWVobmVyQHRxcy5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgoKY29tbWl0IGI5ZTgwNzhiYjNmM2M0ODExMWE3MDgxZTI3Mjc5OTM4YzNhNDQ1ZTEKQXV0aG9yOiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KRGF0ZToJVGh1IEp1biA1IDEzOjEyOjA4IDIwMDggKzAyMDAKCiAgICBUUU04NTQ4OiBQQ0kgZXhwcmVzcyBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIFBDSSBleHByZXNzIGNhcmRzLiBUaGUgYm9hcmQgc3VwcG9ydAogICAgbm93IHVzZXMgY29tbW9uIEZTTCBQQ0kgaW5pdCBjb2RlLCBmb3IgYm90aCwgUENJIGFuZCBQQ0llIG9uIGFsbAogICAgVFFNODV4eCBtb2R1bGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRob21hcyBXYWVobmVyIDx0aG9tYXMud2FlaG5lckB0cXMuZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KCmNvbW1pdCAxMjg3ZTBjNTVhMmVlMmM1NzVhYzljZThlNDMwMmNkNDA4NWJlODc2CkF1dGhvcjogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CkRhdGU6CVRodSBKdW4gNSAxMzoxMjowNyAyMDA4ICswMjAwCgogICAgVFFNODU0ODogQmFzaWMgc3VwcG9ydCBmb3IgdGhlIFRRTTg1NDggbW9kdWxlcwoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBzdXBwb3J0IGZvciB0aGUgVFFNODU0OCBtb2R1bGUgZnJvbSBUUS1Db21wb25lbnRzCiAgICAoaHR0cDovL3d3dy50cWMuZGUvKSBpbmNsdWRpbmcgRERSMiBTRFJBTSBpbml0aWFsaXNhdGlvbiBhbmQgc3VwcG9ydCBmb3IKICAgIGVUU0VDIDMgYW5kIDQKCiAgICBGdXJ0aGVybW9yZSBGbGFzaCBidWZmZXIgd3JpdGUgaGFzIGJlZW4gZW5hYmxlZCB0byBzcGVlZCB1cCBvdXRwdXQgdG8KICAgIHRoZSBGbGFzaCBieSBhcHByb3guIGEgZmFjdG9yIG9mIDEwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRob21hcyBXYWVobmVyIDx0aG9tYXMud2FlaG5lckB0cXMuZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KCmNvbW1pdCAyNTk5MTM1MzIwNGM3OGIwOTRjM2MxZmVjOTAxODJkY2Q2MDdhYjhmCkF1dGhvcjogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CkRhdGU6CVRodSBKdW4gNSAxMzoxMjowNiAyMDA4ICswMjAwCgogICAgVFFNODV4eDogU3VwcG9ydCBmb3IgRmxhdCBEZXZpY2UgVHJlZQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBMaW51eCBrZXJuZWxzIHVzaW5nIHRoZSBGbGF0IERldmljZSBUcmVlLgogICAgSXQgYWxzbyByZS1kZWZpbmVzIHRoZSBkZWZhdWx0IGVudmlyb25tZW50IHNldHRpbmdzIGZvciBib290aW5nIExpbnV4CiAgICB3aXRoIHRoZSBGRFQgYmxvYi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KCmNvbW1pdCBkOWVlODQzZDU0YzU0Nzc2ZTFmZGI4NjMzNmNlNTU0OTA2YTg3MzMxCkF1dGhvcjogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CkRhdGU6CVRodSBKdW4gNSAxMzoxMjowNSAyMDA4ICswMjAwCgogICAgVFFNODV4eDogU3VwcG9ydCBmb3IgSW50ZWwgODI1MjcgY29tcGF0aWJsZSBDQU4gY29udHJvbGxlcgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBpbml0aWFsaXphdGlvbiBvZiB0aGUgVVBNQyBSQU0gdG8gc3VwcG9ydCB1cCB0byB0d28KICAgIEludGVsIDgyNTI3IGNvbXBhdGlibGUgQ0FOIGNvbnRyb2xsZXIgb24gdGhlIFRRTTg1eHggbW9kdWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgV2FlaG5lciA8dGhvbWFzLndhZWhuZXJAdHFzLmRlPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+Cgpjb21taXQgNTE4ZDVjZmU3MjkxNjMyM2M3NDZhZjE2NDc3NjQ0NTk5MTRmNTU1ZgpBdXRob3I6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgpEYXRlOglUaHUgSnVuIDUgMTM6MTI6MDQgMjAwOCArMDIwMAoKICAgIFRRTTg1eHg6IEJ1Z2ZpeCBpbiB0aGUgU0RSQU0gaW5pdGlhbGlzYXRpb24KCiAgICBUaGUgQ1MwX0JORFMgcmVnaXN0ZXIgaXMgbm93IHNldCBhY2NvcmRpbmcgdG8gdGhlIGRldGVjdGVkCiAgICBtZW1vcnkgc2l6ZS4KCiAgICBTaWduZWQtb2ZmLWJ5IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IDQ1ZGVlMmU2MjBjY2VjNmFjN2IzNTQ4ZmU4OTc5YTM0ZmQwMzBlNWQKQXV0aG9yOiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KRGF0ZToJVGh1IEp1biA1IDEzOjEyOjAzIDIwMDggKzAyMDAKCiAgICBUUU04NXh4OiBGaXggY2hpcCBzZWxlY3QgY29uZmlndXJhdGlvbiBmb3Igc2Vjb25kIEZMQVNIIGJhbmsKCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSByZS1jYWxjdWxhdGlvbiBvZiB0aGUgYXV0b21hdGljIGNoaXAgc2VsZWN0CiAgICBjb25maWd1cmF0aW9uIGZvciBib2FyZHMgd2l0aCB0d28gcG9wdWxhdGVkIEZMQVNIIGJhbmtzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IDQ2MzQ2ZjI3Y2RhNmZkMDI1YTQ5NmJkZThmMmQ0YWVlZTA0YWNhNWYKQXV0aG9yOiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KRGF0ZToJVGh1IEp1biA1IDEzOjEyOjAyIDIwMDggKzAyMDAKCiAgICBUUU04NXh4OiBTdXBwb3J0IGZvciBTcGFuc2lvbiAnTicgdHlwZSBmbGFzaGVzIGFkZGVkCgogICAgVGhlICdOJyB0eXBlIFNwYW5zaW9uIGZsYXNoZXMgKFMyOUdMeHh4TiBzZXJpZXMpIGhhdmUgYmlnZ2VyIHNlY3RvcnMsCiAgICB0aGFuIHRoZSBmb3JtZXJseSB1c2VkICdNJyB0eXBlcyAoUzI5R0x4eHhNIHNlcmllcyksIHNvIHRoZSBmbGFzaCBsYXlvdXQKICAgIG5lZWRzIHRvIGJlIGNoYW5nZWQgLT4gbmV3IHN0YXJ0IGFkZHJlc3Mgb2YgdGhlIGVudmlyb25tZW50LiBUaGUgbWFjcm8KICAgIGRlZmluaXRpb24gQ09ORklHX1RRTV9GTEFTSF9OX1RZUEUgaXMgdW5kZWZpbmVkIGJ5IGRlZmF1bHQgYW5kIG11c3QgYmUKICAgIGRlZmluZWQgZm9yIGJvYXJkcyB3aXRoICdOJyB0eXBlIGZsYXNoZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KCmNvbW1pdCA1ZDViZDgzOGY3NmVhZGUyMmMwZWE0MGE1MDAzODlmOTI0ZDBkYTM2CkF1dGhvcjogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CkRhdGU6CVRodSBKdW4gNSAxMzoxMjowMSAyMDA4ICswMjAwCgogICAgVFFNODV4eDogRml4IENQTSBwb3J0IHBpbiBjb25maWd1cmF0aW9uCgogICAgRG8gbm90IGNvbmZpZ3VyZSBwb3J0IHBpbnMgUEQzMC9QRDMxIGFzIFNDQzEgVHhEL1J4RCBleGNlcHQgZm9yIHRoZSBUUU04NTYwCiAgICBib2FyZC4gT24gdGhlIG90aGVyIFRRTTg1eHggYm9hcmRzIChUUU04NTQxIGFuZCBUUU04NTU1KSBTQ0MxIGlzIG5vdCB1c2VkCiAgICBhcyBzZXJpYWwgaW50ZXJmYWNlIGFueXdheS4gV29yc2UsIG9uIHNvbWUgYm9hcmQgdmFyaWFudHMgY29uZmlndXJpbmcgdGhlCiAgICBwaW5zIGZvciBTQ0MxIGxlYWRzIHRvIHNob3J0IGNpcmN1aXRzIChmb3IgZXhhbXBsZSBvbiB0aGUgVFFNODU0MS1CRykuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgYjk5YmExNjc5ZThjZDUxYjAyM2U2NzA5OGM4OWU2MDZlNDcxMzdkMgpBdXRob3I6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgpEYXRlOglUaHUgSnVuIDUgMTM6MTI6MDAgMjAwOCArMDIwMAoKICAgIFRRTTg1eHg6IFZhcmlvdXMgY29kaW5nIHN0eWxlIGZpeGVzCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+Cgpjb21taXQgYWU5ZTk3ZmE5NmY2NDNjOGJhMmI2NjZiMDZhMDI2Y2M4NzE3ZWIwMApBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVR1ZSBKdW4gMTAgMjI6MTU6NTggMjAwOCAtMDQwMAoKICAgIGxpYmZkdDogTW92ZSB0aGUgd29ya2luZ19mZHQgcG9pbnRlciB0byBjbWRfZmR0LmMKCiAgICBUaGUgd29ya2luZ19mZHQgcG9pbnRlciB3YXMgZGVjbGFyZWQgaW4gY29tbW9uL2ZkdF9zdXBwb3J0LmMgYnV0IHdhcwogICAgbm90IHVzZWQgdGhlcmUuICBNb3ZlIGl0IHRvIGNvbW1vbi9jbWRfZmR0LmMgd2hlcmUgaXQgaXMgdXNlZCAoaXQgaXMKICAgIGFsc28gdXNlZCBpbiBsaWJfcHBjL2Jvb3RtLmMpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgZTQ4OWI5YzA3OGUyMmIwZDllNzVmMDAyY2QyYTFiZDk2N2U4OGY1ZQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdW4gMTAgMTE6MDY6MTcgMjAwOCAtMDUwMAoKICAgIGZkdDogdW5zaGFkb3cgZ2xvYmFsIHdvcmtpbmcgZmR0IHZhcmlhYmxlCgogICAgZGlmZmVyZW50aWF0ZSB3aXRoIGxvY2FsIHZhcmlhYmxlcyBvZiB0aGUgc2FtZSBuYW1lIGJ5IHJlbmFtaW5nIHRoZQogICAgZ2xvYmFsICdmZHQnIHZhcmlhYmxlICd3b3JraW5nX2ZkdCcuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlMWViMGUyNWQ5ZDhmZDhlZmRmYjkzZjY3MGE0MTc2NjNmMzg2MDIyCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDEwIDE4OjQ5OjM0IDIwMDggLTA1MDAKCiAgICBzb2NyYXRlczogRml4IFBDSSBjbGsgZml4IHBhdGNoCgogICAgVGhlIHN1Ym1pdHRlZCBwYXRjaCBzZWVtcyB0byBoYXZlIGJlZW4gbW9yZSB1cC10by1kYXRlLCBidXQgYW4gb2xkZXIgcGF0Y2ggd2FzCiAgICBhbHJlYWR5IGluIHRoZSByZXBvc2l0b3J5LglUaGlzIHBhdGNoIGVuY29tcGFzc2VzIHRoZSBkaWZmZXJlbmNlcwoKICAgIFRha2VuIGVudGlyZWx5IGZyb20gU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTc1YTU3ZWY2ZTRiNjEzYzgxNDM0OTcxZTk2ZWQ3MGNmOWVjOWJhMApBdXRob3I6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgpEYXRlOglUaHUgSnVuIDUgMTM6MDI6MjkgMjAwOCArMDIwMAoKICAgIE5BTkQgRlNMIFVQTTogZHJpdmVyIHJlLXdyaXRlIHVzaW5nIHRoZSBod2NvbnRyb2wgY2FsbGJhY2sKCiAgICBUaGlzIGlzIGEgcmUtd3JpdGUgb2YgdGhlIE5BTkQgRlNMIFVQTSBkcml2ZXIgdXNpbmcgdGhlIG1vcmUgdW5pdmVyc2FsCiAgICBod2NvbnRyb2wgY2FsbGJhY2sgKGluc3RlYWQgb2YgdGhlIGNtZGZ1bmMgY2FsbGJhY2spLiBIZXJlIGlzIGEgYnJpZWYKICAgIGxpc3Qgb2YgZnVyaGVyIG1vZGlmaWNhdGlvbnM6CgogICAgLSBGb3IgdGhlIHRpbWUgYmVpbmcsIHRoZSBVUE0gc2V0dXAgd3JpdGluZyB0aGUgVVBNIGFycmF5IGhhcyBiZWVuCiAgICAgIHJlbW92ZWQgZnJvbSB0aGUgZHJpdmVyIGFuZCBtdXN0IG5vdyBiZSBkb25lIGJ5IHRoZSBib2FyZCBzcGVjaWZpYwogICAgICBjb2RlLgoKICAgIC0gVGhlIGJ1cyB3aWR0aCBkZWZpbml0aW9uIGluICJzdHJ1Y3QgZnNsX3VwbV9uYW5kIiBpcyBub3cgaW4gYml0cyB0bwogICAgICBjb21wbHkgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBMaW51eCBkcml2ZXIgYW5kIDgsIDE2IGFuZCAzMiBiaXQKICAgICAgYWNjZXNzZXMgYXJlIHN1cHBvcnRlZC4KCiAgICAtIGNoaXAtPmRldl9yZWFkIGlzIG9ubHkgc2V0IGlmIGZ1bi0+ZGV2X3JlYWR5ICE9IE5VTEwsIHdoaWNoIGlzCiAgICAgIHJlcXVpcmVkIGZvciBib2FyZHMgbm90IGNvbm5lY3RpbmcgdGhlIFIvQiBwaW4uCgogICAgLSBBIGZldyBpc3N1ZSBoYXZlIGJlZW4gZml4ZWQgd2l0aCBNeE1SIGJpdCBtYW5pcHVsYXRpb24gbGlrZSBpbiB0aGUKICAgICAgY29ycmVzcG9uZGluZyBMaW51eCBkcml2ZXIuCgogICAgTm90ZTogSSB0aGluayB0aGUgImlvX2FkZHIiIGZpZWxkIG9mICJzdHJ1Y3QgZnNsX3VwbSIgY291bGQgYmUgcmVtb3ZlZAoJICBhcyB3ZWxsLCBiZWNhdXNlIHRoZSBhZGRyZXNzIGlzIGFscmVhZHkgZGV0ZXJtaW5lZCBieQoJICAibmFuZC0+SU9fQUREUl9bUlddIiwgYnV0IEknbSBub3QgMTAwJSBzdXJlLgoKICAgIFRoaXMgcGF0Y2ggaGFzIGJlZW4gdGVzdGVkIG9uIGEgVFFNODU0OCBtb2R1bGVzIHdpdGggdGhlIE5BTkQgY2hpcAogICAgTWljcm9uIE1UMjlGOEcwOEZBQldQLgoKICAgIFRoaXMgcGF0Y2ggaXMgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBwYXRjaGVzIHBvc3RlZCB0byB0aGlzIGxpc3QgYSBmZXcKICAgIG1pbnV0ZXMgYWdvOgoKICAgICAgUFBDOiBhZGQgYWNjZXNzb3IgbWFjcm9zIHRvIGNsZWFyIGFuZCBzZXQgYml0cyBpbiBvbmUgc2hvdAogICAgICA4M3h4Lzg1eHgvODZ4eDogYWRkIG1vcmUgTXhNUiBsb2NhbCBidXMgZGVmaW5pdGlvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KICAgIEFja2VkLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCA2YmVlY2ZiYjU0Mjk5MmVlZGU1ODMxMjQwY2Q1ODY3ODI3NDY4M2E5CkF1dGhvcjogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CkRhdGU6CVRodSBKdW4gNSAxMzoxMTo1OSAyMDA4ICswMjAwCgogICAgTVBDODV4eDogQmVhdXRpZnkgYm9vdCBvdXRwdXQgb2YgTDIgY2FjaGUgY29uZmlndXJhdGlvbgoKICAgIFRoZSBib290IG91dHB1dCBpcyBub3cgYWxpZ25lZCBwb3Blcmx5IHdpdGggb3RoZXIgYm9vdCBvdXRwdXQKICAgIGxpbmVzLCBlLmcuOgoKICAgICAgRkxBU0g6IDEyOCBNQgogICAgICBMMjogICAgNTEyIEtCIGVuYWJsZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KCmNvbW1pdCAzOTg0MTUxMTRmMGE3MDUxNjNhMTQ1NDNlOWZlZjAzZjczNGIxZmZhCkF1dGhvcjogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CkRhdGU6CVdlZCBKdW4gNCAxMjo0NToyMiAyMDA4ICswMjAwCgogICAgUFBDOiBhZGQgYWNjZXNzb3IgbWFjcm9zIHRvIGNsZWFyIGFuZCBzZXQgYml0cyBpbiBvbmUgc2hvdAoKICAgIFBQQzogYWRkIGFjY2Vzc29yIG1hY3JvcyB0byBjbGVhciBhbmQgc2V0IGJpdHMgaW4gb25lIHNob3QKCiAgICBUaGlzIHBhdGNoIGFkZHMgbWFjcm9zIGZyb20gbGludXgvaW5jbHVkZS9hc20tcG93ZXJwYy9pby5oIHRvIGNsZWFyIGFuZAogICAgc2V0IGJpdHMgaW4gb25lIHNob3QgdXNpbmcgdGhlIGluX2JlMzIsIG91dF9iZTMyLCBldGMuIGFjY2Vzc29yIGZ1bmN0aW9ucy4KICAgIFRoZXkgYXJlIHZlcnkgaGFuZHkgdG8gbWFuaXB1bGF0ZSBiaXRzIGl0IEkvTyByZWdpc3RlcnMuCgogICAgVGhpcyBwYXRjaCBpcyByZXF1aXJlZCBmb3IgbXkgZm9ydGhjb21pbmcgRlNMIE5BTkQgVVBNIGRyaXZlciByZS13cml0ZSBhbmQKICAgIHRoZSBzdXBwb3J0IGZvciB0aGUgVFFNODU0OCBtb2R1bGUuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+Cgpjb21taXQgNDY3Nzk4OGM3ZWRjMDcwYzM3ODZkM2RiNzk5NGFiZWNhM2FiODJhMApBdXRob3I6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgpEYXRlOglXZWQgSnVuIDQgMTM6NTI6MTcgMjAwOCArMDIwMAoKICAgIFRRTTogbW92ZSBUUU0gYm9hcmRzIHRvIGJvYXJkL3RxYwoKICAgIE1vdmUgYWxsIFRRTSBib2FyZCBkaXJlY3RvcmllcyB0byB0aGUgdmVuZG9yIHNwZWNpZmljIGRpcmVjdG9yeSAidHFjIgogICAgZm9yIG1vZHVsZXMgZnJvbSBUUS1Db21wb25lbnRzIEdtYkggKGh0dHA6Ly93d3cudHFjLmRlKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KCmNvbW1pdCA2ZmFiMmZlNzJjYTViZjk1MjgwY2Q1MmNkZjM3OGFmM2U1MDZlYjUwCkF1dGhvcjogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CkRhdGU6CU1vbiBKdW4gMiAxMjowOTozMCAyMDA4ICswMjAwCgogICAgODN4eC84NXh4Lzg2eHg6IGFkZCBtb3JlIE14TVIgbG9jYWwgYnVzIGRlZmluaXRpb25zCgogICAgODN4eC84NXh4Lzg2eHg6IGFkZCBtb3JlIE14TVIgbG9jYWwgYnVzIGRlZmluaXRpb25zCgogICAgVGhpcyBwYXRjaCBhZGRzIG1vcmUgbWFjcm8gZGVmaW5pdGlvbnMgZm9yIHRoZSBVUE0gTWFjaGluZSBNb2RlIFJlZ2lzdGVycwogICAgVGhleSBhcmUgY29waWVkIGZyb20gImluY2x1ZGUvbXBjODJ4eC5oIiB0byBzaW1wbGlmeSB0aGUgbWVyZ2Ugb2YgYWxsIDh4eHgKICAgIGNvbW1vbiBsb2NhbCBidXMgZGVmaW5pdGlvbnMgaW50byBpbmNsdWRlL2FzbS1wcGMvZnNsX2xiYy5oLiBUaGV5IGFyZQogICAgcmVxdWlyZWQgZm9yIG15IGZvcnRoY29taW5nIEZTTCBOQU5EIFVQTSBkcml2ZXIgcmUtd3JpdGUgYW5kIHRoZSBzdXBwb3J0CiAgICBmb3IgdGhlIFRRTTg1NDggbW9kdWxlLgoKICAgIFRoaXMgcGF0Y2ggaXMgYmFzZWQgb24gdGhlIGZvbGxvd2luZyB0d28gcGF0Y2hlcyBmcm9tIEFudG9uIFZvcm9udHNvdjoKCiAgICBodHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vdS1ib290LXVzZXJzQGxpc3RzLnNvdXJjZWZvcmdlLm5ldC9tc2cwNjUxMS5odG1sCiAgICBodHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vdS1ib290LXVzZXJzQGxpc3RzLnNvdXJjZWZvcmdlLm5ldC9tc2cwNjU4Ny5odG1sCgogICAgSSBsZWF2ZSBjb2Rpbmcgc3R5bGUgdmlvbGF0aW9uIGZpeGVzLCBjb2RlIGJlYXV0aWZpY2F0aW9uIGFuZCBuYW1lCiAgICBjb3JyZWN0aW9ucyB0byBzb21lYm9keSBlbHNlIDstKC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KCmNvbW1pdCBjOGM1ZmMyNjZlNDQ5OWUyODNjMjkzY2NiOTcyODYzMTU2YWE0MTM0CkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CVRodSBNYXkgMjkgMTg6MTQ6NTYgMjAwOCArMDQwMAoKICAgIDgzeHgvODV4eDogZnVydGhlciBsb2NhbGJ1cyBjbGVhbnVwcwoKICAgIE1lcmdlIG1wYzg1eHguaCdzIExCQyBkZWZpbmVzIHRvIGZzbF9sYmMuaC4gQWxzbywgYWRvcHQgQUNTIG5hbWVzCiAgICBmcm9tIG1wYzg1eHguaCwgc28gQUNTXzBiMTAgcmVuYW1lZCB0byBBQ1NfRElWNCwgQUNTXzBiMTEgdG8gQUNTX0RJVjIuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+Cgpjb21taXQgNDJkYmQ2NjdjODhkNDk2ODgyZDUzZTIyNjU2ZTg5YjY1NDIwNTQ5MgpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglXZWQgTWF5IDI4IDE4OjIwOjE1IDIwMDggKzA0MDAKCiAgICA4M3h4Lzg1eHgvODZ4eDogZmFjdG9yIG91dCBGcmVlc2NhbGUgTG9jYWxidXMgZGVmaW5lcyBvdXQgb2YgbXBjODN4eC5oCgogICAgVGhpcyBwYXRjaCBtb3ZlcyBGcmVlc2NhbGUgTG9jYWxidXMgZGVmaW5lcyBvdXQgb2YgbXBjODN4eC5oLCBzbyB3ZSBjb3VsZAogICAgdXNlIGl0IG9uIE1QQzg1eHggYW5kIE1QQzg2eHggcHJvY2Vzc29ycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCA3MzBiMmZjZjZmY2Q5ZWVjM2VhODZmYmIwODdjM2Y5OGFhMjNhNzY5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE1heSAyOSAxMToyMjowNiAyMDA4IC0wNTAwCgogICAgODV4eDogQWRkIHNldHRpbmcgb2YgY2FjaGUgcHJvcHMgaW4gdGhlIGRldmljZSB0cmVlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNGRiZGI3NjgxZTI0MzQzMTUzMGRmMDcyNTYyNzE5MmEwYzRhZWZkYQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBKdW4gMTAgMTY6NTM6NDYgMjAwOCAtMDUwMAoKICAgIDg1eHg6IGV4cG9zZSBjcHUgaWRlbnRpZmljYXRpb24KCiAgICBUaGUgY3VycmVudCBjcHUgaWRlbnRpZmljYXRpb24gY29kZSBpcyB1c2VkIGp1c3QgdG8gcmV0dXJuIHRoZSBuYW1lCiAgICBvZiB0aGUgcHJvY2Vzc29yIGF0IGJvb3QuICBUaGVyZSBhcmUgc29tZSBvdGhlciBsb2NhdGlvbnMgdGhhdCB0aGUgbmFtZQogICAgaXMgdXNlZnVsIChkZXZpY2UgdHJlZSBzZXR1cCkuICBFeHBvc2UgdGhlIGZ1bmN0aW9uYWxpdHkgdG8gb3RoZXIgYml0cwogICAgb2YgY29kZS4KCiAgICBBbHNvLCBkcm9wIHRoZSAnRScgc3VmZml4IGFuZCBhZGQgaXQgb24gYnkgbG9va2luZyBhdCB0aGUgU1ZSIHZlcnNpb24KICAgIHdoZW4gd2UgcHJpbnQgdGhpcyBvdXQuICBUaGlzIGlzIG1haW5seSB0byBhbGxvdyB0aGUgbW9zdCBmbGV4aWJsZSB1c2UKICAgIG9mIHRoZSBuYW1lLiAgVGhlIGRldmljZSB0cmVlIGNvZGUgdGVuZHMgdG8gbm90IGNhcmUgYWJvdXQgdGhlICdFJyBzdWZmaXguCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAyMzI5ZmUxMTNkODQ3ZTQzY2NhOGU0YTBlNGVkZDYxM2I1MGI4NDkyCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biAxMCAxMzoyNToyNCAyMDA4IC0wNTAwCgogICAgbXBjODN4eDogTVZCTE03OiBtaW5vciBidWlsZCBmaXh1cHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGExMjkzZTU0OWI1NmRhMTM1ZWYzMmZmY2E1YjlkMzVhMTZhYTY4MDIKQXV0aG9yOiBBbmRyZSBTY2h3YXJ6IDxhbmRyZS5zY2h3YXJ6QG1hdHJpeC12aXNpb24uZGU+CkRhdGU6CVR1ZSBKdW4gMTAgMDk6MTQ6MDUgMjAwOCArMDIwMAoKICAgIGFkZCBNUEM4MzQzIGJhc2VkIGJvYXJkIG12Qmx1ZUxZTlgtTTcgKGJvYXJkK21ha2UgZmlsZXMpCgogICAgQWRkIE1QQzgzNDMgYmFzZWQgYm9hcmQgbXZCbHVlTFlOWC1NNy4KICAgIEl0J3MgYSBzaW5nbGUgYm9hcmQgc3RlcmVvIGNhbWVyYSBzeXN0ZW0uCiAgICBQbGVhc2UgcmVhZCBkb2MvUkVBRE1FLm12YmxtNyBmb3IgZGV0YWlscy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZSBTY2h3YXJ6IDxhbmRyZS5zY2h3YXJ6QG1hdHJpeC12aXNpb24uZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGMwMDViOTM5MjViYTQ5ZjA3ZGEyYWE3NDg1Mjc5OTZkOTI3ZTE3MmYKQXV0aG9yOiBBbmRyZSBTY2h3YXJ6IDxhbmRyZS5zY2h3YXJ6QG1hdHJpeC12aXNpb24uZGU+CkRhdGU6CVR1ZSBKdW4gMTAgMDk6MTM6MTYgMjAwOCArMDIwMAoKICAgIGFkZCBNUEM4MzQzIGJhc2VkIGJvYXJkIG12Qmx1ZUxZTlgtTTcgKGRvYytjb25maWcpCgogICAgQWRkIE1QQzgzNDMgYmFzZWQgYm9hcmQgbXZCbHVlTFlOWC1NNy4KICAgIEl0J3MgYSBzaW5nbGUgYm9hcmQgc3RlcmVvIGNhbWVyYSBzeXN0ZW0uCiAgICBQbGVhc2UgcmVhZCBkb2MvUkVBRE1FLm12YmxtNyBmb3IgZGV0YWlscy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZSBTY2h3YXJ6IDxhbmRyZS5zY2h3YXJ6QG1hdHJpeC12aXNpb24uZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY5MDIzYWZiZGZkOWYyN2U3YzM4ZjNjY2U5NjU3NDZlNTZkNjJkZDMKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJVGh1IE1heSAyOSAxODoxNDo1NiAyMDA4ICswNDAwCgogICAgODN4eC84NXh4OiBmdXJ0aGVyIGxvY2FsYnVzIGNsZWFudXBzCgogICAgbW92ZSB0aGUgQlJ4XyogYW5kIE9SeF8qIGxlZnQgYmVoaW5kIGluIG1wYzg1eHguaAoKICAgIFRoZSBzYW1lIGlzIG5lZWRlZCBmb3IgbXBjOHh4LmggYW5kIG1wYzgyNjAuaCAoZGVmaW5lcyBhcmUgYWxtb3N0CiAgICB0aGUgc2FtZSwganVzdCBmZXcgZGlmZmVyZW5jZXMgd2hpY2ggbmVlZHMgc29tZSBhdHRlbnRpb24gdGhvdWdoKS4KCiAgICBCdXQgdGhlIGJhZCBuZXdzIGZvciBtcGM4eHggYW5kIG1wYzgyNjAgaXMgdGhhdCB0aGVyZSBhcmUgYSBsb3Qgb2YgdXNlcnMKICAgIG9mIHRoZXNlIGRlZmluZXMuIFNvIHRoaXMgY2xlYW51cCBJJ2xsIGxlYXZlIGZvciB0aGUgImJldHRlciB0aW1lcyIuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJmMzBiYjFmN2M5NTRkNzg1NWQ5YjIzNjI0YjMzYjAwYzUwYjQ2OTcKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJV2VkIE1heSAyOCAxODoyMDoxNSAyMDA4ICswNDAwCgogICAgODN4eC84NXh4Lzg2eHg6IGZhY3RvciBvdXQgRnJlZXNjYWxlIExvY2FsYnVzIGRlZmluZXMgb3V0IG9mIG1wYzgzeHguaAoKICAgIFRoaXMgcGF0Y2ggbW92ZXMgRnJlZXNjYWxlIExvY2FsYnVzIGRlZmluZXMgb3V0IG9mIG1wYzgzeHguaCwgc28gd2UgY291bGQKICAgIHVzZSBpdCBvbiBNUEM4NXh4IGFuZCBNUEM4Nnh4IHByb2Nlc3NvcnMuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkODJiNGZjMGNlOGNjYTk1ZTg1N2ZjNTEwMjJlODQxY2IyZGJlZTZhCkF1dGhvcjogVG9yIEtyaWxsIDx0b3JAZXhjaXRvLmNvbT4KRGF0ZToJTW9uIEp1biAyIDE1OjA5OjMwIDIwMDggKzAyMDAKCiAgICBBZGQgbWlzc2luZyBDU0NPTkZJR19CQU5LX0JJVF8zIGRlZmluZSB0byBtcGM4M3h4LmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUb3IgS3JpbGwgPHRvckBleGNpdG8uY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzYjkwNGNjYjkzYzMxOTY3MjdlMmU5ODcwY2IxZGY5MDNjYWIxOWFkCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJTW9uIEp1biA5IDIzOjM3OjQ0IDIwMDggKzA5MDAKCiAgICBuZXQ6IENvbmRpdGlvbmFsIENPQkpTIGluY2x1c2lvbiBvZiBuZXR3b3JrIGRyaXZlcnMKCiAgICBSZXBsYWNlIENPQkpTLXkgd2l0aCBhcHByb3ByaWF0ZSBkcml2ZXIgY29uZmlnIG5hbWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDJmYjY5OGJmNTBmNGFmZjI0ODU1ODFhMTJmYTYzNGEwN2MwNDBlNGEKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglNb24gSnVuIDkgMjE6MDI6MTcgMjAwOCAtMDQwMAoKICAgIFVzZSBzdHJuY21wKCkgZm9yIHRoZSBmZHQgY29tbWFuZAoKICAgIENsZWFuZXIgdGhhbiBkb2luZyBtdWx0aXBsZSBjb25kaXRpb25hbHMgb24gY2hhcmFjdGVycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDQ3YWJlOGFiMjkwZDI3MjFhOGVlYWRmZjY1YjkzOWU2YWY4YzAxYjAKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgSnVuIDcgMTI6MjU6MDUgMjAwOCAtMDQwMAoKICAgIFRoZSBmZHQgYm9hcmRzZXR1cCBjb21tYW5kIGNyaXRlcmlhIHdhcyBub3QgdW5pcXVlCgogICAgSXQgd2FzIGNoZWNraW5nIGp1c3QgZm9yICJiIiwgd2hpY2ggaXMgbm90IHVuaXF1ZSB3aXRoIHJlc3BlY3QgdG8gdGhlCiAgICAiYm9vdCIgY29tbWFuZC4gIENoYW5nZSB0byBjaGVjayBmb3IgImJvYSJbcmRzZXR1cF0uCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCAyZjA4YmZhOTUyNmJhZTRmNDYxZTA0MzUzMGNmYjkwM2ZlYzBkMjczCkF1dGhvcjogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+CkRhdGU6CVR1ZSBNYXkgMjAgMTc6MTk6MTEgMjAwOCArMTAwMAoKICAgIGxpYmZkdDogU2V2ZXJhbCBjbGVhbnVwcyB0byBwYXJhbWV0ZXIgY2hlY2tpbmcKCiAgICBUaGlzIHBhdGNoIG1ha2VzIGEgY291cGxlIG9mIHNtYWxsIGNsZWFudXBzIHRvIHBhcmFtZXRlciBjaGVja2luZyBvZgogICAgbGliZmR0IGZ1bmN0aW9ucy4KCgktIEluIHNldmVyYWwgZnVuY3Rpb25zIHdoaWNoIHRha2UgYSBub2RlIG9mZnNldCwgd2UgdXNlIGFuCiAgICBpZGlvbSBpbnZvbHZpbmcgZmR0X25leHRfdGFnKCkgZmlyc3QgdG8gY2hlY2sgdGhhdCB3ZSBoYXZlIGluZGVlZCBiZWVuCiAgICBnaXZlbiBhIG5vZGUgb2Zmc2V0LiAgVGhpcyBwYXRjaCBhZGRzIGEgaGVscGVyIGZ1bmN0aW9uCiAgICBfZmR0X2NoZWNrX25vZGVfb2Zmc2V0KCkgdG8gZW5jYXBzdWxhdGUgdGhpcyB1c2FnZSBvZiBmZHRfbmV4dF90YWcoKS4KCgktIEluIGZkdF9ydy5jIGluIHNldmVyYWwgcGxhY2VzIHdlIGhhdmUgdGhlIGV4cGFuZGVkIHZlcnNpb24KICAgIG9mIHRoZSBSV19DSEVDS19IRUFERVIoKSBtYWNybyBmb3Igbm8gcGFydGljdWxhciByZWFzb24uICBUaGlzIHBhdGNoCiAgICByZXBsYWNlcyB0aG9zZSBpbnN0YW5jZXMgd2l0aCBhbiBpbnZvY2F0aW9uIG9mIHRoZSBtYWNybzsgdGhhdCdzIHdoYXQKICAgIGl0J3MgZm9yLgoKCS0gSW4gZmR0X3N3LmMgd2UgcmVuYW1lIHRoZSBjaGVja19oZWFkZXJfc3coKSBmdW5jdGlvbiB0bwogICAgc3dfY2hlY2tfaGVhZGVyKCkgdG8gbWF0Y2ggdGhlIGFuYWxnb3VzIGZ1bmN0aW9uIGluIGZkdF9ydy5jLCBhbmQgd2UKICAgIHByb3ZpZGUgYW4gU1dfQ0hFQ0tfSEVBREVSKCkgd3JhcHBlciBtYWNybyBhcyBSV19DSEVDS19IRUFERVIoKQogICAgZnVuY3Rpb25zIGluIGZkdF9ydy5jCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+Cgpjb21taXQgZmVjNmQ5ZWU3YzEwNDQzZjY1Y2UxNzg4ZWY4MTg5MTkxNjdiYmYyZQpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVR1ZSBKdW4gMyAyMDozNDo0NSAyMDA4IC0wNDAwCgogICAgUmVtb3ZlIHRoZSBkZXByZWNhdGVkIENPTkZJR19PRl9GTEFUX1RSRUUKCiAgICBVc2UgQ09ORklHX09GX0xJQkZEVCBpbnN0ZWFkIHRvIHN1cHBvcnQgZmxhdHRlbmVkIGRldmljZSB0cmVlcy4gIEl0IGlzCiAgICBjbGVhbmVyLCBoYXMgYmV0dGVyIGZ1bmN0aW9uYWxpdHksIGFuZCBpcyBiZXR0ZXIgc3VwcG9ydGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgNjJiY2RkYTI5M2VmYTc1MmY4MjgxZmJkOWRhMDM4MjJiMjdjZTgyZgpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVR1ZSBKdW4gMyAyMDoyNjoyOSAyMDA4IC0wNDAwCgogICAgQ2hhbmdlIHRoZSBzdHh4c3QgdG8gQ09ORklHX09GX0xJQkZEVAoKICAgIFRoaXMgd2FzIGNvbmZpZ3VyZWQgdG8gdXNlIHRoZSBkZXByZWNhdGVkIENPTkZJR19PRl9GTEFUX1RSRUUsIGNoYW5nZQogICAgdG8gQ09ORklHX09GX0xJQkZEVC4KCiAgICBXQVJOSU5HOiBJdCBhcHBlYXJzIHRoYXQgdGhpcyBib2FyZCBsb3N0IGl0cyBhYmlsaXR5IHRvIGJvb3QgdmlhIGEKICAgIGZsYXR0ZW5lZCBkZXZpY2UgdHJlZSBwcmlvciB0byB0aGlzIGNoYW5nZXNldC4KCiAgICBXQVJOSU5HOiBUaGlzIGNvbnZlcnNpb24gd2FzIHVudGVzdGVkIGJlY2F1c2UgSSBkbyBub3QgaGF2ZSBhIGJvYXJkIHRvCiAgICB0ZXN0IGl0IG9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgNTg5YzA0MjcxZDEyOTcyOWE4YjAxMzkxNDUzODUxYWI5Y2M0MDY5YwpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVR1ZSBKdW4gMyAyMDoyNDo1OCAyMDA4IC0wNDAwCgogICAgQ29udmVydCBtcGM3NDQ4aHBjMiB0byBDT05GSUdfT0ZfTElCRkRUCgogICAgVGhpcyB3YXMgY29uZmlndXJlZCB0byB1c2UgdGhlIGRlcHJlY2F0ZWQgQ09ORklHX09GX0ZMQVRfVFJFRSwgY2hhbmdlCiAgICB0byBDT05GSUdfT0ZfTElCRkRULgoKICAgIFdBUk5JTkc6IFRoaXMgY29udmVyc2lvbiBpcyB1bnRlc3RlZCBiZWNhdXNlIEkgZG8gbm90IGhhdmUgYSBib2FyZCB0bwogICAgdGVzdCBpdCBvbi4KCiAgICBOT1RFOiBUaGUgRkRUIGJsb2IgKERUUykgbXVzdCBoYXZlIGFuIC9hbGlhc2VzL2V0aGVybmV0MCBhbmQgKG9wdGlvbmFsbHkpCiAgICAvYWxpYXNlcy9ldGhlcm5ldDEgcHJvcGVydHkgZm9yIHRoZSBldGhlcm5ldCB0byB3b3JrLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgZWUxZTM1YmVkZTkxZGViYzhiZmY5YjAyZjc1NTc0NDg2MDMzYjY1MgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBNYXkgMjkgMDE6MjE6MjQgMjAwOCAtMDUwMAoKICAgIDg1eHg6IE9ubHkgdXNlIFBPUlBMTFNSW0REUl9SYXRpb10gb24gcGxhdGZvcm1zIHRoYXQgZGVmaW5lIGl0CgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAzYjk1MTlmYzUwODAyNDM2ZTQxN2M4MzllNjlkZjdiMjAxNmNhZGU1CkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXkgMTQgMTM6MTA6MDQgMjAwOCAtMDUwMAoKICAgIE1QQzg1eHg6IENoYW5nZSB0cmFwcy5jIHRvIG5vdCByZWZlcmVuY2Ugbm9uLWFkZHJlc3NhYmxlIG1lbW9yeQoKICAgIEN1cnJlbnRseSwgRU5EX09GX1JBTSBpcyB1c2VkIGJ5IHRoZSB0cmFwIGNvZGUgdG8gZGV0ZXJtaW5lIGlmCiAgICB3ZSBzaG91bGQgYXR0ZW1wdCB0byBhY2Nlc3MgdGhlIHN0YWNrIHBvaW50ZXIgb3Igbm90LiBIb3dldmVyLAogICAgb24gc3lzdGVtcyB3aXRoIGEgbG90IG9mIFJBTSwgb25seSBhIHN1YnNldCBvZiB0aGUgUkFNIGlzCiAgICBndWFyYW50ZWVkIHRvIGJlIG1hcHBlZCBpbiBhbmQgYWNjZXNzaWJsZS4JQ2hhbmdlIEVORF9PRl9SQU0KICAgIHRvIHVzZSBnZXRfZWZmZWN0aXZlX21lbXNpemUoKSBpbnN0ZWFkIG9mIHVzaW5nIHRoZSByYXcgcmFtCiAgICBzaXplIG91dCBvZiB0aGUgYmQuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2ZhZGRhZWNlYTUyZjU4NWY1MzhmZGY5YzJlNjFmODVhNzg5YjE5YwpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KRGF0ZToJTW9uIEp1biA5IDEzOjM5OjU3IDIwMDggKzA5MDAKCiAgICBzaDogUmVuZXNhcyBTb2x1dGlvbnMgU0g3NzYzUkRQIGJvYXJkIHN1cHBvcnQKCiAgICBTSDc3NjNSRFAgaGFzIFNDSUYsIE5PUiBGbGFzaCwgRXRoZXJuZXQsIFVTQiBob3N0LCBMQ0RDIGFuZCBNTUMuCiAgICBJbiB0aGlzIHBhdGNoLCBzdXBwb3J0IFNDSUYsIE5PUiBGbGFzaCwgYW5kIEV0aGVybmV0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA2MDE3OTA5OGE5NWVhYTk3MjAwN2Q3ZWM1OGU0YzE1ODgwMjk3MjBmCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgpEYXRlOglGcmkgSnVuIDYgMTY6MjQ6MTMgMjAwOCArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBSZW5lc2FzIFNINzc2MwoKICAgIFJlbmVzYXMgU0g3NzYzIGhhcyAzIFNDSUYsIE1NQywgTENEQywgRXRoZXJuZXQgYW5kIG90aGVyLgogICAgVGhpcyBwYXRjaCBzdXBwcnRzIENQVSByZWdpc3RlcidzIGhlYWRlciBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdS5ub2J1aGlyb0ByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAwOGM1ZmFiZTE4MWQ2NjNlZWMwZmViYTVlY2QwMmMwYjc4OTM0YTUyCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgpEYXRlOglGcmkgSnVuIDYgMTY6MTY6MDggMjAwOCArMDkwMAoKICAgIHNoOiBTSDc3NjMgU0NJRiBzdXBwb3J0CgogICAgU0g3NzYzIGhhcyAzIFNDSUYgY2hhbm5lbHMuIFNDSUYwIGFuZCAxIGFyZSBzYW1lIHJlZ2lzdGVyIGNvbnN0aXR1dGlvbiwKICAgIGJ1dCBvbmx5IFNDSUYyIGlzIGRpZmZlcmVudC4gVGhpcyBwYXRjaCB3b3JrIGFsbCBTQ0lGIGNoYW5uZWwuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1Lm5vYnVoaXJvQHJlbmVzYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDc5YjUxZmY4MjA1ZjAzNTRkNTMwMDU3MDYxNGMxZDJkYjQ5OTY3OWMKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgSnVuIDcgMjA6NTE6NTkgMjAwOCArMDkwMAoKICAgIFtNSVBTXSBjcHUvbWlwcy9NYWtlZmlsZTogU3BsaXQgW0NTXU9CSlMgb250byBzZXBhcmF0ZSBsaW5lcwoKICAgIEFsc28gZ2V0IHJpZCBvZiBzb21lICNpZmRlZnMgaW4gKi5jIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgOGJkZTYzZWIzZjc5ZDY4ZjY5MzIwMTUyOGRhZmM4YWU3YWEwODdkZQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVNhdCBKdW4gNyAyMDo1MTo1NiAyMDA4ICswOTAwCgogICAgW01JUFNdIFJlbmFtZSBBbGNoZW15IHByb2Nlc3NvciBjb25maWdzIGludG8gQ09ORklHX1NPQ18qCgogICAgQ09ORklHX1NPQ19BVTFYMDAKCiAgICAgIENvbW1vbiBBbGNoZW15IEF1MXgwMCBzdHVmZi4gQWxsIEFsY2hlbXkgcHJvY2Vzc29yIGJhc2VkIG1hY2hpbmVzCiAgICAgIG5lZWQgdG8gaGF2ZSB0aGlzIGNvbmZpZyBhcyBhIHN5c3RlbSB0eXBlIHNwZWNpZmllci4KCiAgICBDT05GSUdfU09DX0FVMTAwMCwgQ09ORklHX1NPQ19BVTExMDAsIENPTkZJR19TT0NfQVUxMjAwLAogICAgQ09ORklHX1NPQ19BVTE1MDAsIENPTkZJR19TT0NfQVUxNTUwCgogICAgICBNYWNoaW5lIHR5cGUgc3BlY2lmaWVycy4gRWFjaCBwb3J0IHNob3VsZCBoYXZlIG9uZSBvZiBhYm92ZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBjYzQ5Y2FkZWViOGJiMmYwYWUzZmRjMTNhZjcwNTFhZTU5ZjA4M2JjCkF1dGhvcjogU3R1YXJ0IFdvb2QgPHN0dWFydC53b29kQGxhYnh0ZWNobm9sb2dpZXMuY29tPgpEYXRlOglGcmkgTWF5IDMwIDE2OjA1OjI4IDIwMDggLTA0MDAKCiAgICBlbnZfbmFuZC5jOiBBZGRlZCBiYWQgYmxvY2sgbWFuYWdlbWVudCBmb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzCgogICAgTW9kaWZpZWQgdG8gY2hlY2sgZm9yIGJhZCBibG9ja3MgYW5kIHRvIHNraXBwaW5nIG92ZXIgdGhlbSB3aGVuCiAgICBDRkdfRU5WX1JBTkdFIGhhcyBiZWVuIGRlZmluZWQuCiAgICBDRkdfRU5WX1JBTkdFIG11c3QgYmUgbGFyZ2VyIHRoYW4gQ0ZHX0VOVl9TSVpFIGFuZCBhbGlnbmVkIHRvIHRoZSBOQU5ECiAgICBmbGFzaCBibG9jayBzaXplLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0dWFydCBXb29kIDxzdHVhcnQud29vZEBsYWJ4dGVjaG5vbG9naWVzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI3OTcyNmJkMDA1NThlODAyNjNkNDQ1ODFjNDQxNjc2MjViN2ZiOWEKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1heSAxNCAxMzowOTo1OCAyMDA4IC0wNTAwCgogICAgTVBDODZ4eDogQ2hhbmdlIHRyYXBzLmMgdG8gbm90IHJlZmVyZW5jZSBub24tYWRkcmVzc2FibGUgbWVtb3J5CgogICAgQ3VycmVudGx5LCBFTkRfT0ZfUkFNIGlzIHVzZWQgYnkgdGhlIHRyYXAgY29kZSB0byBkZXRlcm1pbmUgaWYKICAgIHdlIHNob3VsZCBhdHRlbXB0IHRvIGFjY2VzcyB0aGUgc3RhY2sgcG9pbnRlciBvciBub3QuIEhvd2V2ZXIsCiAgICBvbiBzeXN0ZW1zIHdpdGggYSBsb3Qgb2YgUkFNLCBvbmx5IGEgc3Vic2V0IG9mIHRoZSBSQU0gaXMKICAgIGd1YXJhbnRlZWQgdG8gYmUgbWFwcGVkIGluIGFuZCBhY2Nlc3NpYmxlLglDaGFuZ2UgRU5EX09GX1JBTQogICAgdG8gdXNlIGdldF9lZmZlY3RpdmVfbWVtc2l6ZSgpIGluc3RlYWQgb2YgdXNpbmcgdGhlIHJhdyByYW0KICAgIHNpemUgb3V0IG9mIHRoZSBiZCB0byBwcmV2ZW50IHVzIGZyb20gdHJ5aW5nIHRvIGFjY2VzcwogICAgbm9uLW1hcHBlZCBtZW1vcnkuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzM4Y2MwMzg0NjFhNmM3NzA5YzViODZmZDlhMjQwMjA5MzM4YTFhZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gNiAxNDoyODoxNCAyMDA4ICswMjAwCgogICAgdG9vbHMvbWtpbWFnZTogZml4IGNvbXBpbGVyIHdhcm5pbmdzIG9uIHNvbWUgc3lzdGVtcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGIyODE1Zjc5Mjg4ZDRkYTdhM2JhMThiZGJkMDUxMjBjZTA5ZDU2MjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gNiAxNjoxMDo0MSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggbWlzc3BlbGxlZCBDT05GSUdfNDQwU1BFLzQ0MEVQWC9HUlggY29uZmlnIG9wdGlvbnMKCiAgICBXZSB1c2UgdXBwZXIgY2FzZSBsZXR0ZXJzIGZvciB0aGUgQU1DQyBwcm9jZXNzb3IgZGVmaW5lcyAobGlrZQogICAgQ09ORklHXzQ0MFNQRSkgaW4gVS1Cb290LiBTbyB0aGUgNDQwU1BlIGlzIGxhYmVsZWQgQ09ORklHXzQ0MFNQRSBhbmQKICAgIG5vdCBDT05GSUdfNDQwU1BlLiBUaGlzIHBhdGNoIGZpeGVzIHRoZSBsYXN0IG1pc3NwZWxsZWQgY29uZmlnIG9wdGlvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDcyNjc1ZGM2YzA2YTQ4ODQ2ZDE4MDEwNjE2MWQ0OWRkNzE0MzgzY2MKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gNiAxNTo1NToyMSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBVbmlmeSBBTUNDJ3MgYm9hcmQgY29uZmlnIGZpbGVzIChwYXJ0IDMvMykKCiAgICBUaGlzIHBhdGNoIHNlcmllcyB1bmlmaWVzIHRoZSBBTUNDIGV2YWwgYm9hcmQgcG9ydHMgYnkgaW50cm9kdWNpbmcKICAgIGEgY29tbW9uIGluY2x1ZGUgaGVhZGVyIGZvciBhbGwgQU1DQyBldmFsIGJvYXJkczoKCiAgICBpbmNsdWRlL2NvbmZpZ3MvYW1jYy1jb21tb24uaAoKICAgIFRoaXMgaGVhZGVyIG5vdyBpbmNsdWRlcyBhbGwgY29tbW9uIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy9kZWZpbmVzIHdoaWNoCiAgICBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBib2FyZCBzcGVjaWZpYyBoZWFkZXJzLgoKICAgIFRoZSByZWFzb24gZm9yIHRoaXMgaXMgZWFzZSBvZiBtYWludGVuYW5jZSBhbmQgdW5pZmllZCBsb29rIGFuZCBmZWVsCiAgICBvZiBhbGwgQU1DQyBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDQ5MGYyMDQwOTZkNmUyYzk5NDBmNjc4MTZmMTU0YTgxMjViYWIxMTYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gNiAxNTo1NTowMyAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBVbmlmeSBBTUNDJ3MgYm9hcmQgY29uZmlnIGZpbGVzIChwYXJ0IDIvMykKCiAgICBUaGlzIHBhdGNoIHNlcmllcyB1bmlmaWVzIHRoZSBBTUNDIGV2YWwgYm9hcmQgcG9ydHMgYnkgaW50cm9kdWNpbmcKICAgIGEgY29tbW9uIGluY2x1ZGUgaGVhZGVyIGZvciBhbGwgQU1DQyBldmFsIGJvYXJkczoKCiAgICBpbmNsdWRlL2NvbmZpZ3MvYW1jYy1jb21tb24uaAoKICAgIFRoaXMgaGVhZGVyIG5vdyBpbmNsdWRlcyBhbGwgY29tbW9uIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy9kZWZpbmVzIHdoaWNoCiAgICBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBib2FyZCBzcGVjaWZpYyBoZWFkZXJzLgoKICAgIFRoZSByZWFzb24gZm9yIHRoaXMgaXMgZWFzZSBvZiBtYWludGVuYW5jZSBhbmQgdW5pZmllZCBsb29rIGFuZCBmZWVsCiAgICBvZiBhbGwgQU1DQyBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGE4YTExYTllZDA0NmI0ODBhMTZlNDdhMTU4ZjhmNTMwMDAyOGRmYTYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gNiAxNTo1NDozMSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBVbmlmeSBBTUNDJ3MgYm9hcmQgY29uZmlnIGZpbGVzIChwYXJ0IDEvMykKCiAgICBUaGlzIHBhdGNoIHNlcmllcyB1bmlmaWVzIHRoZSBBTUNDIGV2YWwgYm9hcmQgcG9ydHMgYnkgaW50cm9kdWNpbmcKICAgIGEgY29tbW9uIGluY2x1ZGUgaGVhZGVyIGZvciBhbGwgQU1DQyBldmFsIGJvYXJkczoKCiAgICBpbmNsdWRlL2NvbmZpZ3MvYW1jYy1jb21tb24uaAoKICAgIFRoaXMgaGVhZGVyIG5vdyBpbmNsdWRlcyBhbGwgY29tbW9uIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy9kZWZpbmVzIHdoaWNoCiAgICBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBib2FyZCBzcGVjaWZpYyBoZWFkZXJzLgoKICAgIFRoZSByZWFzb24gZm9yIHRoaXMgaXMgZWFzZSBvZiBtYWludGVuYW5jZSBhbmQgdW5pZmllZCBsb29rIGFuZCBmZWVsCiAgICBvZiBhbGwgQU1DQyBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDBlMzhjOTM4ZWQ0YmNhZGI0ZjRmYzE0MTlhNTQxNDMxZTk0ZmMyMDIKQXV0aG9yOiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KRGF0ZToJVGh1IEp1biA1IDEzOjAzOjM2IDIwMDggKzAyMDAKCiAgICBETTkwMDAgZml4IHN0YXR1cyBjaGVjayBmYWlsIDB4NmQgZXJyb3IgZm9yIHRyaXplcHMgYm9hcmQKCiAgICBBY2NvcmRpbmcgdG8gdGhlIEFwcGxpY2F0aW9uIE5vdGVzIG9mIHRoZSBETTkwMDAsIG9ubHkgdGhlIDIgYml0cyAwOjEgb2YKICAgIHRoZSBzdGF0dXMgYnl0ZSBuZWVkIHRvIGJlIGNoZWNrZWQgdG8gaWRlbnRpZnkgYSB2YWxpZCBwYWNrZXQgaW4gdGhlIGZpZm8KCiAgICBCdXQsIFRoZSBzZXZlcmFsIGRpZmZlcmVudCBBcHBsaWNhdGlvbiBOb3RlcyBkbyBub3QgYWxsIHNwZWFrIHRoZSBzYW1lCiAgICBsYW5ndWFnZSBvbiB0aGVzZSBiaXRzLiBUaGV5IGRvIG5vdCBkaXNhZ3JlZSwgYnV0IG9ubHkgMSBBcHBsaWNhdGlvbiBOb3RlCiAgICBub3RlZCBleHBsaWNpdGx5IHRoYXQgb25seSB0aGVzZSAyIGJpdHMgbmVlZCB0byBiZSBjaGVja2VkLgogICAgRXZlbiB0aGUgZGF0YXNoZWV0cyBkbyBub3QgbWVudGlvbiBhbnl0aGluZyBhYm91dCB0aGVzZSAyIGJpdHMuCgogICAgQmVjYXVzZSB0aGUgb2xkIGNvZGUsIGFuZCB0aGUga2VybmVsIGNoZWNrIHRoZSB3aG9sZSBieXRlLCBJIGxlZnQgdGhpcyBwaWVjZQogICAgdW50b3VjaGVkLgoKICAgIEhvd2V2ZXIsIEkgdGVzdGVkIGFsbCBib2FyZC9ETTkwMDBbQXxFfEVQXSBkZXZpY2VzIHdpdGggdGhpcyAyIGJpdCBjaGVjaywgc28KICAgIGl0IHNob3VsZCB3b3JrLgoKICAgIE5vdGljZSwgdGhhdCB0aGUgMm5kIGl0ZXJhdGlvbiB0aHJvdWdoIHRoaXMgcmVjZWl2ZSBsb29wICh3aGVuIGEgMm5kIHBhY2tldCBpcwogICAgaW4gdGhlIGZpZm8pIGlzIG11Y2ggc2hvcnRlciBub3csIGNvbXBhcmVkIHRvIHRoZSBvbGRlciBVLWJvb3QgZHJpdmVyIGNvZGUsCiAgICBzbyB0aGF0IHdlIGNhbiBtYXliZSBydW4gaW50byBhIGhhcmR3YXJlIGNvbmRpdGlvbiBub3cgdGhhdCB3YXMgbmV2ZXIgc2VlbgogICAgYmVmb3JlLCBvciBtYXliZSB3YXMgc2VlbiB2ZXJ5IHVuZnJlcXVlbnRseS4KCiAgICBBZGRpdGlvbmFseSBhZGRlZCBhIGNsZWFudXAgb2YgYSBzdGFjayB2YXJpYWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgN2RhZjJlYmU5MTk2ZGQ2NzEzMWEwNmQ4NTA0OWMzYThhMDhjYTQxMwpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVRodSBKdW4gNSAyMjoyOTowMCAyMDA4ICswOTAwCgogICAgW01JUFNdIFVwZGF0ZSA8YXNtL2FkZHJzcGFjZS5oPiBoZWFkZXIKCiAgICAtIEZpeCB0cmFkaXRpb25hbCBLU0VHIG5hbWVzCiAgICAtIFJlcGxhY2UgUEhZU0FERFIgd2l0aCBDUEhZU0FERFIKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IGYwZDVhNmYwNjBkMDAzNThiODVjNjJhOTIxYTQyM2VhOGRmNzExODQKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUaHUgSnVuIDUgMjI6Mjk6MDAgMjAwOCArMDkwMAoKICAgIFtNSVBTXSBtaXBzX2NvbmZpZy5tazogTWlzYyBmaXhlcwoKICAgIC0gS2lsbCByZWR1bmRhbnQgYC1waXBlJyAodGhpcyB3aWxsIGJlIGFkZGVkIGJ5ICQoVE9QRElSKS9jb25maWcubWspCiAgICAtIE1vZGlmeSBjb21tZW50cwoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgNWY2NGQyMWM5YTI5OTg3OTRmMjU1YjQ2OTE2NWI5MWYwOTJkZmMyZApBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVRodSBKdW4gNSAyMjoyOTowMCAyMDA4ICswOTAwCgogICAgW01JUFNdIEtpbGwgdW51c2VkIDx2ZXJzaW9uLmg+IGluY2x1c2lvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IGE1NWQ0ODE3NGNmZDFhNWJjMTg0MTU5NTEzZjQ4ZGNiYmU0MDljODMKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUaHUgSnVuIDUgMjI6Mjk6MDAgMjAwOCArMDkwMAoKICAgIFtNSVBTXSBsaWJfbWlwcy90aW1lLmM6IEZpeCBDUDAgY291bnQgcmVnaXN0ZXIgdXNhZ2UgYW5kIHRpbWVyIHJvdXRpbmVzCgogICAgTUlQUyBwb3J0IGhhcyB0d28gcHJvYmxlbXMgaW4gdGltZXIgcm91dGluZXMuIE9uZSBpcyBub3cgd2UgYXNzdW1lIENGR19IWgogICAgZXF1YWxzIHRvIENQMCBjb3VudGVyIGZyZXF1ZW5jeSwgYnV0IHRoaXMgaXMgd3JvbmcuIENGR19IWiBoYXMgdG8gYmUgMTAwMAogICAgaW4gdGhlIFUtQm9vdCBzeXN0ZW0uCgogICAgVGhlIG90aGVyIGlzIHdlIGRvbid0IGhhdmUgYSBwcm9wZXIgdGltZSBtYW5hZ2VtZW50IGNvdW50ZXIgbGlrZSB0aW1lc3RhbXAKICAgIG90aGVyIEFSQ0hzIGhhdmUuIFdlIG5lZWQgdGhlIDMyLWJpdCBtaWxsaXNlY29uZCBjbG9jayBjb3VudGVyLgoKICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyB0aW1lc3RhbXAgYW5kIENZQ0xFU19QRVJfSklGRlkuIHRpbWVzdGFtcCBpcyBhCiAgICAzMi1iaXQgbm9uLW92ZXJmbG93aW5nIENGR19IWiBjb3VudGVyLCBhbmQgQ1lDTEVTX1BFUl9KSUZGWSBpcyB0aGUgbnVtYmVyCiAgICBvZiBjYWxjdWxhdGVkIENQMCBjb3VudGVyIGN5Y2xlcyBpbiBhIENGR19IWi4KCiAgICBTVFJBVEVHWToKCiAgICAqIEZpeCBpbXByb3BlciBDRkdfSFogdmFsdWUgdG8gaGF2ZSAxMDAwCgogICAgKiBVc2UgQ0ZHX01JUFNfVElNRVJfRlJFUSBmb3IgdGltZXIgY291bnRlciBmcmVxdWVuY3ksIGluc3RlYWQuCgogICAgKiB0aW1lcl9pbml0OiBpbml0aWFsaXplIHRpbWVzdGFtcCBhbmQgc2V0IHVwIHRoZSBmaXJzdCB0aW1lciBleHBpcmF0aW9uLgogICAgICBOb3RlIHRoYXQgd2UgZG9uJ3QgbmVlZCB0byBpbml0aWFsaXplIENQMCBjb3VudC9jb21wYXJlIHJlZ2lzdGVycyBoZXJlCiAgICAgIGFzIHRoZXkgaGF2ZSBiZWVuIGFscmVhZHkgemVyb2VkIG91dCBvbiB0aGUgc3lzdGVtIHJlc2V0LiBMZWF2ZSB0aGVtIGFzCiAgICAgIHRoZXkgYXJlLgoKICAgICogZ2V0X3RpbWVyOiBjYWxjdWxhdGUgaG93IG1hbnkgdGltZXN0YW1wcyBoYXZlIGJlZW4gcGFzc2VkLCB0aGVuIHJldHVybgogICAgICBiYXNlLXJlbGF0aXZlIHRpbWVzdGFtcC4gTWFrZSBzdXJlIHdlIGNhbiBlYXNpbHkgY291bnQgbWlzc2VkIHRpbWVzdGFtcHMKICAgICAgcmVnYXJkbGVzcyBvZiBDUDAgY291bnQvY29tcGFyZSB2YWx1ZS4KCiAgICAqIGdldF90aWNrczogcmV0dXJuIHRoZSBjdXJyZW50IHRpbWVzdGFtcCwgdGhhdCBpcyBnZXRfdGltZXIoMCkuCgogICAgTW9zdCBwYXJ0cyBhcmUgZnJvbSBnb29kIG9sZCBMaW51eCB2Mi42LjE2IGtlcm5lbC4KCiAgICB2MjoKICAgIC0gUmVtb3ZlIEZJWE1FIGNvbW1lbnRzIGFzIHRoZXkgdHVybmVkIG91dCB0byBiZSB0cml2aWFsLgogICAgLSBVc2UgQ1AwIGNvbXBhcmUgcmVnaXN0ZXIgYXMgYSBnbG9iYWwgdmFyaWFibGUgZm9yIGV4cGlyZWxvLgogICAgLSBLaWxsIGEgZ2xvYmFsIHZhcmlhYmxlICdjeWNsZXNfcGVyX2ppZmZ5Jy4gVXNlICNkZWZpbmUgQ1lDTEVTX1BFUl9KSUZGWQogICAgICBpbnN0ZWFkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgMTk5ZTRmNjU3YzhhZjQyZWZlM2ZiM2JhMWQxMTA0ZWI2YmIyOGMyNQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVRodSBKdW4gNSAyMjoyOTowMCAyMDA4ICswOTAwCgogICAgW01JUFNdIGxpYl9taXBzL3RpbWUuYzogRml4IHVkZWxheQoKICAgIFdoYXQgd2UgaGF2ZSB0byBkbyBpcyBqdXN0IHRvIHdhaXQgZm9yIGdpdmVuIG1pY3JvLXNlY29uZHMuIE5vIG5lZWQgdG8KICAgIHRha2UgaW50byBhY2NvdW50IGN1cnJlbnQgdGltZSwgZ2V0X3RpbWVyIGFuZCBDRkdfSFouCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBjN2UzOGU0MTNhZTY5MTIwZDNlNTFmMTMyYzdjYjFkNmIzNTE0ZDAzCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJVGh1IEp1biA1IDIyOjI4OjU5IDIwMDggKzA5MDAKCiAgICBbTUlQU10gbGliX21pcHMvdGltZS5jOiBSZXBsYWNlIENQMCBhY2Nlc3MgZnVuY3Rpb25zIHdpdGggZXhpc3RpbmcgbWFjcm9zCgogICAgV2UgYWxyZWFkeSBoYXZlIG1hbnkgcHJlLWRlZmluZWQgQ1AwIGFjY2VzcyBtYWNyb3MgaW4gPGFzbS9taXBzcmVncy5oPi4KICAgIFRoaXMgcGF0Y2ggcmVwbGFjZXMgbWlwc197Y29tcGFyZSxjb3VudH1fc2V0IGFuZCBtaXBzX2NvdW50X2dldCB3aXRoCiAgICBleGlzdGluZyBtYWNyb3MuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCA2YjUyY2ZlMTZjZDUzOTkzNWUzMmJkOGNmMTkxNDY1MjJlNDYyYTRkCkF1dGhvcjogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CkRhdGU6CVR1ZSBKdW4gMyAxNTo0ODoxNyAyMDA4ICswMjAwCgogICAgR2V0IHJpZCBvZiBhbm5veWluZy9zdXBlcmZsdW91cyBiYWQtY2hlY2tzdW0gd2FybmluZyBtZXNzYWdlCgogICAgVS1ib290IGNhbiBjb21wbGFpbiBhIGxvdCBhYm91dCAnY2hlY2tzdW0gYmFkJyB3aGVuIGl0IGlzIGF0dGFjaGVkIHRvIHRoZSBuZXR3b3JrLgogICAgSXQgaXMgYW5ub3lpbmcgZm9yIG9yZGluYXJ5IHVzZXJzIHdobyBzdGFydCB0byBkb3VidCB0aGUgbmV0d29yayBjb25uZWN0aW9uCiAgICBpbiBnZW5lcmFsIHdoZW4gdGhleSBzZWUgbWVzc2FnZXMgbGlrZSB0aGlzLgoKICAgIFRoaXMgaXMgY2F1c2VkIGJ5IHRoZSByb3V0aW5lIE5ldENrc3VtT2soKSB3aGljaCBjYW5ub3QgaGFuZGxlIElQLWhlYWRlcnMgbG9uZ2VyCiAgICB0aGFuIDIwIGJ5dGVzLiBUaG9zZSBwYWNrYWdlcyBjYW4gYmUgaWdub3JlZCBhbnl3YXkgYnkgVS1ib290LCBzbyB3ZSB0cmFzaCB0aGVtCiAgICBub3cgYmVmb3JlIGNoZWNraW5nIHRoZSBjaGVja3N1bS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZDZlZTVmYTQwYzI2OTcwZDM5OTkwYzZmYzRhMmYyMGE5NzgyMjY1MApBdXRob3I6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgpEYXRlOglXZWQgSnVuIDQgMTA6NDc6MjUgMjAwOCArMDIwMAoKICAgIEZpeCBvcmRlciBmb3IgcmVhZGluZyByeC1zdGF0dXMgcmVnaXN0ZXJzIGluIDMyYml0IG1vZGUgb2YgRE05MDAwCgogICAgQSBsYXN0IG1pbnV0ZSBjbGVhbnVwIGJlZm9yZSBzdWJtaXR0aW5nIHRoZSBETTkwMDBBIHBhdGNoIHNlcmllcyB5ZXN0ZXJkYXkgaW50cm9kdWNlZAogICAgYSBidWcgaW4gcmVhZGluZyB0aGUgcngtc3RhdHVzIHJlZ2lzdGVycyBpbiAzMmJpdCBtb2RlIG9ubHkuCiAgICBUaGlzIHBhdGNoIHJlcGFpcnMgdGhpcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgOTgyOTFlMmU2ODkwOTY0MjA0NjUwNzRjY2U5MjZiMjI2ZDJlNzFiNApBdXRob3I6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgpEYXRlOglUdWUgSnVuIDMgMTU6MjY6MjYgMjAwOCArMDIwMAoKICAgIERNOTAwMDogU29tZSBtaW5vciBjb2RlIGNsZWFudXBzCgogICAgU29tZSBsaW5lcyBvZiB0aGUgVS1ib290IERNOTAwMHggZHJpdmVyIGFyZSBsb25nZXIgdGhhbiA4MCBjaGFyYWN0ZXJzLCBvcgogICAgbmVlZCBzb21lIG90aGVyIG1pbm9yIGNsZWFudXAuCgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDg1MGJhNzU1NWRiZDRjYThkMTRmYzQ3NWI4NjRkNTM0Nzk3YWRhYjMKQXV0aG9yOiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KRGF0ZToJVHVlIEp1biAzIDE1OjI2OjI1IDIwMDggKzAyMDAKCiAgICBETTkwMDA6IE1ha2UgZHJpdmVyIHdvcmsgcHJvcGVybHkgZm9yIERNOTAwMEEKCiAgICBUaGUgRE05MDAwQSBuZXR3b3JrIGNvbnRyb2xsZXIgZG9lcyBub3Qgd29yayB3aXRoIHRoZSBVLWJvb3QgRE05MDAweCBkcml2ZXIuCiAgICBBbmFseXNpcyBzaG93ZWQgdGhhdCBtYW55IGluY29taW5nIHBhY2tldHMgYXJlIGxvc3QuCgogICAgVGhlIERNOTAwMEEgQXBwbGljYXRpb24gTm90ZXMgVjEuMjAgKHNlY3Rpb24gNS42LjEpIHJlY29tbWVuZCB0aGF0IHRoZSBwb2xsIHRvCiAgICBjaGVjayBmb3IgYSB2YWxpZCByeCBwYWNrZXQgYmUgZG9uZSBvbiB0aGUgaW50ZXJydXB0IHN0YXR1cyByZWdpc3Rlciwgbm90CiAgICBkaXJlY3RseSBieSBwZXJmb3JtaW5nIHRoZSBkdW1teSByZWFkIGFuZCB0aGUgcnggc3RhdHVzIGNoZWNrIGFzIGlzIGN1cnJlbnRseQogICAgdGhlIGNhc2UgaW4gdGhlIHUtYm9vdCBkcml2ZXIuCgogICAgV2hlbiB0aGUgcmVjb21tZW5kZWQgcG9sbCBpcyBkb25lIGFzIHN1Z2dlc3RlZCB0aGUgZHJpdmVyIHN0YXJ0cyB3b3JraW5nCiAgICBjb3JyZWN0bHkgb24gMTBNYml0L0hELCBidXQgb24gMTAwTUJpdC9GRCBwYWNrZXRzIGNvbWUgaW4gZmFzdGVyIHNvIHRoYXQgdGhlcmUKICAgIGNhbiBiZSBtb3JlIHRoYW4gMSBwYWNrYWdlIGluIHRoZSBmaWZvIGF0IHRoZSBzYW1lIHRpbWUuCgogICAgVGhlIGRyaXZlciBtdXN0IHBlcmZvcm0gdGhlIHJ4LXN0YXR1cyBjaGVjayBpbiBhIGxvb3AgYW5kIHJlYWQgYW5kIGhhbmRsZSBhbGwKICAgIHBhY2thZ2VzIHVudGlsIHRoZXJlIGlzIG5vIG1vcmUgbGVmdCBfYWZ0ZXJfIHRoZSBpbnRlcnJ1cHQgUlggZmxhZyBpcyBzZXQuCgogICAgVGhpcyBjaGFuZ2UgaGFzIGJlZW4gdGVzdGVkIHdpdGggRE05MDAwQSwgRE05MDAwRSwgRE05MDAwRVAuCgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGZiY2I3ZWNlMGVhMWUzNjQxODBmMWNmOTYzZTBmYTBjZTdmNjU2MGQKQXV0aG9yOiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KRGF0ZToJVHVlIEp1biAzIDE1OjI2OjI0IDIwMDggKzAyMDAKCiAgICBETTkwMDA6IEltcHJvdmUgZXRoX3Jlc2V0KCkgcm91dGluZQoKICAgIEFjY29yZGluZyB0byB0aGUgYXBwbGljYXRpb24gbm90ZXMgb2YgdGhlIERNOTAwMCB2MS4yMiBjaGFwdGVyIDUuMiBidWxsZXQgMiwgdGhlCiAgICByZXNldCBwcm9jZWR1cmUgbXVzdCBiZSBkb25lIHR3aWNlIHRvIHByb3Blcmx5IHJlc2V0IHRoZSBETTkwMDAgYnkgbWVhbnMgb2Ygc29mdHdhcmUuCiAgICBUaGlzIGVycmF0YSBpcyBub3QgbmVlZGVkIGFueW1vcmUgZm9yIHRoZSBETTkwMDBBLCBidXQgaXQgZG9lcyBub3QgYm90aGVyIGl0LgoKICAgIFRoaXMgY2hhbmdlIGhhcyBiZWVuIHRlc3RlZCB3aXRoIERNOTAwMEEsIERNOTAwMEUsIERNOTAwMEVQLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBhY2JhMzE4NDdmYWQ5YWU0MDcwOGNjMmM5ZjNhNjM0ZWMzNWYzNDE2CkF1dGhvcjogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CkRhdGU6CVR1ZSBKdW4gMyAxNToyNjoyMyAyMDA4ICswMjAwCgogICAgRE05MDAwOiBpbXByb3ZlIGV0aF9zZW5kKCkgcm91dGluZQoKICAgIFRoZSBldGhfc2VuZCByb3V0aW5lIG9mIHRoZSBVLWJvb3QgRE05MDAweCBkcml2ZXIgZG9lcyBub3QgbWF0Y2ggdGhlCiAgICBETTkwMDAgb3IgRE05MDAwQSBhcHBsaWNhdGlvbiBub3Rlcy9wcm9ncmFtbWluZyBndWlkZXMuCgogICAgVGhpcyBjaGFuZ2UgaW1wcm92ZXMgdGhlIHN0YWJpbGl0eSBvZiB0aGUgRE05MDAwQSBuZXR3b3JrIGNvbnRyb2xsZXIuCgogICAgVGhpcyBjaGFuZ2UgaGFzIGJlZW4gdGVzdGVkIHdpdGggRE05MDAwQSwgRE05MDAwRSwgRE05MDAwRVAuCgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDEzNGUyNjYyNTNjMDJhNzgzMjU2MGRhNTlkMzk0OTg5YzRmNjQ0NTMKQXV0aG9yOiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KRGF0ZToJVHVlIEp1biAzIDE1OjI2OjIyIDIwMDggKzAyMDAKCiAgICBETTkwMDA6IHJlcGFpciBkZWJ1ZyBsb2dnaW5nCgogICAgSXQgc2VlbXMgdGhhdCB0aGUgZGVidWdnaW5nIGNvZGUgb2YgdGhlIERNOTAwMHggZHJpdmVyIGluIFUtYm9vdCBoYXMgbm90IGJlZW4KICAgIGNvbXBpbGVkIGZvciBhIGxvbmcgdGltZSwgYmVjYXVzZSBpdCBjYW5ub3QgY29tcGlsZS4uLgoKICAgIEFsc28gcmVhcnJhbmdlZCBzb21lIGxvZ2xpbmVzIHRvIGdldCBtb3JlIHVzZWZ1bCBpbmZvIHdoaWxlIGRlYnVnZ2luZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSZW15IEJvaG1lciA8bGludXhAYm9obWVyLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgYTEwMTM2MWJmZTIzYzEyMDMyMWU0NWQxMTRjMDYwM2I4ZTA3NjNlOQpBdXRob3I6IFJlbXkgQm9obWVyIDxsaW51eEBib2htZXIubmV0PgpEYXRlOglUdWUgSnVuIDMgMTU6MjY6MjEgMjAwOCArMDIwMAoKICAgIERNOTAwMDogQWRkIGRhdGEgYnVzLXdpZHRoIGF1dG8gZGV0ZWN0aW9uLgoKICAgIFRoZSBVLWJvb3QgRE05MDAweCBkcml2ZXIgY29udGFpbnMgYSBjb21waWxlIHRpbWUgYnVzLXdpZHRoIGRlZmluaXRpb24gZm9yCiAgICB0aGUgZGF0YWJ1cyBjb25uZWN0ZWQgdG8gdGhlIG5ldHdvcmsgY29udHJvbGxlci4KCiAgICBUaGlzIGNvbXBpbGUgY2hlY2sgbWFrZXMgdGhlIGNvZGUgdW5jbGVhciwgaW5mbGV4aWJsZSBhbmQgaXMgdW5uZWNjZXNzYXJ5LgogICAgSXQgY2FuIGJlIGFza2VkIHRvIHRoZSBuZXR3b3JrIGNvbnRyb2xsZXIgd2hhdCBpdHMgYnVzLXdpZHRoIGlzIGJ5IHJlYWRpbmcgYml0cwogICAgNiBhbmQgNyBvZiB0aGUgaW50ZXJydXB0IHN0YXR1cyByZWdpc3Rlci4KCiAgICBUaGUgbGludXgga2VybmVsIGFscmVhZHkgdXNlcyBhIHJ1bnRpbWUgbWVjaGFuaXNtIHRvIGRldGVybWluZSB0aGlzIGJ1cy13aWR0aCwKICAgIHNvIHRoZSBpbXBsZW1lbnRhdGlvbiBiZWxvdyBsb29rcyBzb21ld2hhdCBsaWtlIHRoYXQgaW1wbGVtZW50YXRpb24uCgogICAgVGhpcyBjaGFuZ2UgaGFzIGJlZW4gdGVzdGVkIHdpdGggRE05MDAwQSwgRE05MDAwRSwgRE05MDAwRVAuCgogICAgU2lnbmVkLW9mZi1ieTogUmVteSBCb2htZXIgPGxpbnV4QGJvaG1lci5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDYzYTBhZmEwYzMyZTVmNGVhOThhOTQzOTU0Mjg3MDA3MjQzNzQwNGQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKdW4gNCAxOToxOToyMCAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggcHJvYmxlbSB3aXRoIFNEUkFNIGluaXQgaW4gYmFtYm9vIE5BTkQgYm9vdGluZyBwb3J0CgogICAgVGhpcyBwYXRjaCBmaXhlcyBhIHByb2JsZW0gc3BvdHRlZCBieSBFdWdlbmUgTydCcmlhbiAodGhhbmtzIEV1Z2VuZSkKICAgIGludHJvZHVjZWQgYnkgdGhlIGNvbW1pdDoKCiAgICBwcGM0eHgvTkFORF9TUEw6IENvbnNvbGlkYXRlIDQwNSBhbmQgNDQwIE5BTkQgYm9vdGluZyBjb2RlIGluIHN0YXJ0LlMKCiAgICBXaXRoIHRoaXMgcGF0Y2ggU0RSQU0gd2lsbCBnZXQgaW5pdGlhbGl6ZWQgYWdhaW4gYW5kIGJvb3RpbmcgZnJvbSBOQU5ECiAgICBpcyB3b3JraW5nIGFnYWluLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBFdWdlbmUgTydCcmllbiA8ZXVnZW5lLm9icmllbkBhZHZhbnRlY2hhbXQuY29tPgoKY29tbWl0IDllZjFjYmVmMWE2NDllMzc3OTI5OGIwZTY2M2JlNDg2NWNiYmJmYmMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgTWF5IDI3IDE0OjE5OjMwIDIwMDggKzAyMDAKCiAgICBTb2NyYXRlczogRml4IFBDSSBidXMgZnJlcXVlbmN5IHJlcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+Cgpjb21taXQgOGVjNmUzMzJlYWNlMGVlNzhjNzFlZTVmNjQ1ZDEyYjA2ODEzYjg2ZgpBdXRob3I6IFRvciBLcmlsbCA8dG9yQGV4Y2l0by5jb20+CkRhdGU6CVRodSBNYXkgMjkgMTE6MTA6MzAgMjAwOCArMDIwMAoKICAgIEZpeCBpbmNvcnJlY3Qgc3dpdGNoIGZvciBJRl9UWVBFIGluIHBhcnQuYwoKICAgIFVzZSBjb3JyZWN0IGZpZWxkIGluIGJsb2NrX2Rldl9kZXNjX3Qgd2hlbiB3cml0aW5nIGludGVyZmFjZSB0eXBlIGluCiAgICBkZXZfcHJpbnQuIEVycm9yIGludHJvZHVjZWQgaW4gNTc0YjMxOTUuCgogICAgQWxzbyBhZGRlZCBmaXggZnJvbSBNYXJ0aW4gS3JhdXNlCgogICAgU2lnbmVkLW9mZi1ieTogVG9yIEtyaWxsIDx0b3JAZXhjaXRvLmNvbT4KCmNvbW1pdCBiNjRiOGEwYmQzMTA5MzViNzBhZjY5YWM5NzA5NTJmMmIzNjRhZTU2CkF1dGhvcjogQW5kcmUgU2Nod2FyeiA8YW5kcmUuc2Nod2FyekBtYXRyaXgtdmlzaW9uLmRlPgpEYXRlOglUdWUgTWF5IDI3IDEwOjI1OjM5IDIwMDggKzAyMDAKCiAgICBBZGQgc2l6ZSAjZGVmaW5lcyBmb3IgQWx0ZXJhIEN5Y2xvbmUtSUkgRVAyQzggYW5kIEVQMkMyMC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZSBTY2h3YXJ6IDxhbmRyZS5zY2h3YXJ6QG1hdHJpeC12aXNpb24uZGU+Cgpjb21taXQgMzVlZjg3N2YwYThmNjIzMmNkZWY3NDhmNDQyZmVkNWFjY2IyYjY0MQpBdXRob3I6IFBldGVyIFR5c2VyIDxwdHlzZXJAeGVzLWluYy5jb20+CkRhdGU6CVRodSBNYXkgMjIgMTg6NTY6NTIgMjAwOCAtMDUwMAoKICAgIEFkZGl0aW9uYWwgZml4IHRvIHJlYWRsaW5lX2ludG9fYnVmZmVyKCkgd2l0aCBDT05GSUdfQ01ETElORV9FRElUSU5HIGJlZm9yZSByZWxvY2F0aW5nCgogICAgUmVtb3ZlZCB1bm5lZWRlZCBjb21tYW5kIGxpbmUgaGlzdG9yeSBpbml0aWFsaXphdGlvbi4gIEFsc28sIHRoZSBvcmlnaW5hbAogICAgY29kZSB3b3VsZCBhY2Nlc3MgdGhlICdpbml0dGVkJyB2YXJpYWJsZSBiZWZvcmUgcmVsb2NhdGlvbiB0byBTRFJBTQogICAgd2hpY2ggcmVzdWx0ZWQgaW4gZXJyYXRpYyBiZWhhdmlvciBzaW5jZSB0aGUgYnNzIGlzIG5vdCBpbml0aWFsaXplZCB3aGVuCiAgICBleGVjdXRpbmcgZnJvbSBmbGFzaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBUeXNlciA8cHR5c2VyQHhlcy1pbmMuY29tPgoKY29tbWl0IDIyZjM3MWI2MzAzOGE0ZWNhYjA0MDY4ODc3YzEwODllNTFhMDFiYTEKQXV0aG9yOiBHcmFudCBFcmlja3NvbiA8Z2VyaWNrc29uQG51b3ZhdGlvbnMuY29tPgpEYXRlOglXZWQgTWF5IDIxIDEzOjI4OjMwIDIwMDggLTA3MDAKCiAgICBQUEM0eHg6IFNpbXBsaWZpZWQgcG9zdF93b3JkX3tsb2FkLCBzdG9yZX0KCiAgICBUaGlzIHBhdGNoIHNpbXBsaWZpZXMgcG9zdF93b3JkX3tsb2FkLHN0b3JlfSBieSB1c2luZyB0aGUgcHJlcHJvY2Vzc29yCiAgICB0byBlbGltaW5hdGUgcmVkdW5kYW50LCBjb3B5LWFuZC1wYXN0ZWQgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBFcmlja3NvbiA8Z2VyaWNrc29uQG51b3ZhdGlvbnMuY29tPgoKY29tbWl0IDljMDQ4YjUyMzQxM2FlNWYzZmYzNGUwMGNmNTc1NjljMzM2OGFiNTEKQXV0aG9yOiBWYXNpbGl5IExlb2VuZW5rbyA8dmFzaWxpeS5sZW9uZW5rb0BtYWlsLnJ1PgpEYXRlOglXZWQgTWF5IDcgMjE6MjU6MzMgMjAwOCArMDQwMAoKICAgIGNmaV9mbGFzaDogZW5hYmxlIE0xOCBmbGFzaCBjaGlwcyBmYW1pbHkgc3VwcG9ydC4KCiAgICBBZGRlZCBuZXcgY29tbWFuZCBzZXQgSUQuIEJ1ZmZlcmVkIHdyaXRlIGNvbW1hbmQgcHJvY2Vzc2luZyBpcyBjaGFuZ2VkCiAgICBpbiBvcmRlciB0byBzdXBwb3J0IE0xOCBmbGFzaCBjaGlwcyBmYW1pbHkuCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGV5IEtvcm9sZXYgPGFrb3JvbGV2QGluZnJhZGVhZC5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBWYXNpbGl5IExlb25lbmtvIDx2YXNpbGl5Lmxlb25lbmtvQG1haWwucnU+Cgpjb21taXQgOTNjNTZmMjEyY2NkYWRjMTgyMDE4ZjA3NjljYjI4NDQyNmI4OGYxZApBdXRob3I6IFZhc2lsaXkgTGVvZW5lbmtvIDx2YXNpbGl5Lmxlb25lbmtvQG1haWwucnU+CkRhdGU6CVdlZCBNYXkgNyAyMToyNDo0NCAyMDA4ICswNDAwCgogICAgY2ZpX2ZsYXNoOiBzdXBwb3J0IG9mIGxvbmcgY21kIGluIFUtYm9vdC4KCiAgICBTb21lIE5PUiBmbGFzaCBjaGlwcyBuZWVkcyBzdXBwb3J0IG9mIGNvbW1hbmRzIHdpdGggbGVuZ3RoIGdyZXRoZXIgdGhhbiBtYXgKICAgIHZhbHVlIHNpemUgb2YgdWNoYXIuIEZvciBleGFtcGxlIGFsbCBNMTggZmFtaWx5IGNoaXBzIHVzZSAweDFmZiBjb21tYW5kIGluCiAgICBidWZmZXJlZCB3cml0ZSBtb2RlIGFzIHZhbHVlIG9mIHByb2dyYW0gbG9vcHMgY291bnQuCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGV5IEtvcm9sZXYgPGFrb3JvbGV2QGluZnJhZGVhZC5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBWYXNpbGl5IExlb25lbmtvIDx2YXNpbGl5Lmxlb25lbmtvQG1haWwucnU+Cgpjb21taXQgNGQ5MWQxZGYyZjE2YjUxMWFiODBkZWM1MGM4MGUwNTBiYTBkODQxZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE1heSAxNiAxMTowNjowNiAyMDA4ICswMjAwCgogICAgRFRUOiBJc3N1ZSBvbmUtc2hvdCBjb21tYW5kIG9uIEFENzQxNCAoTE03NSBjb2RlKSB0byByZWFkIHRlbXAKCiAgICBPbiBBRDc0MTQgdGhlIGZpcnN0IHZhbHVlIHVwb24gYm9vdHVwIGlzIG5vdCByZWFkIGNvcnJlY3RseS4KICAgIFRoaXMgaXMgbW9zdCBsaWtlbHkgYmVjYXVzZSBvZiB0aGUgODAwbXMgdXBkYXRlIHRpbWUgb2YgdGhlCiAgICB0ZW1wIHJlZ2lzdGVyIGluIG5vcm1hbCB1cGRhdGUgbW9kZS4gVG8gZ2V0IGN1cnJlbnQgdmFsdWVzCiAgICBlYWNoIHRpbWUgd2UgaXNzdWUgdGhlICJkdHQiIGNvbW1hbmQgaW5jbHVkaW5nIHVwb24gcG93ZXJ1cAogICAgd2Ugc3dpdGNoIGludG8gb25lLXNob3J0IG1vZGUuCgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgcHJvYmxlbSBvbiBBRDc0MTQgZXF1aXBwZWQgYm9hcmRzIChTZXF1b2lhLAogICAgQ2FueW9ubGFuZHMgZXRjKSwgdGhhdCB0ZW1wIHZhbHVlIHByaW50ZWQgaW4gdGhlIGJvb3R1cCBsb2cgd2FzCiAgICBpbmNvcnJlY3QuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGRlNWJmY2Y3YjA0MjVlMDMyYmUxMjY5ODI1MmRiYWE2YjY1YTI4YzAKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIE1heSAzMCAxNjo1NTowNiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBDbGVhbnVwIENQQ0k0MDUgdmFyaWFudCdzIGNvbmZpZyBmaWxlCgogICAgVGhpcyBwYXRjaCByZW1vdmVzIHNvbWUgZGVhZCBjb2RlIGZyb20gQ1BDSTQwNSBib2FyZCdzCiAgICBjb25maWcgZmlsZXMuIEpGRlMyIHN1cHBvcnQgaXMgYWxzbyByZW1vdmVkLiBJdCdzIG5vdCB1c2VkIGFuZAogICAgQ1BDSTQwNTIgZG9lcyBub3QgYnVpbGQgYW55bW9yZSB3aXRob3V0IHNvbWUgc2l6ZSByZWR1Y3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgMjkxOGViOWQ0MmJjNzA1ZmNiZDE4YzlmY2MzOWQxNWZmMjg0M2M2NQpBdXRob3I6IEtlbm5ldGggSm9oYW5zc29uIDxrZW5uZXRoQHNvdXRocG9sZS5zZT4KRGF0ZToJVGh1IE1heSAyOSAxNjozMjozMyAyMDA4ICswMjAwCgogICAgUmVtb3ZlIHNoZWxsIHZhcmlhYmxlIFVOREVGX1NZTS4KCiAgICBVTkRFRl9TWU0gaXMgYSBzaGVsbCB2YXJpYWJsZSBpbiB0aGUgbWFpbiBNYWtlZmlsZSB1c2VkIHRvIGZvcmNlIHRoZQogICAgbGlua2VyIHRvIGFkZCBhbGwgdS1ib290IGNvbW1hbmRzIHRvIHRoZSBmaW5hbCBpbWFnZS4gSXQgaGFzIG5vIHVzZSBoZXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtlbm5ldGggSm9oYW5zc29uIDxrZW5uZXRoQHNvdXRocG9sZS5zZT4KCmNvbW1pdCA4YzY2NDk3ZTA2YmY4MDM0ODljNTg5ZGY1OGVlNTkxZDcxMDMzMjc0CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglGcmkgTWF5IDE2IDExOjEwOjM1IDIwMDggKzAyMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgZW52aXJvbm1lbnQgaW4gU1BJIGZsYXNoCgogICAgVGhpcyBpcyBwcmV0dHkgaW5jb21wbGV0ZS4uLml0IGRvZXNuJ3QgaGFuZGxlIHJlYWRpbmcgdGhlIGVudmlyb25tZW50CiAgICBiZWZvcmUgcmVsb2NhdGlvbiwgaXQgZG9lc24ndCBzdXBwb3J0IHJlZHVuZGFudCBlbnZpcm9ubWVudCwgYW5kIGl0CiAgICBkb2Vzbid0IHN1cHBvcnQgZW1iZWRkZWQgZW52aXJvbm1lbnQuIEJ1dCBhcGFydCBmcm9tIHRoYXQsIGl0IGRvZXMKICAgIHNlZW0gdG8gd29yay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgYjYzNjg0NjdlNmE5N2YyMjVlMGE1ZmQ3YmZjNWM3NTk4ZWY1ZGRjNApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJRnJpIE1heSAxNiAxMToxMDozNCAyMDA4ICswMjAwCgogICAgU1BJIEZsYXNoOiBBZGQgInNmIiBjb21tYW5kCgogICAgVGhpcyBhZGRzIGEgbmV3IGNvbW1hbmQsICJzZiIgd2hpY2ggY2FuIGJlIHVzZWQgdG8gbWFuaXB1bGF0ZSBTUEkKICAgIGZsYXNoLiBDdXJyZW50bHksIGluaXRpYWxpemF0aW9uLCByZWFkaW5nLCB3cml0aW5nIGFuZCBlcmFzaW5nIGlzCiAgICBzdXBwb3J0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGQyNWNlN2QyNGNjMGY5Mzg4MTU1OWY0MDA5MTc1ZWEzMDVhZjY1ZTgKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CUZyaSBNYXkgMTYgMTE6MTA6MzMgMjAwOCArMDIwMAoKICAgIFNQSSBGbGFzaCBzdWJzeXN0ZW0KCiAgICBUaGlzIGFkZHMgYSBuZXcgU1BJIGZsYXNoIHN1YnN5c3RlbS4KCiAgICBDdXJyZW50bHksIG9ubHkgQVQ0NSBEYXRhRmxhc2ggaW4gbm9uLXBvd2VyLW9mLXR3byBtb2RlIGlzIHN1cHBvcnRlZCwKICAgIGJ1dCBzb21lIHByZWxpbWluYXJ5IHN1cHBvcnQgZm9yIG90aGVyIGZsYXNoIHR5cGVzIGlzIGluIHBsYWNlIGFzCiAgICB3ZWxsLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA2MDQ0NWNiNWMzZWI3N2VkMWEwN2YyZDkwOGVlZjA5MTc0NDgzNjk4CkF1dGhvcjogSGFucy1DaHJpc3RpYW4gRWd0dmVkdCA8aGNlZ3R2ZWR0QGF0bWVsLmNvbT4KRGF0ZToJRnJpIE1heSAxNiAxMToxMDozMiAyMDA4ICswMjAwCgogICAgYXRtZWxfc3BpOiBEcml2ZXIgZm9yIHRoZSBBdG1lbCBTUEkgY29udHJvbGxlcgoKICAgIFRoaXMgYWRkcyBhIGRyaXZlciBmb3IgdGhlIFNQSSBjb250cm9sbGVyIGZvdW5kIG9uIG1vc3QgQVQ5MSBhbmQgQVZSMzIKICAgIGNoaXBzLCBpbXBsZW1lbnRpbmcgdGhlIG5ldyBTUEkgQVBJLgoKICAgIENoYW5nZWQgaW4gdjQ6CiAgICAgIC0gVXBkYXRlIHRvIG5ldyBBUEkKICAgICAgLSBIYW5kbGUgemVyby1sZW5ndGggdHJhbnNmZXJzIGFwcHJvcHJpYXRlbHkuIFRoZSB1c2VyIG1heSBzZW5kIGEKCXplcm8tbGVuZ3RoIFNQSSB0cmFuc2ZlciB3aXRoIFNQSV9YRkVSX0VORCBzZXQgaW4gb3JkZXIgdG8KCWRlYWN0aXZhdGUgdGhlIGNoaXAgc2VsZWN0IGFmdGVyIGEgc2VyaWVzIG9mIHRyYW5zZmVycyB3aXRoIGNoaXAKCXNlbGVjdCBhY3RpdmUuIFRoaXMgaXMgdXNlZnVsIGUuZy4gd2hlbiBwb2xsaW5nIHRoZSBzdGF0dXMKCXJlZ2lzdGVyIG9mIERhdGFGbGFzaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBkMjU1YmIwZTc4ZDFjYWM1YjdjOGM5OGNiNzdhMDk1ZjVmMTZkZTBkCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CUZyaSBNYXkgMTYgMTE6MTA6MzEgMjAwOCArMDIwMAoKICAgIFNQSSBBUEkgaW1wcm92ZW1lbnRzCgogICAgVGhpcyBwYXRjaCBnZXRzIHJpZCBvZiB0aGUgc3BpX2NoaXBzZWwgdGFibGUgYW5kIGFkZHMgYSBoYW5kZnVsIG9mIG5ldwogICAgZnVuY3Rpb25zIHRoYXQgbWFrZXMgdGhlIFNQSSBsYXllciBjbGVhbmVyIGFuZCBtb3JlIGZsZXhpYmxlLgoKICAgIEluc3RlYWQgb2YgdGhlIHNwaV9jaGlwc2VsIHRhYmxlLCBlYWNoIGJvYXJkIHRoYXQgd2FudHMgdG8gdXNlIFNQSQogICAgZ2V0cyB0byBpbXBsZW1lbnQgdGhyZWUgaG9va3M6CiAgICAgICogc3BpX2NzX2FjdGl2YXRlKCk6IEFjdGl2YXRlcyB0aGUgY2hpcHNlbGVjdCBmb3IgYSBnaXZlbiBzbGF2ZQogICAgICAqIHNwaV9jc19kZWFjdGl2YXRlKCk6IERlYWN0aXZhdGVzIHRoZSBjaGlwc2VsZWN0IGZvciBhIGdpdmVuIHNsYXZlCiAgICAgICogc3BpX2NzX2lzX3ZhbGlkKCk6IERldGVybWluZXMgaWYgdGhlIGdpdmVuIGJ1cy9jaGlwc2VsZWN0Cgljb21iaW5hdGlvbiBjYW4gYmUgYWN0aXZhdGVkLgoKICAgIE5vdCBhbGwgZHJpdmVycyBtYXkgbmVlZCB0aG9zZSBleHRyYSBmdW5jdGlvbnMgaG93ZXZlci4gSWYgdGhhdCdzIHRoZQogICAgY2FzZSwgdGhlIGJvYXJkIGNvZGUgbWF5IGp1c3QgbGVhdmUgdGhlbSBvdXQgKGFzc3VtaW5nIHRoZXkga25vdyB3aGF0CiAgICB0aGUgZHJpdmVyIG5lZWRzKSBvciByZWx5IG9uIHRoZSBsaW5rZXIgdG8gc3RyaXAgdGhlbSBvdXQgKGFzc3VtaW5nCiAgICAtLWdjLXNlY3Rpb25zIGlzIGJlaW5nIHVzZWQuKQoKICAgIFRvIHNldCB1cCBjb21tdW5pY2F0aW9uIHBhcmFtZXRlcnMgZm9yIGEgZ2l2ZW4gc2xhdmUsIHRoZSBkcml2ZXIgbmVlZHMKICAgIHRvIGNhbGwgc3BpX3NldHVwX3NsYXZlKCkuIFRoaXMgcmV0dXJucyBhIHBvaW50ZXIgdG8gYW4gb3BhcXVlCiAgICBzcGlfc2xhdmUgc3RydWN0IHdoaWNoIG11c3QgYmUgcGFzc2VkIGFzIGEgcGFyYW1ldGVyIHRvIHN1YnNlcXVlbnQgU1BJCiAgICBjYWxscy4gVGhpcyBzdHJ1Y3QgY2FuIGJlIGZyZWVkIGJ5IGNhbGxpbmcgc3BpX2ZyZWVfc2xhdmUoKSwgYnV0IG1vc3QKICAgIGRyaXZlciBwcm9iYWJseSBkb24ndCB3YW50IHRvIGRvIHRoaXMuCgogICAgQmVmb3JlIHN0YXJ0aW5nIG9uZSBvciBtb3JlIFNQSSB0cmFuc2ZlcnMsIHRoZSBkcml2ZXIgbXVzdCBjYWxsCiAgICBzcGlfY2xhaW1fYnVzKCkgdG8gZ2FpbiBleGNsdXNpdmUgYWNjZXNzIHRvIHRoZSBTUEkgYnVzIGFuZCBpbml0aWFsaXplCiAgICB0aGUgaGFyZHdhcmUuIFdoZW4gYWxsIHRyYW5zZmVycyBhcmUgZG9uZSwgdGhlIGRyaXZlciBtdXN0IGNhbGwKICAgIHNwaV9yZWxlYXNlX2J1cygpIHRvIG1ha2UgdGhlIGJ1cyBhdmFpbGFibGUgdG8gb3RoZXJzLCBhbmQgcG9zc2libHkKICAgIHNodXQgZG93biB0aGUgU1BJIGNvbnRyb2xsZXIgaGFyZHdhcmUuCgogICAgc3BpX3hmZXIoKSBiZWhhdmVzIG1vc3RseSB0aGUgc2FtZSBhcyBiZWZvcmUsIGJ1dCBpdCBub3cgdGFrZXMgYQogICAgc3BpX3NsYXZlIHBhcmFtZXRlciBpbnN0ZWFkIG9mIGEgc3BpX2NoaXBzZWwgZnVuY3Rpb24gcG9pbnRlci4gSXQgYWxzbwogICAgZ290IGEgbmV3IHBhcmFtZXRlciwgZmxhZ3MsIHdoaWNoIGlzIHVzZWQgdG8gc3BlY2lmeSBjaGlwIHNlbGVjdAogICAgYmVoYXZpb3VyLiBUaGlzIG1heSBiZSBleHRlbmRlZCB3aXRoIG90aGVyIGZsYWdzIGluIHRoZSBmdXR1cmUuCgogICAgVGhpcyBwYXRjaCBoYXMgYmVlbiBidWlsZC10ZXN0ZWQgb24gYWxsIHBvd2VycGMgYW5kIGFybSBib2FyZHMKICAgIGludm9sdmVkLiBJIGhhdmUgbm90IHRlc3RlZCBOSU9TIHNpbmNlIEkgZG9uJ3QgaGF2ZSBhIHRvb2xjaGFpbiBmb3IgaXQKICAgIGluc3RhbGxlZCwgc28gSSBleHBlY3Qgc29tZSBicmVha2FnZSB0aGVyZSBldmVuIHRob3VnaCBJJ3ZlIHRyaWVkCiAgICBmaXhpbmcgdXAgZXZlcnl0aGluZyBJIGNvdWxkIGZpbmQgYnkgdmlzdWFsIGluc3BlY3Rpb24uCgogICAgSSBoYXZlIHJ1bi10aW1lIHRlc3RlZCB0aGlzIG9uIEFWUjMyIEFUTkdXMTAwIHVzaW5nIHRoZSBhdG1lbF9zcGkgYW5kCiAgICBEYXRhRmxhc2ggZHJpdmVycyBwb3N0ZWQgYXMgYSBmb2xsb3ctdXAuIEknZCBsaWtlIHNvbWUgaGVscCB0ZXN0aW5nCiAgICBvdGhlciBib2FyZHMgdGhhdCB1c2UgdGhlIGV4aXN0aW5nIFNQSSBBUEkuCgogICAgQnV0IG1vc3Qgb2YgYWxsLCBJJ2QgbGlrZSBzb21lIGNvbW1lbnRzIG9uIHRoZSBuZXcgQVBJLiBJcyB0aGlzIHN0dWZmCiAgICB1c2FibGUgZm9yIGV2ZXJ5b25lPyBJZiBub3QsIHdoeT8KCiAgICBDaGFuZ2VkIGluIHY0OgogICAgICAtIEJ1aWxkIGZpeGVzIGZvciB2YXJpb3VzIGJvYXJkcywgZHJpdmVycyBhbmQgY29tbWFuZHMKICAgICAgLSBQcm92aWRlIGNvbW1vbiBzdHJ1Y3Qgc3BpX3NsYXZlIGRlZmluaXRpb24gdGhhdCBjYW4gYmUgZXh0ZW5kZWQgYnkKCWRyaXZlcnMKICAgICAgLSBQYXNzIGEgc3RydWN0IHNwaV9zbGF2ZSAqIHRvIHNwaV9jc19hY3RpdmF0ZSBhbmQgc3BpX2NzX2RlYWN0aXZhdGUKICAgICAgLSBNYWtlIGRlZmF1bHQgYnVzIGFuZCBtb2RlIGJ1aWxkLXRpbWUgY29uZmlndXJhYmxlCiAgICAgIC0gT3ZlcnJpZGUgZGVmYXVsdCBTUEkgYnVzIElEIGFuZCBtb2RlIG9uIG14MzJhZHMgYW5kIGlteDMxX2xpdGVraXQuCgogICAgQ2hhbmdlZCBpbiB2MzoKICAgICAgLSBBZGQgb3BhcXVlIHN0cnVjdCBzcGlfc2xhdmUgZm9yIGNvbnRyb2xsZXItc3BlY2lmaWMgZGF0YSBhc3NvY2lhdGVkCgl3aXRoIGEgc2xhdmUuCiAgICAgIC0gQWRkIHNwaV9jbGFpbV9idXMoKSBhbmQgc3BpX3JlbGVhc2VfYnVzKCkKICAgICAgLSBBZGQgc3BpX2ZyZWVfc2xhdmUoKQogICAgICAtIHNwaV9zZXR1cCgpIGlzIG5vdyBjYWxsZWQgc3BpX3NldHVwX3NsYXZlKCkgYW5kIHJldHVybnMgYQoJc3RydWN0IHNwaV9zbGF2ZQogICAgICAtIHNvZnRfc3BpIG5vdyBzdXBwb3J0cyBmb3VyIFNQSSBtb2RlcyAoQ1BPTHxDUEhBKQogICAgICAtIEFkZCBidXMgcGFyYW1ldGVyIHRvIHNwaV9zZXR1cF9zbGF2ZSgpCiAgICAgIC0gQ29udmVydCB0aGUgbmV3IGkuTVgzMiBTUEkgZHJpdmVyCiAgICAgIC0gQ29udmVydCB0aGUgbmV3IE1DMTM3ODMgUlRDIGRyaXZlcgoKICAgIENoYW5nZWQgaW4gdjI6CiAgICAgIC0gQ29udmVydCB0aGUgbXBjOHh4eF9zcGkgZHJpdmVyIGFuZCB0aGUgbXBjODM0OWVtZHMgYm9hcmQgdG8gdGhlCgluZXcgQVBJLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgogICAgVGVzdGVkLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgMjg5MDExMjA3ZDk5OWIyZTQwODUxNTBkMmFhMzBkNTQ3YWQ5YjgwMApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJRnJpIE1heSAxNiAxMToxMDozMCAyMDA4ICswMjAwCgogICAgTW92ZSBkZWZpbml0aW9uIG9mIGNvbnRhaW5lcl9vZigpIHRvIGNvbW1vbi5oCgogICAgQVZSMzIgYW5kIEFUOTFTQU05IGJvdGggaGF2ZSB0aGVpciBvd24gaWRlbnRpY2FsIGRlZmluaXRpb25zIG9mCiAgICBjb250YWluZXJfb2YoKSB0YWtlbiBmcm9tIHRoZSBMaW51eCBrZXJuZWwuIE1vdmUgaXQgdG8gY29tbW9uLmggc28KICAgIHRoYXQgYWxsIGFyY2hpdGVjdHVyZXMgY2FuIHVzZSBpdC4KCiAgICBjb250YWluZXJfb2YoKSBpcyBhbHJlYWR5IHVzZWQgYnkgc29tZSBkcml2ZXJzLCBhbmQgd2lsbCBiZSB1c2VkCiAgICBleHRlbnNpdmVseSBieSB0aGUgbmV3IGFuZCBpbXByb3ZlZCBTUEkgQVBJLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAxMTBlMDA2ZmU2N2ZiNGE2ZTE3MTlhZTY5NTZjNzliN2ZmYzAxNDhiCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglGcmkgTWF5IDE2IDExOjA4OjExIDIwMDggKzAyMDAKCiAgICBzb2Z0X2kyYzogUHVsbCBTREEgaGlnaCBiZWZvcmUgcmVhZGluZwoKICAgIFNwb3R0ZWQgYnkgRGVhbiBDYXBpbmRhbGUuCgogICAgU3lzdGVtcyB0aGF0IHN1cHBvcnQgb3Blbi1kcmFpbiBHUElPIHByb3Blcmx5IGFyZSBhbGxvd2VkIHByb3ZpZGUgYW4KICAgIGVtcHR5IEkyQ19UUklTVEFURSBkZWZpbmUuIEhvd2V2ZXIsIHRoaXMgbWVhbnMgdGhhdCB3ZSBuZWVkIHRvIGJlCiAgICBjYXJlZnVsIG5vdCB0byBkcml2ZSBTREEgbG93IHdoZW4gdGhlIHNsYXZlIGlzIGV4cGVjdGVkIHRvIHJlc3BvbmQuCgogICAgVGhpcyBwYXRjaCBhZGRzIGEgbWlzc2luZyBJMkNfU0RBKDEpIHRvIHJlYWRfYnl0ZSgpIHJlcXVpcmVkIHRvCiAgICB0cmlzdGF0ZSB0aGUgU0RBIGxpbmUgb24gc3lzdGVtcyB0aGF0IHN1cHBvcnQgb3Blbi1kcmFpbiBHUElPLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAzYzFkZTFhNmQzNmJlOWVlZTI4NGE2YzU5NmE4NmU5NGYxOWNjNWIyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTWF5IDE5IDExOjM0OjUzIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFJlbW92ZSBpbXBsZW1lbnRhdGlvbnMgb2YgdGVzdGRyYW0oKQoKICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUgdXNlZCB0ZXN0ZHJhbSgpIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgYm9hcmQKICAgIHRoYXQgYXJlIG1haW50YWluZWQgYnkgbXlzZWxmLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBiYmVmZjMwY2JkMWM1ZDU1MWViMGFkMWMyMjM5ZWMwMTg0NGMwYjBhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSnVuIDIgMTc6Mzc6MjggMjAwOCArMDIwMAoKICAgIHBwYzR4eDogUmVtb3ZlIHN1cGVyZmx1b3VzIGRyYW1faW5pdCgpIGNhbGwgb3IgcmVwbGFjZSBpdCBieSBpbml0ZHJhbSgpCgogICAgSGlzdG9yaWNhbGx5IHRoZSA0MDUgVS1Cb290IHBvcnQgaGFkIGEgZHJhbV9pbml0KCkgY2FsbCBpbiBlYXJseSBpbml0CiAgICBzdGFnZS4gVGhpcyBmdW5jdGlvbiB3YXMgc3RpbGwgY2FsbGVkIGZyb20gc3RhcnQuUyBhbmQgbW9zdCBvZiB0aGUgdGltZQogICAgY29kZWQgaW4gYXNzZW1ibGVyLiBUaGlzIGlzIG5vdCBuZWVkZWQgYW55bW9yZSAoc2luY2UgYSBsb25nIHRpbWUpIGFuZAogICAgYm9hcmRzIHNob3VsZCBpbXBsZW1lbnQgdGhlIGNvbW1vbiBpbml0ZHJhbSgpIGZ1bmN0aW9uIGluIEMgaW5zdGVhZC4KCiAgICBUaGlzIHBhdGNoIG5vdyByZW1vdmVkIHRoZSBkcmFtX2luaXQoKSBjYWxsIGZyb20gc3RhcnQuUyBhbmQgcmVtb3ZlcyB0aGUKICAgIGVtcHR5IGltcGxlbWVudGF0aW9ucyB0aGF0IGFyZSBzY2F0dGVyZWQgdGhyb3VnaCBtb3N0IG9mIHRoZSA0MDUgYm9hcmQKICAgIHBvcnRzLiBTb21lIG9sZGVyIGJvYXJkIHBvcnRzIHJlYWxseSBpbXBsZW1lbnQgdGhpcyBkcmFtX2luaXQoKSB0aG91Z2guCiAgICBUaGVzZSBhcmU6CgogICAgY3NiMjcyCiAgICBjc2I0NzIKICAgIEVSSUMKICAgIEVYQklUR0VOCiAgICBXN09MTUMKICAgIFc3T0xNRwoKICAgIEkgY2hhbmdlZCB0aG9zZSBib2FyZHMgdG8gY2FsbCB0aGlzIGFzc2VtYmxlciBkcmFtX2luaXQoKSBmdW5jdGlvbiBub3cKICAgIGZyb20gdGhlaXIgYm9hcmQgc3BlY2lmaWMgaW5pdGRyYW0oKSBpbnN0ZWFkLiBUaGlzICpzaG91bGQqIHdvcmssIGJ1dCBwbGVhc2UKICAgIHRlc3QgYWdhaW4gb24gdGhvc2UgcGxhdGZvcm1zLiBBbmQgaXQgaXMgcGVyaGFwcyBhIGdvb2QgaWRlYSB0aGF0IHRob3NlCiAgICBib2FyZHMgdXNlIHNvbWUgY29tbW9uIDQwNSBTRFJBTSBpbml0aWFsaXphdGlvbiBjb2RlIGZyb20gY3B1L3BwYzR4eCBhdAogICAgc29tZSB0aW1lLiBTbyBmdXJ0aGVyIHBhdGNoZXMgd2VsY29tZSBoZXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxOTJmOTBlMjcyYjM5ODllZTdiNGE2NjZkMWZkYWI4MzFmMjBmOGQyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSnVuIDIgMTc6MjI6MTEgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogVXNlIG5ldyA0eHggU0RSQU0gY29udHJvbGxlciBlbmFibGUgZGVmaW5lcyBpbiBjb21tb24gRUNDIGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzliMzJiZTE4Y2QzM2I1M2E4NDA2NWVkY2Q0ZTQ2NTE2NWNjNTU2NApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEp1biAyIDE3OjIwOjAzIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBjb21tb24gRUNDIGdlbmVyYXRpb24gY29kZSBmb3IgNDQwR1Agc3R5bGUgcGxhdGZvcm1zCgogICAgVGhpcyBwYXRjaCBtYWtlcyB0aGUgY29tbW9uIDR4eCBFQ0MgY29kZSByZWFsbHkgdXNhYmxlIG9uIDQ0MEdQIHN0eWxlCiAgICBwbGF0Zm9ybXMuCgogICAgU2luY2UgdGhlIElCTSBERFIgY29udHJvbGxlciB1c2VkIG9uIDQ0MEdQL0dYL0VQL0dSIGlzIG5vdCByZWdpc3RlcgogICAgY29tcGF0aWJsZSB0byB0aGUgSUJNIEREUi8yIGNvbnRyb2xsZXIgdXNlZCBvbiA0MDVFWC80NDBTUC9TUGUvNDYwRVgvR1QKICAgIHdlIG5lZWQgdG8gbWFrZSBzb21lIHByb2Nlc3NvciBkZXBlbmRhbnQgZGVmaW5lcyB1c2VkIGxhdGVyIG9uIGJ5IHRoZQogICAgZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlYzcyNGY4ODNlZTNmMzkyNWU2YzU1MDI3ZThmZmE3MGFkYTgzMzAzCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSnVuIDIgMTc6MTM6NTUgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQ2hhbmdlIEtpbGF1ZWEgdG8gdXNlIHRoZSBjb21tb24gRERSMiBpbml0IGZ1bmN0aW9uCgogICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBraWxhdWVhIGFuZCBraWxhdWVhX25hbmQgKGZvciBOQU5EIGJvb3RpbmcpCiAgICBib2FyZCBwb3J0IHRvIG5vdCB1c2UgYSBib2FyZCBzcGVjaWZpYyBERFIyIGluaXQgcm91dGluZSBhbnltb3JlLiBOb3cKICAgIHRoZSBjb21tb24gY29kZSBmcm9tIGNwdS9wcGM0eHggaXMgdXNlZC4KCiAgICBUaGFua3MgdG8gR3JhbnQgRXJpY2tzb24gZm9yIGFsbCBoaXMgYmFzaWMgd29yayBvbiB0aGlzIDQwNUVYIGVhcmx5CiAgICBib290dXAuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDE3Y2ViMDY5Yjg1ZmJiOTI2OWM0ZGMwOWIyYzIzN2Y4ODMzNGM1YmEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKdW4gMiAxNDo1OToyMSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBDb25zb2xpZGF0ZSBQUEM0eHggU0RSQU0vRERSL0REUjIgZGVmaW5lcywgcGFydDIKCiAgICBUaGlzIHBhdGNoIG5vdyBhZGRzIGEgbmV3IGhlYWRlciBmaWxlIChhc20tcHBjL3BwYzR4eC1zZHJhbS5oKSBmb3IgYWxsCiAgICBwcGM0eHggcmVsYXRlZCBTRFJBTS9ERFIvRERSMiBjb250cm9sbGVyIGRlZmluZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM2ZWExNmY2YTA2NmNjYjA0NmU5MWViY2U0ZjMyNmI2OWY0YzA1NjkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKdW4gMiAxNDo1Nzo0MSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBDb25zb2xpZGF0ZSBQUEM0eHggU0RSQU0vRERSL0REUjIgZGVmaW5lcywgcGFydDEKCiAgICBUaGlzIHBhdGNoIHJlbW92ZXMgYWxsIFNEUkFNIHJlbGF0ZWQgZGVmaW5lcyBmcm9tIHRoZSBQUEM0eHggaGVhZGVycwogICAgcHBjNDA1LmggYW5kIHBwYzQ0MC5oLiBUaGlzIGlzIG5lZWRlZCBzaW5jZSBub3cgc29tZSA0MDUgUFBDJ3MgdXNlCiAgICB0aGUgc2FtZSBTRFJBTSBjb250cm9sbGVyIGFzIDQ0MCBzeXN0ZW1zIGRvIChsaWtlIDQwNUVYIGFuZCA0NDBTUCkuCgogICAgSXQgYWxzbyBpbnRyb2R1Y2VzIG5ldyBkZWZpbmVzIGZvciB0aGUgZXF1aXBwZWQgU0RSQU0gY29udHJvbGxlciBiYXNlZCBvbgogICAgd2hpY2ggUFBDIHZhcmlhbnQgaXMgdXNlZC4gVGhlcmUgbmV3IGRlZmluZXMgYXJlOgoKICAgIHVzZWQgb24gNDA1R1IvQ1IvRVAgYW5kIHNvbWUgWGlsaW54IFZpcnRleCBib2FyZHMuCgogICAgdXNlZCBvbiA0NDBHUC9HWC9FUC9HUi4KCiAgICB1c2VkIG9uIDQ0MEVQeC9HUnguCgogICAgdXNlZCBvbiA0MDVFWC9yLzQ0MFNQL1NQZS80NjBFWC9HVC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNjQ4NTJkMDllMDZkZDZkYjJiMmRiMmEzYzU5YmMyZGIxNzZhNTRkNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEp1biAyIDE0OjM1OjQ0IDIwMDggKzAyMDAKCiAgICBwcGM0eHgvTkFORF9TUEw6IENvbnNvbGlkYXRlIDQwNSBhbmQgNDQwIE5BTkQgYm9vdGluZyBjb2RlIGluIHN0YXJ0LlMKCiAgICBUaGlzIHBhdGNoIGNvbnNvbGlkYXRlcyB0aGUgNDA1IGFuZCA0NDAgcGFydHMgb2YgdGhlIE5BTkQgYm9vdGluZyBjb2RlCiAgICBzZWxlY3RlZCB2aWEgQ09ORklHX05BTkRfU1BMLiBOb3cgY29tbW9uIGNvZGUgaXMgdXNlZCB0byBpbml0aWFsaXplIHRoZQogICAgU0RSQU0gYnkgY2FsbGluZyBpbml0ZHJhbSgpIGFuZCB0byAiY29weS9yZWxvY2F0ZSIgdG8gU0RSQU0vT0NNL2V0Yy4KICAgIE9ubHkgKmFmdGVyKiBydW5uaW5nIGZyb20gdGhpcyBsb2NhdGlvbiwgbmFuZF9ib290KCkgaXMgY2FsbGVkLgoKICAgIFBsZWFzZSBub3RlIHRoYXQgdGhlIGluaXRzZHJhbSgpIGNhbGwgaXMgbm93IG1vdmVkIGZyb20gbmFuZF9ib290LmMKICAgIHRvIHN0YXJ0LlMuIEkgZXhwZXJpZW5jZWQgcHJvYmxlbXMgd2l0aCBzb21lIGJvYXJkcyBsaWtlIEtpbGF1ZWEKICAgICg0MDVFWCksIHdoaWNoIGRvbid0IGhhdmUgaW50ZXJuYWwgU1JBTSAoT0NNKSBhbmQgcmVsb2NhdGlvbiBuZWVkcyB0bwogICAgYmUgZG9uZSB0byBTRFJBTSBiZWZvcmUgdGhlIE5BTkQgY29udHJvbGxlciBjYW4gZ2V0IGFjY2Vzc2VkLiBXaGVuCiAgICBpbml0ZHJhbSgpIGlzIGNhbGxlZCBsYXRlciBvbiBpbiBuYW5kX2Jvb3QoKSwgdGhpcyBjYW4gbGVhZCB0byBwcm9ibGVtcwogICAgd2l0aCB2YXJpYWJsZXMgaW4gdGhlIGJzcyBzZWN0aW9ucyBsaWtlIG5hbmRfZWNjX3Bvc1tdLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4YTI0YzA3YmE1ZGEyYzcyYWQxZjA1ZTNlYjhhNDYzNzUwMjAwYzk4CkF1dGhvcjogR3JhbnQgRXJpY2tzb24gPGdlcmlja3NvbkBudW92YXRpb25zLmNvbT4KRGF0ZToJVGh1IE1heSAyMiAxNDo0NDoyNCAyMDA4IC0wNzAwCgogICAgcHBjNHh4OiBFbmFibGUgUHJpbW9yZGlhbCBTdGFjayBmb3IgNDB4IGFuZCBVbmlmeSBFQ0MgSGFuZGxpbmcKCiAgICBUaGlzIHBhdGNoIChQYXJ0IDIgb2YgMik6CgogICAgKiBSb2xscyB1cCBhIHN1aXRlIG9mIGNoYW5nZXMgdG8gZW5hYmxlIGNvcnJlY3QgcHJpbW9yZGlhbCBzdGFjayBhbmQKICAgICAgZ2xvYmFsIGRhdGEgaGFuZGxpbmcgd2hlbiB0aGUgZGF0YSBjYWNoZSBpcyB1c2VkIGZvciBzdWNoIGEgcHVycG9zZQogICAgICBmb3IgUFBDNDB4LXZhcmlhbnRzIChpLmUuIENGR19JTklUX0RDQUNIRV9DUykuCgogICAgKiBSZWxhdGVkIHRvIHRoZSBmaXJzdCwgdW5pZmllcyBERFIyIFNEUkFNIGFuZCBFQ0MgaW5pdGlhbGl6YXRpb24gYnkKICAgICAgZWxpbWluYXRpbmcgcmVkdW5kYW50IEVDQyBpbml0aWFsaXphdGlvbiBpbXBsZW1lbnRhdGlvbnMgYW5kIG1vdmluZwogICAgICByZWR1bmRhbnQgU0RSQU0gaW5pdGlhbGl6YXRpb24gb3V0IG9mIGJvYXJkIGNvZGUgaW50byBzaGFyZWQgNHh4CiAgICAgIGNvZGUuCgogICAgKiBFbmFibGVzIE1DU1IgdmlzaWJpbGl0eSBvbiB0aGUgNDA1RVgocikuCgogICAgKiBFbmFibGVzIHRoZSB1c2Ugb2YgdGhlIGRhdGEgY2FjaGUgZm9yIGluaXRpYWwgUkFNIG9uCiAgICAgIGJvdGggQU1DQydzIEtpbGF1ZWEgYW5kIE1ha2FsdSBhbmQgcmVtb3ZlcyBhIHJlZHVuZGFudAogICAgICBDRkdfUE9TVF9NRU1PUlkgZmxhZyBmcm9tIGVhY2ggYm9hcmQncyBDT05GSUdfUE9TVCB2YWx1ZS4KCiAgICAgIC0gUmVtb3ZlZCwgcGVyIFN0ZWZhbiBSb2VzZSdzIHJlcXVlc3QsIGRlZnVuY3QgbWVtb3J5LmMgZmlsZSBmb3IKCU1ha2FsdSBhbmQgcm9sbGVkIHNkcmFtX2luaXQgZnJvbSBpdCBpbnRvIG1ha2FsdS5jLgoKICAgIFdpdGggcmVzcGVjdCB0byB0aGUgNHh4IEREUiBpbml0aWFsaXphdGlvbiBhbmQgRUNDIHVuaWZpY2F0aW9uLCB0aGVyZQogICAgaXMgY2VydGFpbmx5IG1vcmUgd29yayB0aGF0IGNhbiBhbmQgc2hvdWxkIGJlIGRvbmUgKGZpbGUgcmVuYW1pbmcsCiAgICBldGMuKS4gSG93ZXZlciwgdGhhdCBjYW4gYmUgaGFuZGxlZCBhdCBhIGxhdGVyIGRhdGUgb24gYSBzZWNvbmQgb3IKICAgIHRoaXJkIHBhc3MuIEFzIGl0IHN0YW5kcywgdGhpcyBwYXRjaCBtb3ZlcyB0aGluZ3MgZm9yd2FyZCBpbiBhbgogICAgaW5jcmVtZW50YWwgeWV0IHBvc2l0aXZlIHdheSBmb3IgdGhvc2UgcGxhdGZvcm1zIHRoYXQgdXRpbGl6ZSB0aGlzCiAgICBjb2RlIGFuZCB0aGUgZmVhdHVyZXMgYXNzb2NpYXRlZCB3aXRoIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IEVyaWNrc29uIDxnZXJpY2tzb25AbnVvdmF0aW9ucy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzgyMWI1ZjEyMGJlZGY3Mzg2NzUxMzQ2NjQxMjU4N2M2OTEyYThmOApBdXRob3I6IEdyYW50IEVyaWNrc29uIDxnZXJpY2tzb25AbnVvdmF0aW9ucy5jb20+CkRhdGU6CVRodSBNYXkgMjIgMTQ6NDQ6MTQgMjAwOCAtMDcwMAoKICAgIHBwYzR4eDogRW5hYmxlIFByaW1vcmRpYWwgU3RhY2sgZm9yIDQweCBhbmQgVW5pZnkgRUNDIEhhbmRsaW5nCgogICAgVGhpcyBwYXRjaCAoUGFydCAxIG9mIDIpOgoKICAgICogUm9sbHMgdXAgYSBzdWl0ZSBvZiBjaGFuZ2VzIHRvIGVuYWJsZSBjb3JyZWN0IHByaW1vcmRpYWwgc3RhY2sgYW5kCiAgICAgIGdsb2JhbCBkYXRhIGhhbmRsaW5nIHdoZW4gdGhlIGRhdGEgY2FjaGUgaXMgdXNlZCBmb3Igc3VjaCBhIHB1cnBvc2UKICAgICAgZm9yIFBQQzQweC12YXJpYW50cyAoaS5lLiBDRkdfSU5JVF9EQ0FDSEVfQ1MpLgoKICAgICogUmVsYXRlZCB0byB0aGUgZmlyc3QsIHVuaWZpZXMgRERSMiBTRFJBTSBhbmQgRUNDIGluaXRpYWxpemF0aW9uIGJ5CiAgICAgIGVsaW1pbmF0aW5nIHJlZHVuZGFudCBFQ0MgaW5pdGlhbGl6YXRpb24gaW1wbGVtZW50YXRpb25zIGFuZCBtb3ZpbmcKICAgICAgcmVkdW5kYW50IFNEUkFNIGluaXRpYWxpemF0aW9uIG91dCBvZiBib2FyZCBjb2RlIGludG8gc2hhcmVkIDR4eAogICAgICBjb2RlLgoKICAgICogRW5hYmxlcyBNQ1NSIHZpc2liaWxpdHkgb24gdGhlIDQwNUVYKHIpLgoKICAgICogRW5hYmxlcyB0aGUgdXNlIG9mIHRoZSBkYXRhIGNhY2hlIGZvciBpbml0aWFsIFJBTSBvbgogICAgICBib3RoIEFNQ0MncyBLaWxhdWVhIGFuZCBNYWthbHUgYW5kIHJlbW92ZXMgYSByZWR1bmRhbnQKICAgICAgQ0ZHX1BPU1RfTUVNT1JZIGZsYWcgZnJvbSBlYWNoIGJvYXJkJ3MgQ09ORklHX1BPU1QgdmFsdWUuCgogICAgICAtIFJlbW92ZWQsIHBlciBTdGVmYW4gUm9lc2UncyByZXF1ZXN0LCBkZWZ1bmN0IG1lbW9yeS5jIGZpbGUgZm9yCglNYWthbHUgYW5kIHJvbGxlZCBzZHJhbV9pbml0IGZyb20gaXQgaW50byBtYWthbHUuYy4KCiAgICBXaXRoIHJlc3BlY3QgdG8gdGhlIDR4eCBERFIgaW5pdGlhbGl6YXRpb24gYW5kIEVDQyB1bmlmaWNhdGlvbiwgdGhlcmUKICAgIGlzIGNlcnRhaW5seSBtb3JlIHdvcmsgdGhhdCBjYW4gYW5kIHNob3VsZCBiZSBkb25lIChmaWxlIHJlbmFtaW5nLAogICAgZXRjLikuIEhvd2V2ZXIsIHRoYXQgY2FuIGJlIGhhbmRsZWQgYXQgYSBsYXRlciBkYXRlIG9uIGEgc2Vjb25kIG9yCiAgICB0aGlyZCBwYXNzLiBBcyBpdCBzdGFuZHMsIHRoaXMgcGF0Y2ggbW92ZXMgdGhpbmdzIGZvcndhcmQgaW4gYW4KICAgIGluY3JlbWVudGFsIHlldCBwb3NpdGl2ZSB3YXkgZm9yIHRob3NlIHBsYXRmb3JtcyB0aGF0IHV0aWxpemUgdGhpcwogICAgY29kZSBhbmQgdGhlIGZlYXR1cmVzIGFzc29jaWF0ZWQgd2l0aCBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBFcmlja3NvbiA8Z2VyaWNrc29uQG51b3ZhdGlvbnMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGE0Mzk2ODAwMTllMDYxNzFkNGE1Njk0Yjc5OTJhY2NjZTg3ZjU5MGUKQXV0aG9yOiBHcmFudCBFcmlja3NvbiA8Z2VyaWNrc29uQG51b3ZhdGlvbnMuY29tPgpEYXRlOglXZWQgTWF5IDIxIDEzOjI4OjMwIDIwMDggLTA3MDAKCiAgICBQUEM0eHg6IFNpbXBsaWZpZWQgcG9zdF93b3JkX3tsb2FkLCBzdG9yZX0KCiAgICBUaGlzIHBhdGNoIHNpbXBsaWZpZXMgcG9zdF93b3JkX3tsb2FkLHN0b3JlfSBieSB1c2luZyB0aGUgcHJlcHJvY2Vzc29yCiAgICB0byBlbGltaW5hdGUgcmVkdW5kYW50LCBjb3B5LWFuZC1wYXN0ZWQgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBFcmlja3NvbiA8Z2VyaWNrc29uQG51b3ZhdGlvbnMuY29tPgoKY29tbWl0IGY5Nzk2OTBlZTMzNzQ1MGIyMDMwYWJhMTI4Zjk1YjdhOGQ5ODgxYzAKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgTWF5IDE1IDE1OjEzOjA4IDIwMDggLTA1MDAKCiAgICBGaXggd2FybmluZ3MgZnJvbSBnY2MtNC4zLjAgYnVpbGQgb24gYSBwcGMgaG9zdAoKICAgICogVGhlIGNmaV9mbGFzaC5jIG1lbXNldCBmaXggYWN0dWFsIGFsbG93cyB0aGUgYm9hcmQgdG8gYm9vdCBzbyB0aGVyZSBpcwogICAgICBhIGJpdCBtb3JlIGdvaW5nIG9uIGhlcmUgdGhhbiBqdXN0IHJlc29sdmluZyB3YXJuaW5ncyBhc3NvY2lhdGVkIHdpdGgKICAgICAgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMuCgogICAgKiBpbmNsdWRlL2FzbS9iaXRvcHMuaDozMDI6IHdhcm5pbmc6ICdfX3N3YWIzMnAnIGlzIHN0YXRpYyBidXQgdXNlZCBpbgogICAgICBpbmxpbmUgZnVuY3Rpb24gJ2V4dDJfZmluZF9uZXh0X3plcm9fYml0JyB3aGljaCBpcyBub3Qgc3RhdGljCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA5YjEyNGE2ODM0NmNlOTYwNWI2ZTFmY2Y3OWUxMDIxNTQxY2RiYTllCkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXkgMTQgMTM6MDk6NTEgMjAwOCAtMDUwMAoKICAgIE1QQzUxMng6IENoYW5nZSB0cmFwcy5jIHRvIG5vdCByZWZlcmVuY2Ugbm9uLWFkZHJlc3NhYmxlIG1lbW9yeQoKICAgIEN1cnJlbnRseSwgRU5EX09GX1JBTSBpcyB1c2VkIGJ5IHRoZSB0cmFwIGNvZGUgdG8gZGV0ZXJtaW5lIGlmCiAgICB3ZSBzaG91bGQgYXR0ZW1wdCB0byBhY2Nlc3MgdGhlIHN0YWNrIHBvaW50ZXIgb3Igbm90LiBIb3dldmVyLAogICAgb24gc3lzdGVtcyB3aXRoIGEgbG90IG9mIFJBTSwgb25seSBhIHN1YnNldCBvZiB0aGUgUkFNIGlzCiAgICBndWFyYW50ZWVkIHRvIGJlIG1hcHBlZCBpbiBhbmQgYWNjZXNzaWJsZS4JQ2hhbmdlIEVORF9PRl9SQU0KICAgIHRvIHVzZSBnZXRfZWZmZWN0aXZlX21lbXNpemUoKSBpbnN0ZWFkIG9mIHVzaW5nIHRoZSByYXcgcmFtCiAgICBzaXplIG91dCBvZiB0aGUgYmQuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODE2NzNlOWFlMTRiNzcxY2QxM2ZhZjE5OTQ3MTkyNTk5Y2FlMzk1OQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBNYXkgMTMgMTk6MDE6NTQgMjAwOCAtMDUwMAoKICAgIE1ha2Ugc3VyZSBjb21tb24uaCBpcyB0aGUgZmlyc3QgaW5jbHVkZS4KCiAgICBJZiBjb21tb24uaCBpc24ndCBmaXJzdCB3ZSBjYW4gZ2V0IENPTkZJR18gb3B0aW9ucyBkZWZpbmVkIGluIHRoZQogICAgYm9hcmQgY29uZmlnIGZpbGUgaWdub3JlZC4JVGhpcyBjYW4gY2F1c2UgYW4gaXNzdWUgaWYgYW55IG9mIHRob3NlCiAgICBjb25maWcgb3B0aW9ucyBpbXBhY3QgdGhlIHNpemUgb2YgdHlwZXMgb2YgZGF0YSBzdHJ1Y3R1cmVzCiAgICAoZWcgQ09ORklHX1BIWVNfNjRCSVQpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgOTVkNDQ5YWQ0ZGU3OWRkMzJiMTcwNWI4YTRkMzU1MGYxZTkwODFlMwpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBNYXkgMTMgMTU6NTM6MjkgMjAwOCArMDIwMAoKICAgIEF2b2lkIGluaXRyZCBhbmQgbG9nYnVmZmVyIGFyZWEgb3ZlcmxhcHMKCiAgICBBZGQgbG9nYnVmZmVyIHRvIHJlc2VydmVkIExNQiBhcmVhcyB0byBwcmV2ZW50IGluaXRyZCBhbGxvY2F0aW9uCiAgICBmcm9tIG92ZXJsYXBpbmcgd2l0aCBpdC4KCiAgICBNYWtlIHN1cmUgdG8gdXNlIGNvcnJlY3QgbG9nYnVmZmVyIGJhc2UgYWRkcmVzcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDY5NTZkNTNkOTkzNDg2MjUwN2Y4M2YwZTMyNTVkZmQ0NjYyZTc0ODIKQXV0aG9yOiBTYXNjaGEgTGF1ZSA8c2FzY2hhLmxhdWVAbGllYmhlcnIuY29tPgpEYXRlOglUdWUgTWF5IDEzIDEzOjI5OjU0IDIwMDggKzAyMDAKCiAgICBsd21vbjU6IGFkZCBtZW1vcnktcGF0dGVybi10ZXN0IHRvIEZQR0EgUE9TVC4KCmNvbW1pdCBlMzRhMGU5MTFiNmExNTY4ZDBjYTg2NDIzNGZiZDBlZTA2MGQ5YjM1CkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBNYXkgOCAxOTowMjo1MSAyMDA4IC0wNTAwCgogICAgUFBDOiA4Nnh4IEFkZCBiYXQgcmVnaXN0ZXJzIHRvIHJlZ2luZm8gY29tbWFuZAoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ1YjliOGNkYjhiNmViM2E4YjBmNWQ5OTA5ZDY5Y2NjOWM3MDNlZDkKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE1heSA5IDE1OjQxOjM1IDIwMDggLTA1MDAKCiAgICBQUEM6IEFkZCBwcmludF9iYXRzKCkgdG8gbGliX3BwYy9iYXRfcncuYwoKICAgIFRoaXMgZnVuY3Rpb24gcHJpbnRzIHRoZSB2YWx1ZXMgb2YgYWxsIHRoZSBCQVQgcmVnaXN0ZXIKICAgIHBhaXJzIC0gSSBuZWVkZWQgdGhpcyBmb3IgZGVidWcgZWFybGllciB0aGlzIHdlZWs7IGFkZGluZyBpdCB0bwogICAgbGliX3BwYyBzbyBvdGhlcnMgY2FuIHVzZSBpdCAoYW5kIGFkZCBpdCB0byByZWdpbmZvIGNvbW1hbmRzCiAgICBpZiBzbyBkZXNpcmVkKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjMTQ4ZjI0YzE1NzQzYTAyZTg1NTYzNmU2YmVkMDEzYmQxMjFmN2YyCkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBNYXkgMTUgMjE6Mjk6MDQgMjAwOCAtMDUwMAoKICAgIFBQQzogQ2hhbmdlIGxpYl9wcGMvYmF0X3J3LmMgdG8gdXNlIGhpZ2ggYmF0cwoKICAgIEN1cnJlbnRseSwgdGhpcyBjb2RlIG9ubHkgZGVhbHMgd2l0aCBCQVRzIDAtMywgd2hpY2ggbWFrZXMKICAgIGl0IHVzZWxlc3Mgb24gc3lzdGVtcyB0aGF0IHN1cHBvcnQgQkFUcyA0LTcuICBBZGQgdGhlCiAgICBzdXBwb3J0IGZvciB0aGVzZSByZWdpc3RlcnMuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPEJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzFkODI2NzIyNDM0OTMxZTExNTJhMDlkMTQwMTg3ZGNmNzJmOGFhYwpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWF5IDggMTk6MDI6MTIgMjAwOCAtMDUwMAoKICAgIFBQQzogQ3JlYXRlIGFuZCB1c2UgQ09ORklHX0hJR0hfQkFUUwoKICAgIENoYW5nZSBhbGwgY29kZSB0aGF0IGNvbmRpdGlvbmFsbHkgb3BlcmF0ZXMgb24gaGlnaCBiYXQKICAgIHJlZ2lzdGVycyAodGhhdCBpcywgQkFUcyA0LTcpIHRvIGxvb2sgYXQgQ09ORklHX0hJR0hfQkFUUwogICAgaW5zdGVhZCBvZiB0aGUgbXlyaWFkIHdheXMgdGhpcyBpcyBkb25lIG5vdy4gIERlZmluZSB0aGUgb3B0aW9uCiAgICBmb3IgZXZlcnkgY29uZmlnIGZvciB3aGljaCBoaWdoIGJhdHMgYXJlIHN1cHBvcnRlZCAoYW5kCiAgICBlbmFibGVkIGJ5IGVhcmx5IGJvb3QsIG9uIHBhcnRzIHdoZXJlIHRoZXkncmUgbm90IGFsd2F5cwogICAgZW5hYmxlZCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhYTNiOGJmOWMzMDA2NWJiMmVhODUyNzk5ZDMyZGI1MDIwNTk4NDk1CkF1dGhvcjogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CkRhdGU6CVdlZCBNYXkgMjggMTk6NTU6MTkgMjAwOCArMDIwMAoKICAgIEUxMDAwOiBBZGQgc3VwcG9ydCBmb3IgdGhlIDgyNTQxR0kgTEYgSW50ZWwgUHJvIDEwMDAgR1QgRGVza3RvcCBBZGFwdGVyCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGZmMzZmYmIyZTc1ODNmYjgwOGVlZjc3M2Y1MTE0ODljN2E5YzJkZjMKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWF5IDI4IDEzOjA2OjI1IDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogQWRkIDEwIGJhc2UgZXRoZXJuZXQgc3VwcG9ydCBmb3IgbWNmNTQ0NXgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCAxYTlmY2M0Yjc2NTU5OWRiMjRmYTljMzIyOTM1OTlmMjRjN2ExOWJhCkF1dGhvcjogSmFzb24gTWNNdWxsYW4gPG1jbXVsbGFuQG5ldGFwcC5jb20+CkRhdGU6CUZyaSBNYXkgMzAgMDA6NTM6MzggMjAwOCArMDkwMAoKICAgIG1pcHM6IEFkZCBhbiAnaW5jbHVkZS9hc20vZXJybm8uaCcsIGxpa2UgYWxsIG90aGVyIGFyY2hpdGVjdHVyZXMKCiAgICBBbGwgb3RoZXIgdS1ib290IGFyY2hpdGVjdHVyZXMgaGF2ZSBhbiBpbmNsdWRlL2FzbS9lcnJuby5oLCBzbwogICAgdGhpcyBjaGFuZ2UgYWRkcyBpdCB0byB0aGUgbWlwcyBpbmNsdWRlL2FzbS1taXBzIGhlYWRlcnMgYWxzby4KCiAgICBTdG9sZW4gZnJvbSBMaW51eCAyLjYuMjUuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gTWNNdWxsYW4gPG1jbXVsbGFuQG5ldGFwcC5jb20+Cgpjb21taXQgZTJhZDg0MjY2MjRiYWM0NTdhY2M2OTI1YjZmZjQwOGU5YmYyMDQ2NgpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CUZyaSBNYXkgMzAgMDA6NTM6MzggMjAwOCArMDkwMAoKICAgIFtNSVBTXSA8YXNtL21pcHNyZWdzLmg+OiBVcGRhdGUgY29wcm9jZXNzb3IgcmVnaXN0ZXIgYWNjZXNzIG1hY3JvcwoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgMWEzYWRhYzgxYzI5MmYyZWU3NmU0M2NkZWIyZmJlOGY5MTVmZTE5NApBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CUZyaSBNYXkgMzAgMDA6NTM6MzggMjAwOCArMDkwMAoKICAgIFtNSVBTXSA8YXNtL21pcHNyZWdzLmg+OiBVcGRhdGUgcmVnaXN0ZXIgLyBiaXQgZmllbGQgZGVmaW5pdGlvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IGJmNDYyYWU0NTBhN2YyZWVlZGRjNjk5ZWQzNDViMzkxZTMyNjM1NDAKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglGcmkgTWF5IDMwIDAwOjUzOjM3IDIwMDggKzA5MDAKCiAgICBbTUlQU10gPGFzbS9taXBzcmVncy5oPjogQ29kaW55Z1N0eWxlIGNsZWFudXBzCgogICAgTm8gZnVuY3Rpb25hbCBjaGFuZ2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgODlhMTU1MGVjNmI3NDQ1MjI3NGE3YTIzMTI3OTM2ZTJjN2VlYzcxMQpBdXRob3I6IEphc29uIE1jTXVsbGFuIDxtY211bGxhbkBuZXRhcHAuY29tPgpEYXRlOglGcmkgTWF5IDMwIDAwOjUzOjM3IDIwMDggKzA5MDAKCiAgICBtaXBzOiBJZiBDT05GSUdfQ01EX1NQSSBpcyBkZWZpbmVkLCBjYWxsIHNwaV9pbml0KCkKCiAgICBUaGUgbWlwcyBhcmNoaXRlY3R1cmUgY3VycmVudGx5IGRvZXMgbm90IGNhbGwgJ3NwaV9pbml0KCknIGluIHRoZSBnZW5lcmljCiAgICBib2FyZCBpbml0aWFsaXphdGlvbiByb3V0aW5lIGlzIENPTkZJR19DTURfU1BJIGlzIGRlZmluZWQuCgogICAgVGhpcyBwYXRjaCByZWN0aWZpZXMgdGhhdCBwcm9ibGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIE1jTXVsbGFuIDxtY211bGxhbkBuZXRhcHAuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBlOTk2YmMzMzliMGYzOWY2YzBiMjliMTQ1NWJhN2ViMzE4YjAyM2QzCkF1dGhvcjogSmFzb24gTWNNdWxsYW4gPG1jbXVsbGFuQG5ldGFwcC5jb20+CkRhdGU6CUZyaSBNYXkgMzAgMDA6NTM6MzcgMjAwOCArMDkwMAoKICAgIFtNSVBTXSBsaWJfbWlwcy9ib2FyZC5jOiBBZGQgbmFuZF9pbml0CgogICAgVGhpcyBwYXRjaCBhZGRzIHRoZSBzdGFuZGFyZCAnbmFuZF9pbml0KCknIGNhbGwgdG8gdGhlIG1pcHMgZ2VuZXJpYwogICAgJ2JvYXJkX2luaXRfcigpJyBjYWxsLCBicmluZ2luZyBNSVBTIGluIGxpbmUgd2l0aCB0aGUgb3RoZXIgYXJjaGl0ZWN0dXJlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBNY011bGxhbiA8bWNtdWxsYW5AbmV0YXBwLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgZDZhYzJlZDg5M2MyMTY4NzM4YWVlMDE1NzlkNjI4M2FmOGQzNzA0NQpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWF5IDIyIDEwOjQ5OjQ2IDIwMDggLTA1MDAKCiAgICBSZW1vdmUgcHJvdG90eXBlcyBvZiBuYW5kX2luaXQoKSBpbiBmYXZvciBvZiBpbmNsdWRpbmcgbmFuZC5oLgoKICAgIExpa2V3aXNlIHdpdGggb25lbmFuZF9pbml0KCkuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjI5YzU2ZjA3YTgyZWFjZGE4Yzg3MjBjYjE0NmZjOWJlMGY2ZGI1NApBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWF5IDIyIDEwOjQ5OjAwIDIwMDggLTA1MDAKCiAgICBNYWtlIG9uZW5hbmRfdWJvb3QuaCBzZWxmLXN1ZmZpY2llbnQuCgogICAgRG9uJ3QgYXNzdW1lIHR5cGVzIGFyZSBwcm92aWRlZCBieSBwcmV2aW91c2x5IGluY2x1ZGVkIGhlYWRlcnMuCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTcyM2JiYjQ2YWJiN2IyY2EyNGVlYWQ1MTE0YTNmYWE1ODA2MGMyMApBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ21haWwuY29tPgpEYXRlOglXZWQgSmFuIDE2IDE0OjI2OjU5IDIwMDggKzAxMDAKCiAgICBuYW5kOiBDb3JyZWN0IE5BTkQgZXJhc2UgcGVyY2VudGFnZSBvdXRwdXQKCiAgICBGb3IgTkFORCBlcmFzZSBzaXplcyBzbWFsbGVyIHRoYW4gb25lIE5BTkQgZXJhc2UgYmxvY2ssIGVyYXNlCiAgICBwZXJjZW50YWdlIG91dHB1dCBiZWNvbWVzIGdyYXRlciB0aGFuIDEwMCUgZS5nLgoKICAgIC0tIGN1dCAtLQogICAgICA+IG5hbmQgaW5mbwogICAgRGV2aWNlIDA6IE5BTkQgNjRNaUIgMSw4ViA4LWJpdCwgc2VjdG9yIHNpemUgMTYgS2lCCiAgICAgID4gbmFuZCBlcmFzZSAweDEwMDAwMCAweDIwMDAKICAgIE5BTkQgZXJhc2U6IGRldmljZSAwIG9mZnNldCAweDEwMDAwMCwgc2l6ZSAweDIwMDAKICAgIEVyYXNpbmcgYXQgMHgxMDAwMDAgLS0gMjAwJSBjb21wbGV0ZS4KICAgIE9LCiAgICAgID4KICAgIC0tIGN1dCAtLQoKICAgIENvcnJlY3QgdGhpcyBhbmQgZ2l2ZSB1c2VyIGEgd2FybmluZyB0aGF0IG1vcmUgaXMgZXJhc2VkIHRoYW4gc3BlY2lmaWVkOgoKICAgIC0tIGN1dCAtLQogICAgICA+IG5hbmQgZXJhc2UgMHgxMDAwMDAgMHgyMDAwCiAgICBOQU5EIGVyYXNlOiBkZXZpY2UgMCBvZmZzZXQgMHgxMDAwMDAsIHNpemUgMHgyMDAwCiAgICBXYXJuaW5nOiBFcmFzZSBzaXplIDB4MDAwMDIwMDAgc21hbGxlciB0aGFuIG9uZSBlcmFzZSBibG9jayAweDAwMDA0MDAwCgkgICAgICAgRXJhc2luZyAweDAwMDA0MDAwIGluc3RlYWQKICAgIEVyYXNpbmcgYXQgMHgxMDAwMDAgLS0gMTAwJSBjb21wbGV0ZS4KICAgIE9LCiAgICAgID4KICAgIC0tIGN1dCAtLQoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ21haWwuY29tPgoKY29tbWl0IDU5MjJkYjZjMDk0ODUwNmJlOTFlMGRlNDRlN2E2ODYzYTE4YTQxN2YKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglUdWUgTWF5IDEzIDE3OjMxOjI0IDIwMDggKzAyMDAKCiAgICBDbGVhbnVwIG5hbmRfaW5mb1tdIGRlY2xhcmF0aW9uLgoKICAgIFRoZSBuYW5kX2luZm8gYXJyYXkgaXMgZGVjbGFyZWQgYXMgZXh0ZXJuIGluIHNldmVyYWwgLmMgZmlsZXMuCiAgICBUaG9zZSBkYXlzLCBuYW5kLmggY29udGFpbnMgYSByZWZlcmVuY2UgdG8gdGhlIGFycmF5LCBzbyB0aGVyZSBpcwogICAgbm8gbmVlZCB0byBkZWNsYXJlIGl0IGVsc2V3aGVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTM1ZjBhNzQ4OGFmMjk0N2FkYmU0YjQwYjc5MjgwYmRmZTVlOTg4NgpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTWF5IDE5IDA5OjMwOjQzIDIwMDggLTA1MDAKCiAgICBOQU5EOiBQcm92aWRlIGEgc2FuZSBkZWZhdWx0IGZvciBOQU5EX01BWF9DSElQUy4KCiAgICBUaGlzIGFsbG93cyB0aGUgaGVhZGVyIHRvIGJlIGluY2x1ZGVkIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBhIGJvYXJkJ3MKICAgIGNvbmZpZyBmaWxlIHByb3ZpZGVzIE5BTkQtcmVsYXRlZCBkZWZpbmluaXRpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE4MDkyYzAyMWQyN2YyN2Y0YjMyM2I3ZDQ5OTc5Y2EwMWIzZmMxOWQKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CU1vbiBNYXkgMjYgMTI6MTk6MTAgMjAwOCArMDIwMAoKICAgIGF2cjMyOiBGaXggdGhlb3JldGljYWwgcmFjZSBpbiB1ZGVsYXkoKQoKICAgIElmIHRoZSBzcGVjaWZpZWQgZGVsYXkgaXMgdmVyeSBzaG9ydCwgdGhlIGN5Y2xlIGNvdW50ZXIgbWF5IGdvIHBhc3QgdGhlCiAgICAiZW5kIiB0aW1lIHdlIGFyZSB3YWl0aW5nIGZvciBiZWZvcmUgd2UgZ2V0IGFyb3VuZCB0byByZWFkaW5nIGl0LgoKICAgIEZpeCBpdCBieSBjaGVja2luZyB0aGUgZGlmZmVyZW50IGJldHdlZW4gdGhlIGN5Y2xlIGNvdW50ICJub3ciIGFuZCB0aGUKICAgIGN5Y2xlIGNvdW50IGF0IHRoZSBiZWdpbm5pbmcuIFRoaXMgd2lsbCB3b3JrIGFzIGxvbmcgYXMgdGhlIGRlbGF5CiAgICBtZWFzdXJlZCBpbiBudW1iZXIgb2YgY3ljbGVzIGlzIGJlbG93IDJeMzEuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDQ4ZWE2MjNlYWU4Njc0NzkzMzcyZTNlN2M5NWU3MmU1YTQ0ZDdhOTUKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVdlZCBNYXkgMjEgMTM6MDE6MDkgMjAwOCArMDIwMAoKICAgIGF2cjMyOiBDb21waWxlIGF0bWVsX21jaS5vIGNvbmRpdGlvbmFsbHkKCiAgICBSZW1vdmUgI2lmZGVmIENPTkZJR19NTUMgZnJvbSB0aGUgc291cmNlIGZpbGUgYW5kIHVzZSBjb25kaXRpb25hbAogICAgY29tcGlsYXRpb24gaW4gdGhlIE1ha2VmaWxlIGluc3RlYWQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGU5MmE1YmY4MzMwNjU0ZTMzYWMxM2Y2YjMwNTg2MzRlNThmNWQxYzAKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBNYXkgMjIgMTI6Mjg6MjUgMjAwOCArMDIwMAoKICAgIGF2cjMyOiBGaXggd3JvbmcgZXJyb3IgZmxhZ3MgaW4gYXRtZWxfbWNpIGRyaXZlcgoKICAgIE1ha2Ugc3VyZSB3ZSBjaGVjayBmb3IgQ1JDIGVycm9ycyB3aGVuIHNlbmRpbmcgY29tbWFuZHMgdGhhdCB1c2UgQ1JDCiAgICBjaGVja2luZy4KCiAgICBSZXBvcnRlZC1ieTogR3VydXJhamEgSGViYmFyIEsgUiA8Z3VydXJhamFrckBzYW55by5jby5pbj4KICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA3YTk2ZGRhZGQxM2U2YWM5YTgyOWFmZmNlOWI2Zjg4MjNmNTgwZTQ5CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgTWF5IDIxIDExOjEwOjU5IDIwMDggKzAyMDAKCiAgICBhdnIzMjogRml4IHR3byB3YXJuaW5ncyBpbiBhdG1lbF9tY2kuYwoKICAgIFRoZSB3YXJuaW5ncyBhcmUgaGFybWxlc3MgYnV0IGFubm95aW5nLiBMZXQncyBmaXggdGhlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgYTIzZTI3N2M0YTNhMmJiYzQyZDIzN2FhZTI5ZGEzYTg5NzFlNzU3ZgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJTW9uIE1heSAxOSAxMTozNjoyOCAyMDA4ICswMjAwCgogICAgYXZyMzI6IFJld29yayBTRFJBTSBpbml0aWFsaXphdGlvbiBjb2RlCgogICAgVGhpcyBjbGVhbnMgdXAgdGhlIFNEUkFNIGluaXRpYWxpemF0aW9uIGFuZCByZWxhdGVkIGNvZGUgYSBiaXQsIGFuZAogICAgYWxsb3dzIGZhc3RlciBib290aW5nLgoKICAgICAgKiBBZGQgZGVmaW5pdGlvbnMgZm9yIEVCSSBhbmQgaW50ZXJuYWwgU1JBTSB0byBhc20vYXJjaC9tZW1vcnktbWFwLmgKICAgICAgKiBSZW1vdmUgbWVtb3J5IHRlc3QgZnJvbSBzZHJhbV9pbml0KCkgYW5kIG1ha2UgY2FsbGVyIHJlc3BvbnNpYmxlCglmb3IgdmVyaWZ5aW5nIHRoZSBTRFJBTSBhbmQgZGV0ZXJtaW5pbmcgaXRzIHNpemUuCiAgICAgICogUmVtb3ZlIGJhc2VfYWRkcmVzcyBtZW1iZXIgZnJvbSBzdHJ1Y3Qgc2RyYW1fY29uZmlnICh3YXMgc2RyYW1faW5mbykKICAgICAgKiBBZGQgZGF0YV9iaXRzIG1lbWJlciB0byBzdHJ1Y3Qgc2RyYW1fY29uZmlnIGFuZCBraWxsIENGR19TRFJBTV8xNkJJVAogICAgICAqIEFkZCBzdXBwb3J0IGZvciBhIGNvbW1vbiBTVEsxMDAwIGhhY2s6IDE2TUIgU0RSQU0gaW5zdGVhZCBvZiA4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA5NTEwN2I3YzAyODgwNjkxOTYzMGJmMDJjNjUzYWE4ZjRmODY3Yzk0CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglNb24gTWF5IDE5IDExOjI3OjM3IDIwMDggKzAyMDAKCiAgICBhdnIzMjogRG8gc3RyaWN0ZXIgc3RhY2sgY2hlY2tpbmcgaW4gdGhlIGV4Y2VwdGlvbiBoYW5kbGVyCgogICAgRG9uJ3QgZG8gYSBzdGFjayBkdW1wIGlmIHRoZSBzdGFjayBwb2ludGVyIGlzIG91dHNpZGUgdGhlIG1lbW9yeSBhcmVhCiAgICByZXNlcnZlZCBmb3Igc3RhY2suCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGNhZjgzZWE4ODhhMDIyMGY0MTc0N2QwYjc3NDhmYTQzYjRhNGJkNDkKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CUZyaSBNYXkgMiAxNTozMjo1NyAyMDA4ICswMjAwCgogICAgYXZyMzI6IFVzZSB0aGUgc2FtZSBlbnRyeSBwb2ludCBmb3IgcmVzZXQgYW5kIGV4Y2VwdGlvbiBoYW5kbGluZwoKICAgIFNpbmNlIHRoZSByZXNldCB2ZWN0b3IgaXMgYWx3YXlzIGFsaWduZWQgdG8gYSB2ZXJ5IGxhcmdlIGJvdW5kYXJ5LCB3ZQogICAgY2FuIHNhdmUgYSBjb3VwbGUgb2YgS0Igd29ydGggb2YgYWxpZ25tZW50IHBhZGRpbmcgYnkgcGxhY2luZyB0aGUKICAgIGV4Y2VwdGlvbiB2ZWN0b3JzIGF0IHRoZSBzYW1lIGFkZHJlc3MuCgogICAgRGVjaWRpbmcgd2hpY2ggb25lIGl0IGlzIGlzIGVhc3k6IElmIHdlJ3JlIGhhbmRsaW5nIGFuIGV4Y2VwdGlvbiwgdGhlCiAgICBDUFUgaXMgaW4gRXhjZXB0aW9uIG1vZGUuIElmIHdlJ3JlIHN0YXJ0aW5nIHVwIGFmdGVyIHJlc2V0LCB0aGUgQ1BVIGlzCiAgICBpbiBTdXBlcnZpc29yIG1vZGUuIFNvIHRoaXMgYWRkcyBhIHZlcnkgbWluaW1hbCBvdmVyaGVhZCB0byB0aGUgcmVzZXQKICAgIHBhdGggKG9ubHkgZXhlY3V0ZWQgb25jZSkgYW5kIHRoZSBleGNlcHRpb24gaGFuZGxpbmcgcGF0aCAobm9ybWFsbHkKICAgIG5ldmVyIGV4ZWN1dGVkIGF0IGFsbC4pCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDBjMTZlZWQyMTg5YTE5MGJkNTY1NWIzM2MwMjlmODA5YTliMzExMjgKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CUZyaSBNYXkgMiAxNToyNDoyMiAyMDA4ICswMjAwCgogICAgYXZyMzI6IFB1dCBtZW1zZXQgaW4gaXRzIG93biBzZWN0aW9uCgogICAgQWxsIEMgY29kZSBpcyBjb21waWxlZCB3aXRoIC1mZnVuY3Rpb24tc2VjdGlvbnMgLWZkYXRhLXNlY3Rpb25zLgogICAgQXNzZW1ibHkgZnVuY3Rpb25zIHNob3VsZCBnZXQgdGhlaXIgb3duIHNlY3Rpb25zIGFzIHdlbGwgc28gdGhhdAogICAgZXZlcnl0aGluZyBsb29rcyBjb25zaXN0ZW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAzYWNlMjUyN2JhODBiZDJmZTFiY2VhYWI1MGQwYjNjNGZiNWRkMDIwCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglGcmkgTWF5IDIgMTU6MjE6NDAgMjAwOCArMDIwMAoKICAgIGF2cjMyOiBSZW5hbWUgcG1faW5pdCgpIGFzIGNsa19pbml0KCkgYW5kIG1ha2UgU29DLXNwZWNpZmljCgogICAgcG1faW5pdCgpIHdhcyBhbHdheXMgbW9yZSBhYm91dCBjbG9jayBpbml0aWFsaXphdGlvbiB0aGFuIGFueXRoaW5nCiAgICBlbHNlLiBEZWFsaW5nIHdpdGggUExMcywgY2xvY2sgZ2F0aW5nIGFuZCBzdWNoIGlzIGFsc28gaW5oZXJlbnRseQogICAgU29DLXNwZWNpZmljLCBzbyBtb3ZlIGl0IGludG8gYSBTb0Mtc3BlY2lmaWMgZGlyZWN0b3J5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA0ZjU5NzJjM2IyNDU0YzIyOTU3ZjI4NDJjZmU2NGVjODExOGUwMTViCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgQXByIDMwIDE2OjE1OjU3IDIwMDggKzAyMDAKCiAgICBhdnIzMjogVXNlIG5ldy1zdHlsZSBNYWtlZmlsZSBmb3IgdGhlIGF0MzJhcCBwbGF0Zm9ybQoKICAgIFRoaXMgbWFrZXMgaXQgZWFzaWVyIHRvIGF2b2lkIGNvbXBpbGluZyBjZXJ0YWluIGZpbGVzIGxhdGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBhOWIyYmI3OGExYmQ4ZWJkYjYzMzUwOWJkZDFjODEzNGQ1MjdiMjEzCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgQXByIDMwIDE0OjM2OjQ3IDIwMDggKzAyMDAKCiAgICBhdnIzMjogUmVtb3ZlIHVudXNlZCBmaWxlIGNwdS9hdDMyYXAvcG0uYwoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA0NDQ1M2IyNWIwNjQyNmVlZjBiN2IyZmE3YzAyNmZkZjE5Y2UzNGYyCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgQXByIDMwIDE0OjE5OjI4IDIwMDggKzAyMDAKCiAgICBhdnIzMjogQ2xlYW4gdXAgdGhlIEhNQVRSSVggY29kZQoKICAgIFJld29yayB0aGUgSE1BVFJJWCBjb25maWd1cmF0aW9uIGludGVyZmFjZSBzbyB0aGF0IGl0IGJlY29tZXMgZWFzaWVyCiAgICB0byBjb25maWd1cmUgdGhlIEhNQVRSSVggZm9yIGJvYXJkcyB3aXRoIHNwZWNpYWwgbmVlZHMsIGFuZCBhZGQgbmV3CiAgICBwYXJ0cy4KCiAgICBUaGUgSE1BVFJJWCBoZWFkZXIgZmlsZSBoYXMgYmVlbiBzcGxpdCBpbnRvIGEgZ2VuZXJhbCwKICAgIGNoaXAtaW5kZXBlbmRlbnQgcGFydCB3aXRoIHJlZ2lzdGVyIGRlZmluaXRpb25zLCBldGMuIGFuZCBhCiAgICBjaGlwLXNwZWNpZmljIHBhcnQgd2l0aCBTRlIgYml0ZmllbGQgZGVmaW5pdGlvbnMgYW5kIG1hc3Rlci9zbGF2ZQogICAgaWRlbnRpZmllcnMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDBhMmU0ODc5MmRkMzcyYzkwYjgwMDU5ZjMyMzVlNjdhNTY3ZTE2ZmMKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBOb3YgMjIgMTI6MTQ6MTEgMjAwNyArMDEwMAoKICAgIGF2cjMyOiBBZGQgc3VwcG9ydCBmb3IgdGhlIEFUU1RLMTAwNiBib2FyZAoKICAgIFRoaXMgaXMgYSByZXBsYWNlbWVudCBmb3IgQVRTVEsxMDAyIHdpdGggNjRNQiBTRFJBTSBhbmQgTkFORCBmbGFzaCBvbgogICAgYm9hcmQuIEl0J3MgY3VycmVudGx5IGluIHByb2R1Y3Rpb24gYW5kIHdpbGwgYmUgYXZhaWxhYmxlIHNvb24uCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDc4MWViOWExZTRhZjRiZDM0YzEzOGU2MTI2ZWM1Y2M2ZGQ0YjU0NDAKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVR1ZSBBcHIgMjkgMTI6NTM6MDUgMjAwOCArMDIwMAoKICAgIGF2cjMyOiBHZXQgcmlkIG9mIHRoZSAuZmxhc2hwcm9nIHNlY3Rpb24KCiAgICBUaGUgLmZsYXNocHJvZyBzZWN0aW9uIHdhcyBvbmx5IG5lZWRlZCBiYWNrIHdoZW4gd2Ugd2VyZSBydW5uaW5nCiAgICBkaXJlY3RseSBmcm9tIGZsYXNoLCBhbmQgaXQncyBldmVuIG1vcmUgdXNlbGVzcyBvbiBOR1cxMDAgc2luY2UgaXQKICAgIHVzZXMgdGhlIENGSSBmbGFzaCBkcml2ZXIgd2hpY2ggbmV2ZXIgdXNlZCB0aGlzIHdvcmthcm91bmQgaW4gdGhlCiAgICBmaXJzdCBwbGFjZS4KCiAgICBSZW1vdmUgaXQgb24gU1RLMTAwMCBhcyB3ZWxsLCBhbmQgZ2V0IHJpZCBvZiBhbGwgdGhlIGFzc29jaWF0ZWQgY29kZSBhbmQKICAgIGFubm90YXRpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBjZGQ0MmMwYzdhNTIwNWZjMzgwOTEyZDgzMjI5MDY5YTcxZWEzYWJmCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgQXByIDMwIDEzOjA5OjU2IDIwMDggKzAyMDAKCiAgICBhdnIzMjogVXNlIGNvcnJlY3QgY29uZGl0aW9uIGFyb3VuZCBtYWNiIGNsb2NrIGFjY2Vzc29ycwoKICAgIGdldF9tYWNiX3BjbGtfcmF0ZSgpIGFuZCBnZXRfbWFjYl9oY2xrX3JhdGUoKSBzaG91bGQgYmUgYXZhaWxhYmxlIHdoZW4KICAgIHRoZSBjaGlwIGhhcyBhIE1BQ0IgY29udHJvbGxlciwgbm90IHdoZW4gaXQgaGFzIGEgVVNBUlQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGY3OTNhMzU4MTkwMWZmMzljMmFiYjk0MDEyZDliYmM4NTczY2NmMDIKQXV0aG9yOiBEYXZpZCBCcm93bmVsbCA8ZGF2aWQtYkBwYWNiZWxsLm5ldD4KRGF0ZToJV2VkIEFwciAxNiAyMjo1Nzo1OCAyMDA4IC0wNzAwCgogICAgYXZyMzI6IERpc2FibGUgdGhlIEFQNzAwMCBpbnRlcm5hbCB3YXRjaGRvZyBvbiBzdGFydHVwCgogICAgVGhpcyBwYXRjaCBmb3JjZXMgdGhlIHdhdGNoZG9nIG9mZiBpbiBhbGwgY2FzZXMuICBUaGF0IHdpbGwgYXQgbGVhc3QKICAgIGdldCByaWQgb2YgdGhlIGNvbnN0YW50IHJlYm9vdCBjeWNsZSwgdGhvdWdoIGl0IHdvbid0IGxldCB0aGUgd2F0Y2hkb2cKICAgIGFjdHVhbGx5IHJ1biBpbiB0aGUgbmV3IGtlcm5lbHM6ICBpdHMgcHJvYmUoKSBjb21lcyB1cCB3aXRoIGEgcG9saXRlCiAgICB3YXJuaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aGFhdmFyZC5za2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA1NWFjN2E3NDkwYjU1ZGE1NjY1OWY5NWQ4MmEwYzgzYjk3NTZkZjI3CkF1dGhvcjogRGF2aWQgQnJvd25lbGwgPGRhdmlkLWJAcGFjYmVsbC5uZXQ+CkRhdGU6CUZyaSBGZWIgMjIgMTI6NTQ6MzkgMjAwOCAtMDgwMAoKICAgIGF2cjMyOiBzdGsxMDAyIGFuZCBuZ3cxMDAgY29udmVyZ2VuY2UKCiAgICBNYWtlIFNUSzEwMDIgYW5kIE5HVzEwMCBib2FyZHMgYWN0IG1vcmUgYWxpa2U6CiAgICAgIC0gU1RLIGJvYXJkcyBjYW4gdXNlIGFzIG1hbnkgYXJndW1lbnRzIGFzIE5HVwogICAgICAtIFNUSyBib2FyZHMgZG9uJ3QgbmVlZCB0byBtYW5hZ2UgRlBHQXMgZWl0aGVyCiAgICAgIC0gTkdXIGNvbW1hbmRzIHNob3VsZCBtYXRjaCBTVEsgb25lcwoKICAgIEFsc28gc3BlbGwgVS1Cb290IHJpZ2h0IGluIHByb21wdHMgZm9yIFNUSzEwMDIgYW5kIE5HVzEwMC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBCcm93bmVsbCA8ZGJyb3duZWxsQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KICAgIFtoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tOiB1cGRhdGUgU1RLMTAwWzM0XSBhcyB3ZWxsXQogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDVlMTg4MmRmNmEzZWZjN2RlNTUyNGQyOGNlYTRlY2RlN2QxNjNkNTQKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglUdWUgTWF5IDI3IDEzOjQ3OjAwIDIwMDggKzAyMDAKCiAgICBTb2NyYXRlczogRml4IFBDSSBidXMgZnJlcXVlbmN5IHJlcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+Cgpjb21taXQgNzkxZTFkYmE4ZGU3NmFkOGU3NjJhN2JhZGI4NjlmMjI0YTFmOGI4MgpBdXRob3I6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CkRhdGU6CVR1ZSBNYXkgMjcgMTE6NDk6MTMgMjAwOCArMDIwMAoKICAgIFNvY3JhdGVzOiBBZGRlZCBVU0Igc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgoKY29tbWl0IDVhOTA0ZTU2MzdjZmYxZDcwOGRjNjcwOTgwMDRmODNiYTllODRjNTQKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglUdWUgTWF5IDI3IDExOjM1OjAyIDIwMDggKzAyMDAKCiAgICBVU0I6IGFkZCBuZXcgY29uZmlndXJhdGlvbiB2YXJpYWJsZSBDT05GSUdfUENJX09IQ0lfREVWTk8KCiAgICBJbiBjYXNlIG9mIHNldmVyYWwgUENJIFVTQiBjb250cm9sbGVycyBvbiBhIGJvYXJkIHRoaXMgdmFyaWFibGUKICAgIHNwZWNpZnlzIHdoaWNoIGNvbnRyb2xsZXIgdG8gdXNlLgogICAgU2VlIGRvYy9SRUFETUUuZ2VuZXJpY191c2Jfb2hjaSBmb3IgZGV0YWlscy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgoKY29tbWl0IDJmNzQ2OGFlYmE2MGUxMjg4MDMwYThkMDA3YzRlNjNiZDNmMTMyMjEKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglUdWUgTWF5IDI3IDEwOjM2OjA3IDIwMDggKzAyMDAKCiAgICBTb2NyYXRlczogYWRkIHN1cHBvcnQgZm9yIERTNzUgRGlnaXRhbCBUaGVybW8gU2Vuc29yIG9uIEkyQyBidXMuCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KCmNvbW1pdCA4M2U5ZDdhMjYxNGQ0MDA2YjkyNjkwYWZhMzM5MGMyOTE3MzQyNjdlCkF1dGhvcjogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KRGF0ZToJTW9uIE1heSAyNiAxODoxNjowNCAyMDA4ICswMjAwCgogICAgU29jcmF0ZXM6IENvbmZpZyBmaWxlIGNsZWFudXAuCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KCmNvbW1pdCA2MDJjYWMxMzg5Yjc1NWIyMjMyNzJmMjMyOGE0N2U2ZjhjMjQwODQ4CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE1heSAyNCAxMjo0Nzo0NiAyMDA4ICswMjAwCgogICAgTUFLRUFMTDogYWRkIGF0OTEgbGlzdAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMjkwZWY2NDM2ODM4YjFjYzAxM2JkNjdlMGUwNDk1YzllYjNlMjNjMApBdXRob3I6IFJvbiBNYWRyaWQgPHJvbl9tYWRyaWRAc2JjZ2xvYmFsLm5ldD4KRGF0ZToJRnJpIE1heSAyMyAxNTozNzowNSAyMDA4IC0wNzAwCgogICAgQWRkIE1hcnZlbGwgODhFMTExOCBzdXBwb3J0IGZvciBUU0VDCgogICAgU2lnbmVkLW9mZi1ieTogUm9uIE1hZHJpZCA8cm9uX21hZHJpZEBzYmNnbG9iYWwubmV0PgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA1NTdiMzc3ZDhiZmM4YjgzM2I2ZTc0OTQ1N2JjZGZhMjk4MzMxYTI0CkF1dGhvcjogSmVucyBHZWhybGVpbiA8c2V3X3NAdHFzLmRlPgpEYXRlOglNb24gTWF5IDUgMTQ6MDY6MTEgMjAwOCArMDIwMAoKICAgIHNtYzkxMXg6IGFkZCAxNiBiaXQgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IEplbnMgR2VocmxlaW4gPHNld19zQHRxcy5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNjMyNGU1YmVjODgyNWY3ZmVlMzAyNmZmYmQzOTQ0NTRhZThiNTNmYgpBdXRob3I6IENocmlzdGlhbiBFZ2dlcnMgPGNlZ2dlcnNAZ214LmRlPgpEYXRlOglXZWQgTWF5IDIxIDIxOjI5OjEwIDIwMDggKzAyMDAKCiAgICBGaXggZW5kaWFuZXNzIGNvbnZlcnNpb24gaW4gdXNiX29oY2kuYwoKICAgIFNvcnJ5LCBJIGZvcmdvdCB0aGlzIGxpbmU6CgogICAgU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEVnZ2VycyA8Y2VnZ2Vyc0BnbXguZGU+CgogICAgSSB0aGluayB0aGlzIG11c3QgYmUgc3dhcHBlZCAocmVzdWx0IG1heSBiZSBlcXVhbCkuCgpjb21taXQgYzkxODI2MWM2ZDlmMjY1Zjg4YmFmNzBmOGE3M2RmZTZmMGNiOTU5NgpBdXRob3I6IENocmlzdGlhbiBFZ2dlcnMgPGNlZ2dlcnNAZ214LmRlPgpEYXRlOglXZWQgTWF5IDIxIDIyOjEyOjAwIDIwMDggKzAyMDAKCiAgICBVU0I6IHJlcGxhY2Ugb2xkIHN3YXBfIHdpdGggcHJvcGVyIGVuZGlhbmVzcyBjb252ZXJzaW9uIG1hY3JvcwoKICAgIFNpZ25lZC1vZmYtYnk6IENocmlzdGlhbiBFZ2dlcnMgPGNlZ2dlcnNAZ214LmRlPgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCBmYjYzOTM5YjRmZTE0MDg0OWNkYmE2OWY5ZTY0YTNlMGUyZjNjZTFjCkF1dGhvcjogQ2hyaXN0aWFuIEVnZ2VycyA8Y2VnZ2Vyc0BnbXguZGU+CkRhdGU6CVdlZCBNYXkgMjEgMjE6Mjk6MTAgMjAwOCArMDIwMAoKICAgIEZpeCBlbmRpYW5lc3MgY29udmVyc2lvbiBpbiB1c2Jfb2hjaS5jCgogICAgU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEVnZ2VycyA8Y2VnZ2Vyc0BnbXguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IDQ3NzQzNGM2M2MyZWE1YmFhNWM2YzRlNDM1MDA3ODZmNDM2NTExZmYKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglUaHUgTWF5IDIyIDAxOjE1OjUzIDIwMDggKzAyMDAKCiAgICBVU0I6IGFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBQQ0kgT0hDSSBjb250cm9sbGVycwoKICAgIEFkZCBuZXcgY29uZmlndXJhdGlvbiB2YXJpYWJsZSBDT05GSUdfUENJX09IQ0lfREVWTk8uCiAgICBJbiBjYXNlIG9mIHNldmVyYWwgUENJIFVTQiBjb250cm9sbGVycyBvbiBhIGJvYXJkIHRoaXMgdmFyaWFibGUKICAgIHNwZWNpZnlzIHdoaWNoIGNvbnRyb2xsZXIgdG8gdXNlLgoKICAgIEFsc28gYWRkIFVTQiBzdXBwb3J0IGZvciBzb2tyYXRlcyBib2FyZC4KCiAgICBTZWUgZG9jL1JFQURNRS5nZW5lcmljX3VzYl9vaGNpIGZvciBkZXRhaWxzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IGNlNjc1NGRmNjFjYmUyM2I1YjczZDA5NWEwMGFjOWE4NTA0YjNkNzcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgTWF5IDIxIDE2OjU2OjA4IDIwMDggKzAyMDAKCiAgICBGaXggc29tZSB3aGl0ZXNwYWNlIGlzc3VlcwoKICAgIGludHJvZHVjZWQgYnkgNTM2NzdlZjE4ICJCaWcgd2hpdGUtc3BhY2UgY2xlYW51cC4iCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0NDE2NjAzYWViMDY4NjFiNDY4YjA2YTk4MWU1MmMzZmY4MDVkYjdiCkF1dGhvcjogWW9yayBTdW4gPHlvcmtzdW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE1heSAxMiAxNDozNjozOSAyMDA4IC0wNTAwCgogICAgTWFrZSBhZHM1MTIxIG91dC1vZi10cmVlIGNvbXBpbGluZyBzYWZlCgogICAgUmV1c2UgdGhlIGV4aXN0aW5nIERJVSBkcml2ZXIgaW4gYm9hcmQvZnJlZXNjYWxlL2NvbW1vbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZb3JrIFN1biA8eW9ya3N1bkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBlMWJhZDQ3Y2QzNDVjNzZjOTFhNjRjYWY0MTAxMWU0MzFiNjI1OTkKQXV0aG9yOiBZb3JrIFN1biA8eW9ya3N1bkBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTWF5IDUgMTA6MjA6MDEgMjAwOCAtMDUwMAoKICAgIEFkZGluZyBESVUgc3VwcG9ydCBmb3IgRnJlZXNjYWxlIDUxMjFBRFMKCiAgICBBZGQgRElVIGFuZCBjZmIgY29uc29sZSBzdXBwb3J0IHRvIEZTTCA1MTIxQURTIGJvYXJkLgoKICAgIFVzZSAjZGVmaW5lIENPTkZJR19WSURFTyBpbiBjb25maWcgZmlsZSB0byBlbmFibGUgZmIgY29uc29sZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZb3JrIFN1biA8eW9ya3N1bkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE0OGZmNjhkMjM1ZTY3MTE3NmY2YjQ5NmM0NDI0NmRiZTVlMGE5M2YKQXV0aG9yOiBZb3JrIFN1biA8eW9ya3N1bkBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTWF5IDUgMTA6MjA6MDAgMjAwOCAtMDUwMAoKICAgIFJlcGxhY2UgRFBSSU5URiB3aXRoIGRlYnVnCgogICAgUmVtb3ZlIERQUklOVEYgbWFjcm8gYW5kIHJlcGxhY2UgaXQgd2l0aCBnZW5lcmljIGRlYnVnIG1hY3JvLgoKICAgIFNpZ25lZC1vZmYtYnk6IFlvcmsgU3VuIDx5b3Jrc3VuQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgM2I4MGM1ZjU3NGFkN2Y2ZTFjNTVhNjhmNDI3NTJiNDI3ZmRmNzc4ZApBdXRob3I6IFlvcmsgU3VuIDx5b3Jrc3VuQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBNYXkgNSAxMDoxOTo1OSAyMDA4IC0wNTAwCgogICAgTW92ZSBwaXhlbCBjbG9jayBzZXR0aW5nIHRvIGJvYXJkIGZpbGUKCiAgICBUaGUgY2xvY2sgZGl2aWRlciBoYXMgZGlmZmVyZW50IGZvcm1hdCBpbiA1MTIxIGFuZCA4NjEwLiBUaGlzIHBhdGNoIG1vdmVzIGl0IHRvCiAgICBib2FyZCBzcGVjaWZpYyBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFlvcmsgU3VuIDx5b3Jrc3VuQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTM2NzdlZjE4ZTI1Yzk3YWM2MTMzNDkwODdjNWNiMzNhZTVhMjc0MQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXkgMjAgMTY6MDA6MjkgMjAwOCArMDIwMAoKICAgIEJpZyB3aGl0ZS1zcGFjZSBjbGVhbnVwLgoKICAgIFRoaXMgY29tbWl0IGdldHMgcmlkIG9mIGEgaHVnZSBhbW91bnQgb2Ygc2lsbHkgd2hpdGUtc3BhY2UgaXNzdWVzLgogICAgRXNwZWNpYWxseSwgYWxsIHNlcXVlbmNlcyBvZiBTUEFDRXMgZm9sbG93ZWQgYnkgVEFCIGNoYXJhY3RlcnMgZ2V0CiAgICByZW1vdmVkICh1bmxlc3MgdGhleSBhcHBlYXIgaW4gcHJpbnQgc3RhdGVtZW50cykuCgogICAgQWxzbyByZW1vdmUgYWxsIGVtYmVkZGVkICJ2aW06IiBhbmQgInZpOiIgc3RhdGVtZW50cyB3aGljaCBoaWRlCiAgICBpbmRlbnRhdGlvbiBwcm9ibGVtcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDJmODQ1ZGMyYmRmNDYxYmZlZTlmYTI1ODIzZjc2OWY1ZGI5ZWJhMGIKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglUaHUgTWF5IDggMTc6NDY6MjMgMjAwOCArMDIwMAoKICAgIHNvY3JhdGVzOiBmaXggc2Vjb25kIFRTRUMgY29uZmlndXJhdGlvbiAoaXQgaXMgYWN0dWFsbHkgVFNFQzMpCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KCmNvbW1pdCA3OTM2NzBjM2MwZjBmNzJjYWVhZDYyZjBiZTlmYzNkOWZiYzYwNjBmCkF1dGhvcjogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KRGF0ZToJVGh1IE1heSA4IDE0OjE3OjA4IDIwMDggKzAyMDAKCiAgICBGaXhlZCByZXNldCBmb3Igc29jcmF0ZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgoKY29tbWl0IGUxODU3NWQ1ZjU4OWE2MmUxOWM3MGQ0NzFkNGI0ZTI3Y2FkM2FmNTYKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglXZWQgTWF5IDcgMTU6MTA6NDkgMjAwOCArMDIwMAoKICAgIHNvY3JhdGVzOiBjaGFuZ2VzIHRvIHN1cHBvcnQgRkRUCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNWQxMDhhYzhmNDM1OTI0YzYyNGNkNmFhYWNkNDRmMzVmNWNmOTRjMApBdXRob3I6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CkRhdGU6CVdlZCBBcHIgMzAgMTE6NDI6NTAgMjAwOCArMDIwMAoKICAgIEluaXRpYWwgc3VwcG9ydCBmb3IgIlNvY3JhdGVzIiBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+Cgpjb21taXQgMGUxNWRkZDExZjFhODRjNDY1ZTQzNGViMDUxZDJlZjA4ZWYwMmI5YgpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJVGh1IE1heSA4IDE1OjQ2OjQyIDIwMDggKzAyMDAKCiAgICBQT1NUOiByZXBsYWNlIHRoZSBMT0dCVUZGX0lOSVRJQUxJWkVEIGZsYWcgaW4gZ2QtPnBvc3RfbG9nX3dvcmQgKDEgPDwgMzEpIHdpdGggdGhlIEdEX0ZMR19MT0dJTklUIGZsYWcgaW4gZ2QtPmZsYWdzLgoKICAgIFRoaXMgd2F5IHdlIGJlY29tZSBhYmxlIHRvIHV0aWxpemUgdGhlIGZ1bGwgcG9zdF9sb2dfd29yZCBmb3IgUE9TVAogICAgYWN0aXZpdGllcyAob3Zlcndpc2UsIFBPU1QgRUNDLCB3aGljaCBoYXMgMHg4MDAwIElELCBjb3VsZCBiZQogICAgZXJyb25lb3VzbHkgdHJlYXRlZCBhcyBzdGFydGVkIGluIHBvc3Rfb3V0cHV0X2JhY2tsb2coKSBldmVuIGlmIHRoZXJlCiAgICB3YXMgYWN0dWFsbHkgbm8gUE9TVCBFQ0MgcnVuIChiZWNhdXNlIG9mIE9DTSBQT1NUIGZhaWx1cmUsIGZvcgogICAgZXhhbXBsZSkuCgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgoKY29tbWl0IDc4NDVkNDkwOTRjODEzMjEwMjFiNTBhNGRiYjg4NjRkMmYzNzc3ZTQKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CkRhdGU6CVRodSBNYXkgOCAxNTo0NjowMiAyMDA4ICswMjAwCgogICAgUE9TVDogbWFyayBPQ00gdGVzdCBhcyBQT1NUX1NUT1AKCiAgICBTaWduZWQtb2ZmLWJ5OiBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KCmNvbW1pdCAyOGEzODUwNjU4ODJkNmNiNmFjNWY0NDMzMTFmZjg3ODg3ZWQ3YzEzCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgpEYXRlOglUaHUgTWF5IDggMTU6NDU6MjYgMjAwOCArMDIwMAoKICAgIFBPU1Q6IGFkZCBQT1NUX1NUT1AgZmxhZwoKICAgIERvbid0IHJ1biBmdXRoZXIgdGVzdHMgaW4gY2FzZSBvZiBhIHRlc3QgZmFpbHMgdGhhdCBpcyBtYXJrZWQgYXMKICAgIFBPU1RfU1RPUC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCBhNTI1MTQ1ZDgxMTBkMTViNDM4OWQyM2MzZWE4YTc4ZjIyNTA5ZDNmCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgpEYXRlOglUaHUgTWF5IDggMTU6NDQ6MTYgMjAwOCArMDIwMAoKICAgIFBPU1Q6IHN3aXRjaCBDRkdfUE9TVF9PQ00gd2l0aCBDRkdfUE9TVF9DT0RFQyAod29ya2Fyb3VuZCkKCiAgICBTd2l0Y2ggdGhlIE9DTSB0ZXN0aWQgd2l0aCB0aGUgY29kZWMgb25lLiBUaGUgcmVhc29uIGlzIHRoYXQgY3VycmVudAogICAgaW1wbGVtZW50YXRpb24gcmVxdWlyZXMgdGhlIFBPU1RfUk9NIHRlc3RpZCB0byBmaXQgaW50byBsb3dlciAxNgogICAgYml0cywgYW5kIHRoZSBjb2RlYyB0ZXN0IHdpbGwgbmV2ZXIgcnVuIHdpdGggUE9TVF9ST00gaG9wZWZ1bGx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IElseWEgWWFub2sgPHlhbm9rQGVtY3JhZnQuY29tPgoKY29tbWl0IDhiOTZjNzg4ZDU4ZjdjYjg1YTg5ZWUzZjE5YzliMzM1ZDIyNDQzY2QKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CkRhdGU6CVRodSBNYXkgOCAxNTo0MzoyOCAyMDA4ICswMjAwCgogICAgbHdtb241OiBlbmFibGUgT0NNIHBvc3QgdGVzdCBvbiBsd21vbjUgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KCmNvbW1pdCA2ZThlYzY4MjI2ODQ5M2I4ZDA5OGY5OWUxN2IxY2U3MWI0NDQ4OTc3CkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgpEYXRlOglUaHUgTWF5IDggMTU6NDI6NDcgMjAwOCArMDIwMAoKICAgIFBPU1Q6IE9DTSB0ZXN0IGFkZGVkLgoKICAgIEFkZGVkIE9DTSB0ZXN0IHRvIFBPU1QgbGF5ZXIuIFRoaXMgdmVyc2lvbiBydW5zIGJlZm9yZSBhbGwgb3RoZXIgdGVzdHMKICAgIGJ1dCBkb2Vzbid0IHlldCBpbnRlcnJ1cHQgcG9zdCBzZXF1ZW5jZSBvbiBmYWlsdXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IElseWEgWWFub2sgPHlhbm9rQGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgoKY29tbWl0IDY4OTEyNjBiZGQ5MzVhMzgyYzk1ZDlmYTMzMzkyMmIwZGZkZWQ2OGEKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CkRhdGU6CVRodSBNYXkgOCAxNTo0MDozOSAyMDA4ICswMjAwCgogICAgUE9TVDogdHlwbyBmaXgKCiAgICBTaWduZWQtb2ZmLWJ5OiBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KCmNvbW1pdCA3MjdmNjMzMzQ2NzZlNzYwODc3ZDQzYmZiOGYwZTkzMzFhYzhiMTAxCkF1dGhvcjogSGViYmFyIDxndXJ1cmFqYWtyQHNhbnlvLmNvLmluPgpEYXRlOglUdWUgTWF5IDIwIDAyOjE2OjM2IDIwMDggLTA3MDAKCiAgICBjb21tb24vdXNiLmM6IGZpeCBpbmNvcnJlY3QgZXNjYXBlIHNlcXVlbmNlCgogICAgU2lnbmVkIG9mZiBieTogR3VydXJhamEgSGViYmFyIDxndXJ1cmFqYWtyQHNhbnlvLmNvLmluPgoKY29tbWl0IDRjZTFlMjNiNWUxMjI4MzU3OTgyOGIzZDIzZThmZDZlMTMyOGE3YWEKQXV0aG9yOiBZb3JrIFN1biA8eW9ya3N1bkBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWF5IDE1IDE1OjI2OjI3IDIwMDggLTA1MDAKCiAgICBGaXggODMxM0VSREIgYm9hcmQgY29uZmlndXJhdGlvbgoKICAgIENoYW5nZSBMQ1JSIGNsb2NrIHJhdGlvIGZyb20gMiB0byA0IHRvIGNvbW1vZGF0ZSBWU0M3Mzg1LgogICAgQ29ycmVjdCBUU0VDMSB2cyBUU0VDMiBhc3NpZ25tZW50LgogICAgRGVmaW5lIEVUSEFERFIgYW5kIEVUSDFBRERSIGFsd2F5cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZb3JrIFN1biA8eW9ya3N1bkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyYzI4OWUzMjBkY2ZiMzc2MGU5OWNmMWQ3NjVjYjA2NzE5NGExMjAyCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE1heSAxOSAwOTo0NzoyNSAyMDA4IC0wNTAwCgogICAgbXBjODZ4eDogUmVtb3ZlZCB1bnVzZWQgYW5kIHVuY29uZmlndXJlZCBtZW1vcnkgdGVzdCBjb2RlLgoKICAgIEJlc2lkZXMsIG90aGVyIGNvbW1vbiBjb2RlIGV4aXN0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE4MGE5MGFiZGFlNzI1ODdjMGY2NzllZGY4OTkxNDU1ZTU1OTQ0MGQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gTWF5IDE5IDEyOjQ3OjExIDIwMDggKzAyMDAKCiAgICBSZWxlYXNlIHYxLjMuMwoKICAgIFVwZGF0ZSBDSEFOR0VMT0cgZm9yIHJlbGVhc2UuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAxNmJlZGM2NjFkZTBkYWU3NjdiMTM3N2Q4NDEzMzczYTNmYmNmYTc5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTWF5IDE5IDA3OjE0OjM4IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IENhbnlvbmxhbmRzOiBEaXNhYmxlIFBDSWUwL1NBVEEgaW4gZGV2LXRyZWUgZGVwZW5kaW5nIG9uIHNlbGVjdGlvbgoKICAgIFdoZW4gU0FUQSBpcyBzZWxlY3RlZCAodmlhIGp1bXBlciBKNikgd2UgbmVlZCB0byBkaXNhYmxlIHRoZSBmaXJzdCBQQ0llCiAgICBub2RlIGluIHRoZSBkZXZpY2UgdHJlZSwgc28gdGhhdCBMaW51eCBkb2Vzbid0IGluaXRpYWxpemUgaXQuIE90aGVyd2lzZQogICAgdGhlIExpbnV4IFNBVEEgZHJpdmVyIHdpbGwgZmFpbCB0byBkZXRlY3QgdGhlIGRldmljZXMuCgogICAgVGhlIHNhbWUgZ29lcyB0aGUgb3RoZXIgd2F5IGFyb3VuZCB0b28uIFNvIGlmIFBDSWUgaXMgc2VsZWN0ZWQgd2UgbmVlZAogICAgdG8gZGlzYWJsZSB0aGUgU0FUQSBub2RlIGluIHRoZSBkZXZpY2UgdHJlZS4KCiAgICBUaGlzIGlzIGJlY2F1c2UgUENJZSBwb3J0IDAgYW5kIFNBVEEgb24gNDYwRVggc2hhcmUgdGhlIHNhbWUgcGlucwogICAgKG11bHRpcGxleGVkKSBhbmQgd2UgaGF2ZSB0byBjb25maWd1cmUgaW4gVS1Cb290IHdoaWNoIHBlcmlwaGVyYWwgaXMKICAgIGVuYWJsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDNjYzI3YjQyNmFlZWZlMjkzMGY5MTE2OTJlOWRmMzE0M2ZiMjU2NWYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTWF5IDE4IDE5OjA5OjU4IDIwMDggKzAyMDAKCiAgICBpMzg2OiBGaXggbXVsdGlwbGUgZGVmaW5pdGlvbnMgb2YgX19zaG93X2Jvb3RfcHJvZ3Jlc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDMxMWYzNDQ2OTMwYzFlNjRjMTIwMjZjMWNmZDAwNTAwYjA1YmU1MmQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTWF5IDE4IDE5OjA5OjU3IDIwMDggKzAyMDAKCiAgICBzYzUzMF9zcHVuazogYWRkIG1pc3NpbmcgU09CSlMgZW50cnkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGE1NTkzMTcxNDNiNGY5NTkyN2IwOGNkMzg4NzA3ZTZmMDc3ZTk1ZmEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTWF5IDE4IDE5OjA5OjU2IDIwMDggKzAyMDAKCiAgICBzYzUyMF9zcHVuazogRml4IGZsYXNoCgogICAgZmxhc2guYzo1OTM6IHdhcm5pbmc6IGRlcmVmZXJlbmNpbmcgdHlwZS1wdW5uZWQgcG9pbnRlciB3aWxsIGJyZWFrIHN0cmljdC1hbGlhc2luZyBydWxlcwogICAgZmxhc2guYzozOTg6IGVycm9yOiBsYWJlbCBhdCBlbmQgb2YgY29tcG91bmQgc3RhdGVtZW50CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA5MWYyMjEzMTdhZjY0MTkxZWU4Y2FmMzAzZWE5MzA1OTQzMTU4NjkxCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE1heSAxOCAxOTowOTo0OSAyMDA4ICswMjAwCgogICAgZHJpdmVycy9wY21jaWE6IGFkZCBtaXNzaW5nIGk4MjM2NQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZGQyMjM5NDQxMzJmOTdmZmE1Mjk3N2VhOTVlNWE1MjQyOGY1Y2MyZgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBNYXkgMTggMTk6MDk6NDcgMjAwOCArMDIwMAoKICAgIGkzODYvYm9vdG06IHJlbW92ZSB1bnVzZWQgdmFyCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBhOWRhMzQxZGYxOWIzMmFkMmVjYjU4Y2U1MjlmN2U0ZmFkYTc4MTRlCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE1heSAxOCAxOTowOTo0NSAyMDA4ICswMjAwCgogICAgZXhhbXBsZS9naXRpZ25vcmU6IHVwZGF0ZSB3aXRoIGFsbCBnZW5lcmF0ZWQgZXhhbXBsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGEzOGRjM2VhODYxNGY4YjBjNDFlNDMyYjQ0NWE5OTU5Yjk3MTEyOTUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgTWF5IDE1IDAwOjQyOjQ1IDIwMDggKzAyMDAKCiAgICBUUU04MjcyOiBmaXggb3V0LW9mLXRyZWUgYnVpbGRpbmcKCiAgICAuLi5hbmQgYWRkIHRvIE1BS0VBTEwgc2NyaXB0CgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0ZjgwNWMxZTNhNjBiOTI2M2RhOGVjM2JjZDFmNDVlZGNlZmE3ZGNmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIE1heSAxNCAyMzozNDo1MyAyMDA4ICswMjAwCgogICAgZW52aXJvbm1lbnQ6IGZpeCBidWcgaW50cm9kdWNlZCBieSBjb21taXQgYTg0MDlmNGYxYWM4CgogICAgZW52X2dldF9jaGFyIGlzIG5vdCBhIGZ1bmN0aW9uLCBidXQgYSBwb2ludGVyIHRvIG9uZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDBjMTE5MzVjZDYyY2ExZjY1ZWViMjI4ZmY0Yzg0ODQ0MGQ0NTUzYmYKQXV0aG9yOiBHYXJ5IEplbm5lam9obiA8Z2FyeWpAZGVueC5kZT4KRGF0ZToJV2VkIE1heSAxNCAxMzozOToyMiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBRVUFEMTAwSEQ6IEFsbG93IHRoZSBlbnZpcm9ubWVudCB0byBiZSBwdXQgaW50byBmbGFzaC4KCiAgICBBZnRlciBtb3ZpbmcgVEVYVF9CQVNFIHRoZSB2YWx1ZSBmb3IgQ0ZHX0VOVl9BRERSIHdhcyBpbmNvcnJlY3QuICBBbHNvCiAgICB1c2UgYSByZWR1bmRhbnQgZW52aXJvbm1lbnQuCgogICAgU2lnbmVkLW9mZi1ieTogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQGRlbnguZGU+Cgpjb21taXQgY2RhMmE0YTk5NjFmZDQzNDFiN2RiMzA1Y2IyMmZjMDU5NTdlOGI3NwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBNYXkgMTQgMTM6NTU6MzAgMjAwOCArMDIwMAoKICAgIEZpeCBjb25maWcgZmlsZXMgZm9yIG91dC1vZi10cmVlIGJ1aWxkaW5nCgogICAgU2V2ZXJhbCBib2FyZC88Li4uPi9jb25maWcubWsgZmlsZXMgaW5jbHVkZSBkeW5hbWljYWxseSBidWlsdCAoYnkKICAgIHRoZSBNYWtlZmlsZSkgY29uZmlnIGZpbGVzIGJ1dCB1c2VkIHRoZSB3cm9uZyBmaWxlIG5hbWUgb2YKCSQoVE9QRElSKS9ib2FyZC8kKEJPQVJERElSKS9jb25maWcudG1wCiAgICBpbnN0ZWFkIGlmIHRoZSBjb3JyZWN0CgkkKE9CSlRSRUUpL2JvYXJkLyQoQk9BUkRESVIpL2NvbmZpZy50bXAKCiAgICBUaGUgYnVnIGlzIG5hc3R5IGJlY2F1c2UgdGhlIGJ1aWxkIHJlc3VsdCBpcyBjb3JyZWN0IGZvciB0aGUgKG5vcm1hbCkKICAgIGluLXRyZWUgYnVpbGRzLCBhbmQgYmVjYXVzZSAnc2luY2x1ZGUnIGlzIHVzZWQgbm8gZXJyb3JzIGdldCByYWlzZWQKICAgIGV2ZW4gZm9yIG91dC1vZi10cmVlIGJ1aWxkIHRlc3RzLiBCdXQgb3V0LW9mLXRyZWUgYnVpbGRzIHVzZSBhbgogICAgaW5jb21wbGV0ZSBhbmQgdGh1cyB1c3VhbGx5IGluY29ycmVjdCBjb25maWd1cmF0aW9uLi4uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyZGQ3MDgyZTA2ZDU4MDQwNDAxMGIwNmZlNGUwZThiNzAzOGEwMGM4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTWF5IDE0IDEzOjQwOjAzIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBib2d1cyBDYW55b25sYW5kcyBjb25maWcubWsKCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBjYW55b25sYW5kcyBjb25maWcubWsgZmlsZSB0byBlbmFibGUgY29ycmVjdAogICAgb3V0LW9mLXRyZWUgYnVpbGRzLiBUaGFua3MgdG8gV29sZmdhbmcgRGVuayBmb3Igc3BvdHRpbmcgdGhpcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZmRkMTI0N2E2NmQ3ODhhMzQ0NjI0NGY2ZmRlOTk1NWE5M2MyNjMyMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1heSAxNCAxMDozMjozMiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBJbmRpdmlkdWFsIGhhbmRsaW5nIG9mIGRkcjJfZml4ZWQuYyBmb3IgY2FueW9ubGFuZHNfbmFuZCBidWlsZAoKICAgIENhbnlvbmxhbmRzIGhhcyBhIGZpbGUgZGRyMl9maXhlZC5jIHdoaWNoIG5lZWRzIHNwZWNpYWwgdHJlYXRtZW50IHdoZW4KICAgIGJ1aWxkaW5nIGluIHNlcGFyYXRlIGRpcmVjdG9yeS4gSXQgaGFzIHRvIGJlIGxpbmtlZCB0byBidWlsZCBkaXJlY3RvcnkKICAgIG90aGVyd2lzZSBpdCBpcyBub3Qgc2Vlbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYTg0MDlmNGYxYWM4NGMzNjI3M2MxYTFlMzQxMTg5NjYyNTIxYmNmYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBNYXkgMTQgMTI6MjI6NDkgMjAwOCArMDIwMAoKICAgIGVudmlyb25tZW50OiBjbGVhbnVwIHByb3RvdHlwZSBkZWNsYXJhdGlvbnMgb2YgZW52IGZ1bmN0aW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGNmMzliMDc5NDgwMTVjNDgwYjcyYTZlNzMyY2Y3ZDgzOWFhOTNhOWUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgTWF5IDE0IDEyOjIxOjQ4IDIwMDggKzAyMDAKCiAgICBsaW5rc3RhdGlvbl9IR0xBTjogRml4IG91dCBvZiB0cmVlIGJ1aWxkaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMDg1NTUxYzA1Y2EwOWU2YzQ5MWVhMTFhMWM2NzI3YTM2Nzc2YTU0NQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1heSAxNCAxMDozMjozMiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBJbmRpdmlkdWFsIGhhbmRsaW5nIG9mIGRkcjJfZml4ZWQuYyBmb3IgY2FueW9ubGFuZHNfbmFuZCBidWlsZAoKICAgIENhbnlvbmxhbmRzIGhhcyBhIGZpbGUgZGRyMl9maXhlZC5jIHdoaWNoIG5lZWRzIHNwZWNpYWwgdHJlYXRtZW50IHdoZW4KICAgIGJ1aWxkaW5nIGluIHNlcGFyYXRlIGRpcmVjdG9yeS4gSXQgaGFzIHRvIGJlIGxpbmtlZCB0byBidWlsZCBkaXJlY3RvcnkKICAgIG90aGVyd2lzZSBpdCBpcyBub3Qgc2Vlbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTUxMGI4MmQ1MDYxNWYzNDRlODlkNDI1MzNlODIyNGNjZTA2N2RjMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXkgMTMgMjM6MTU6NTIgMjAwOCArMDIwMAoKICAgIE1ha2VmaWxlOiBmaXggImVycm9yOiB2ZXJzaW9uX2F1dG9nZW5lcmF0ZWQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeSIKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDU0Njk0YTkxNDI4ZjZjMzI4MGZlMWVlMDkyMzQ4OGExZTdlOGRiYzQKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglUdWUgTWF5IDEzIDE3OjMxOjI0IDIwMDggKzAyMDAKCiAgICBDbGVhbnVwIG5hbmRfaW5mb1tdIGRlY2xhcmF0aW9uLgoKICAgIFRoZSBuYW5kX2luZm8gYXJyYXkgaXMgZGVjbGFyZWQgYXMgZXh0ZXJuIGluIHNldmVyYWwgLmMgZmlsZXMuCiAgICBUaG9zZSBkYXlzLCBuYW5kLmggY29udGFpbnMgYSByZWZlcmVuY2UgdG8gdGhlIGFycmF5LCBzbyB0aGVyZSBpcwogICAgbm8gbmVlZCB0byBkZWNsYXJlIGl0IGVsc2V3aGVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA3MGZhYjE5MDhmYzE3MzRhNDAzNzExZWFhYmJlZjU0NmJjNGI3N2RjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTWF5IDEzIDIwOjIyOjAxIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEFkZCA0MDVFWChyKSByZXZpc2lvbiBDIFBWUiBkZWZpbml0aW9ucyBhbmQgZGV0ZWN0aW9uIGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNjVkY2ZhNzkyMDRmNDc1MGI5MDVhMTczYTUzNjVlMGIyZWI2YzJmNgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBNYXkgMTIgMDE6MTE6MjEgMjAwOCArMDIwMAoKICAgIFJldmVydCAicGNpOiBBZGQgQ09ORklHX1BDSV9TS0lQX0hPU1RfQlJJREdFIGNvbmZpZyBvcHRpb24iCgogICAgVGhpcyByZXZlcnRzIGNvbW1pdCA1NTc3NGI1MTJmZGY2M2MwNTE2ZDQ0MWNjNWRhN2M1NGJiZmZiN2YyCiAgICB3aGljaCBicm9rZSBtYW55IFBvd2VyUEMgYm9hcmRzLgoKY29tbWl0IGVlMGNmYTcwODAzYTNlNjI5ZWE1ODFhOWIyMTZmOGVjZWY0MDJiZmMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gTWF5IDEyIDAwOjU2OjI4IDIwMDggKzAyMDAKCiAgICBSZXZlcnQgIkF2b2lkIGluaXRyZCBhbmQgbG9nYnVmZmVyIGFyZWEgb3ZlcmxhcHMiCgogICAgVGhpcyByZXZlcnRzIGNvbW1pdCAxYjU2MDVjYTU3ZmJiMzY0ZjRkNzhlZWVlMjhiOTc0ZWQ4NzVlODg4CiAgICB3aGljaCBicmVha3MgYnVpbGRpbmcgb24gYWxsIFBQQyBib2FyZHMgdGhhdCBkb24ndCB1c2UgYSBsb2cgYnVmZmVyLgoKY29tbWl0IDAyYjliMjI0NDZlM2Q3YWQ2YTYzODJiZTE3YTFjZTc5YTdkZTU4OWIKQXV0aG9yOiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU2F0IE1heSAxMCAxNDowMjowNCAyMDA4IC0wNzAwCgogICAgRml4IG9mZnNldCBjYWxjdWxhdGlvbiBmb3IgbXVsdGktdHlwZSBsZWdhY3kgaW1hZ2VzLgoKICAgIENhbGN1bGF0aW9uIG9mIHRhaWwgd2FzIGluY29ycmVjdCB3aGVuIHNpemUgJSA0ID09IDAuCgogICAgTmV3IGNvZGUgcmVtb3ZlcyB0aGUgY29uZGl0aW9uYWwgYW5kIGRvZXMgdGhlIHNhbWUgdGhpbmcgYnV0IHdpdGggYXJpdGhtZXRpYwoKICAgIFNpZ25lZC1vZmYtYnk6IE5pY2sgU3BlbmNlIDxuaWNrLnNwZW5jZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM5ZGNhM2MzZjM3ZDI2NDdhZWM0NTA5YjI0YjE2ZDE1ODgyYWUzZTQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gTWF5IDEyIDAwOjQwOjU4IDIwMDggKzAyMDAKCiAgICBSZXZlcnQgIkNoYW5nZSBlbnZfZ2V0X2NoYXIgZnJvbSBhIGdsb2JhbCBmdW5jdGlvbiBwdHIgdG8gYSBmdW5jdGlvbi4iCgogICAgVGhpcyByZXZlcnRzIGNvbW1pdCBjMDU1OWJlMzcxYjJhNjRiMWE4MTcwODhjMzMwODY4OGUyMTgyZjkzCiAgICB3aGljaCBpcyBrbm93biB0byBicmVhayBib290aW5nIGZyb20gZGF0YWZsYXNoIGFuZCBOQU5ELgoKY29tbWl0IDIwZTVlZDEzNzQ4MzgyM2FhZWE1MTc4MTY5ZjNiMTQ0YzdhNGQ5ZTAKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTWF5IDExIDIzOjEzOjU3IDIwMDggKzAyMDAKCiAgICBBUEk6IHJlbW92ZSBkdXBsaWNhdGUgc3lzY2FsbCBjaGVjawoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNjdlM2JlYjUyYzMyMGIwYTMxY2YwMzA3MTZjOTkzOTJjZGUyZDUzMgpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CUZyaSBNYXkgOSAyMTo0Njo1MSAyMDA4ICswMjAwCgogICAgQVQ5MTogQ2xlYW51cCB1bnVzZWQgY29uZmlnIGhlYWRlciBmaWxlIGRlZmluaXRpb25zLgoKICAgIENPTkZJR19FTlZfT1ZFUldSSVRFIGlzIGNvbW1lbnRlZCBvdXQgaW4gdGhlIGNvbmZpZyBoZWFkZXIgZmlsZXMsCiAgICBzbyBsZXQncyBjbGVhbnVwIHRoZSBmaWxlcyBieSByZW1vdmluZyB0aGUgd2hvbGUgZGVmaW5pdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAxOTg4M2FlZGUyYWMwYTUyMjQ5M2JmYjJiMzVhN2RiYjIwMDA3MWIxCkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJVGh1IE1heSA4IDE0OjUyOjM0IDIwMDggKzAyMDAKCiAgICBTdXBwb3J0IEFUOTFDQVA5IHJldkMgQ1BVcwoKICAgIFRoZSBBVDkxQ0FQOSByZXZDIENQVSBoYXMgYSBmZXcgZGlmZmVyZW5jZXMgb3ZlciB0aGUgcHJldmlvdXMsCiAgICByZXZCIENQVSB3aGljaCB3YXMgZGlzdHJpYnV0ZWQgaW4gc21hbGwgcXVhbnRpdGllcyBvbmx5IChyZXZBIHdhcwogICAgYW4gaW50ZXJuYWwgQXRtZWwgcHJvZHVjdCBvbmx5KS4KCiAgICBUaGUgcmV2QyBzaWxpY29uIG5lZWRzIGEgc3BlY2lhbCBpbml0aWFsaXNhdGlvbiBzZXF1ZW5jZSB0bwogICAgc3dpdGNoIGZyb20gdGhlIGludGVybmFsIChpbXByZWNpc2UpIFJDIG9zY2lsbGF0b3IgdG8gdGhlCiAgICBleHRlcm5hbCAzMmsgY2xvY2suCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMDk4YjdiNGI0NDFiMTJjMmE2NGRkNTE3OTMwZjQzYzc5MzU0Mjc1OQpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVRodSBNYXkgOCAxNDo1MjozMyAyMDA4ICswMjAwCgogICAgVXNlIGN1c3RvbSBsb2dvIGZvciBBdG1lbCBib2FyZHMKCiAgICBUaGlzIHBhdGNoIGFkZHMgYSBjdXN0b20gdmVuZG9yIGxvZ28gZm9yIHRoZSBBdG1lbCBBVDkxIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA3NjFjNzBiODBjZGQzYmVhZDQwMTQ2Yjk2YThlNzEzZDZhZTAxNjMyCkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJVGh1IE1heSA4IDE0OjUyOjMyIDIwMDggKzAyMDAKCiAgICBBVDkxU0FNOVJMRUs6IGhvb2sgdXAgdGhlIEFUTUVMIExDRCBkcml2ZXIKCiAgICBUaGlzIHBhdGNoIG1ha2VzIHRoZSBuZWNlc3NhcnkgYWRhcHRhdGlvbnMgKFBJTyBjb25maWd1cmF0aW9ucyBhbmQKICAgIGRlZmluZXMgaW4gY29uZmlnIGhlYWRlciBmaWxlKSB0byBob29rIHVwIHRoZSBBdG1lbCBMQ0QgZHJpdmVyIHRvIHRoZQogICAgQVQ5MVNBTTlSTEVLIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDU2YTI0NzljZDdmZWNhYmRkOTEzNDhhNzc1YjI4MDFkZDJlNjVjN2YKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglUaHUgTWF5IDggMTQ6NTI6MzEgMjAwOCArMDIwMAoKICAgIEFUOTFTQU05MjYzRUs6IGhvb2sgdXAgdGhlIEFUTUVMIExDRCBkcml2ZXIKCiAgICBUaGlzIHBhdGNoIG1ha2VzIHRoZSBuZWNlc3NhcnkgYWRhcHRhdGlvbnMgKFBJTyBjb25maWd1cmF0aW9ucyBhbmQKICAgIGRlZmluZXMgaW4gY29uZmlnIGhlYWRlciBmaWxlKSB0byBob29rIHVwIHRoZSBBdG1lbCBMQ0QgZHJpdmVyIHRvIHRoZQogICAgQVQ5MVNBTTkyNjNFSyBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA4MjBmMmE5NTgzMjUwNjFhNDQ2MTE1ZjMwMzVlNDhlNDcyNmIzMzkwCkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJVGh1IE1heSA4IDE0OjUyOjMwIDIwMDggKzAyMDAKCiAgICBBVDkxU0FNOTI2MUVLOiBob29rIHVwIHRoZSBBVE1FTCBMQ0QgZHJpdmVyCgogICAgVGhpcyBwYXRjaCBtYWtlcyB0aGUgbmVjZXNzYXJ5IGFkYXB0YXRpb25zIChQSU8gY29uZmlndXJhdGlvbnMgYW5kCiAgICBkZWZpbmVzIGluIGNvbmZpZyBoZWFkZXIgZmlsZSkgdG8gaG9vayB1cCB0aGUgQXRtZWwgTENEIGRyaXZlciB0byB0aGUKICAgIEFUOTFTQU05MjYxRUsgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYzEzOWIxN2QyMGM4MzcxYzFlMGE4ZDdmYjI3YzExMDUwY2Y4NjMwNApBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVRodSBNYXkgOCAxNDo1MjoyOSAyMDA4ICswMjAwCgogICAgQVQ5MUNBUDlBREs6IGhvb2sgdXAgdGhlIEFUTUVMIExDRCBkcml2ZXIKCiAgICBUaGlzIHBhdGNoIG1ha2VzIHRoZSBuZWNlc3NhcnkgYWRhcHRhdGlvbnMgKFBJTyBjb25maWd1cmF0aW9ucyBhbmQKICAgIGRlZmluZXMgaW4gY29uZmlnIGhlYWRlciBmaWxlKSB0byBob29rIHVwIHRoZSBBdG1lbCBMQ0QgZHJpdmVyIHRvIHRoZQogICAgQVQ5MUNBUDlBREsgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMzljZjQ4MDQ4NGZjY2U1YzA0YTU5MGVlMWMzMGJlMGMxN2IwMmMzNApBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CUZyaSBNYXkgOSAyMTo1NzoxOCAyMDA4ICswMjAwCgogICAgQWRkIEFUTUVMIExDRCBkcml2ZXIKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIEFUTUVMIExDREMgZHJpdmVyIHdoaWNoIGlzIHVzZWQgb24gc29tZQogICAgQVQ5MSBhbmQgQVZSIHBsYXRmb3Jtcy4KCiAgICBJcyBoYXMgYmVlbiB0ZXN0ZWQgd2l0aCB0aGUgQVQ5MUNBUDlBREssIEFUOTFTQU05MjYxRUssIEFUOTFTQU05MjYzRUsgYW5kCiAgICBBVDkxU0FNOVJMRUsgYm9hcmRzLiBBZGFwdGF0aW9uIGZvciBBVlIzMiBzaG91bGQgcHJvYmFibHkgYmUgZWFzeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAyMTE4ZWJiNDRkYzQwZjgxMTdjOTQ5NTBmZDk1Nzk5YTllZjgyMWIyCkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJVGh1IE1heSA4IDE4OjUyOjI1IDIwMDggKzAyMDAKCiAgICBBVDkxU0FNOVJMRUsgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgQVQ5MVNBTTlSTCBjaGlwIGFuZCB0aGUgQVQ5MVNBTTlSTEVLCiAgICBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA4ZTQyOWIzZWVlMjM5MjdjMTIyMjY3OWY2YjZmNTM2NjdiMjE1OTVjCkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJVGh1IE1heSA4IDE4OjUyOjIzIDIwMDggKzAyMDAKCiAgICBBVDkxU0FNOTI2M0VLIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIEFUOTFTQU05MjYzIGNoaXAgYW5kIHRoZSBBVDkxU0FNOTI2M0VLCiAgICBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBkOTlhOGZmNjZkOGFlODdlNWM4NzU5MGVkMmU0ZWFkNjI5NTQwNjA3CkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJVGh1IE1heSA4IDIwOjUyOjIyIDIwMDggKzAyMDAKCiAgICBBVDkxU0FNOTI2MUVLIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIEFUOTFTQU05MjYxIGNoaXAgYW5kIHRoZSBBVDkxU0FNOTI2MUVLCiAgICBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA4NmM4YzhhNDE0OTg4YzUwMTA0YTNiMDJjMjlmNTBhZjJiZTczOGMwCkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJVGh1IE1heSA4IDIwOjUyOjIxIDIwMDggKzAyMDAKCiAgICBBVDkxU0FNOTI2MEVLOiBGaXggZGF0YWZsYXNoIG9mZnNldHMgaW4gQ09ORklHX0JPT1RDT01NQU5ECgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgZGF0YWZsYXNoIG9mZnNldHMgdXNlZCBpbiBDT05GSUdfQk9PVENPTU1BTkQKICAgIGluIG9yZGVyIHRvIGNvcGUgd2l0aCB0aGUgY2hhbmdlcyBpbiBEYXRhRmxhc2ggcGFydGl0aW9ubmluZyBzY2hlbWUKICAgIChjc2V0IGMzYTYwY2IzKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA5Njk5NmFjMjVkNTIyMjYxMWE4ODg4OTY4ZGI2ZTUzYTZkMzcyNmRhCkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJVGh1IE1heSA4IDIwOjUyOjIwIDIwMDggKzAyMDAKCiAgICBBVDkxU0FNOTI2MEVLOiBOb3JtYWxpemUgQk9PVEFSR1MKCiAgICBUaGlzIHBhdGNoIGFkYXB0cyBDT05GSUdfQk9PVEFSR1MgdG8gdGhlIGNob3NlbiBib290IG1ldGhvZCAoYm9vdCBmcm9tCiAgICBEYXRhRmxhc2ggb3IgZnJvbSBOQU5EKSwgYW5kIGdpdmVzIHRvIExpbnV4IGEgZnVsbHkgc3BlY2lmaWVkIG10ZHBhcnRzCiAgICB2YXJpYWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA3OWYwY2I2ZTljNTRkMzFhMWQ5ZTNmNWUyMjZhOWJlYmMzYzNhNDdhCkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJVGh1IE1heSA4IDIwOjUyOjE5IDIwMDggKzAyMDAKCiAgICBBVDkxU0FNOTI2MEVLOiBOb3JtYWxpemUgU1BJIHRpbWluZ3MKCiAgICBUaGlzIHBhdGNoIGNoYW5nZXMgdGhlIFNQSSB0aW1pbmdzIHRvIGNsb3NlbHkgbWF0Y2ggdGhlIG9uZXMKICAgIHVzZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBhbmQgdGhlIEF0bWVsJ3Mgb3duIGJvb3RzdHJhcCBwcm9qZWN0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGMxMjEyYjJmNWM1ZWQ0NDBiZjhlOWViYzhlNGZkNzQ4ODg1OGI5MzUKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglUaHUgTWF5IDggMjA6NTI6MTggMjAwOCArMDIwMAoKICAgIEFUOTFTQU05MjYwRUs6IEhhbmRsZSA4IG9yIDE2IGJpdCBOQU5ECgogICAgVGhlIEF0bWVsIGJvYXJkcyBjYW4gaGFuZGxlIDggb3IgMTYgYml0IE5BTkQgbWVtb3JpZXMuIFRoaXMgcGF0Y2gKICAgIG1ha2VzIHRoZSBzdXBwb3J0IGNvbmZpZ3VyYWJsZSBpbiB0aGUgYm9hcmQgY29uZmlnIGhlYWRlciBmaWxlCiAgICAoQ0ZHX05BTkRfREJXXzggb3IgQ0ZHX05BTkRfREJXXzE2KS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBhYjUyNjQwZmMwMTYyNGUyMDg0MjRlNTI3YWYwYjdiM2E1YTY1YTEyCkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJVGh1IE1heSA4IDIwOjUyOjE3IDIwMDggKzAyMDAKCiAgICBBVDkxQ0FQOUFESzogRml4IGRhdGFmbGFzaCBvZmZzZXRzIGluIENPTkZJR19CT09UQ09NTUFORAoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIGRhdGFmbGFzaCBvZmZzZXRzIHVzZWQgaW4gQ09ORklHX0JPT1RDT01NQU5ECiAgICBpbiBvcmRlciB0byBjb3BlIHdpdGggdGhlIGNoYW5nZXMgaW4gRGF0YUZsYXNoIHBhcnRpdGlvbm5pbmcgc2NoZW1lCiAgICAoY3NldCBjM2E2MGNiMykuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMzI2NzUwOGVjNGM5ZTc0YzM5ZWU0MWM5YWU2OTUxYWQxODVmZTI3MApBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVRodSBNYXkgOCAyMDo1MjoxNiAyMDA4ICswMjAwCgogICAgQVQ5MUNBUDlBREs6IE5vcm1hbGl6ZSBCT09UQVJHUwoKICAgIFRoaXMgcGF0Y2ggYWRhcHRzIENPTkZJR19CT09UQVJHUyB0byB0aGUgY2hvc2VuIGJvb3QgbWV0aG9kIChib290IGZyb20KICAgIERhdGFGbGFzaCBvciBmcm9tIE5BTkQpLCBhbmQgZ2l2ZXMgdG8gTGludXggYSBmdWxseSBzcGVjaWZpZWQgbXRkcGFydHMKICAgIHZhcmlhYmxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDkzZGE0OGI5MTA1MTE5MTFjZTExMDY1NmUxN2VkNzMzYzhhYzRjNDUKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglUaHUgTWF5IDggMjA6NTI6MTUgMjAwOCArMDIwMAoKICAgIEFUOTFDQVA5QURLOiBOb3JtYWxpemUgU1BJIHRpbWluZ3MKCiAgICBUaGlzIHBhdGNoIGNoYW5nZXMgdGhlIFNQSSB0aW1pbmdzIHRvIGNsb3NlbHkgbWF0Y2ggdGhlIG9uZXMKICAgIHVzZWQgYnkgdGhlIExpbnV4IGtlcm5lbCBhbmQgdGhlIEF0bWVsJ3Mgb3duIGJvb3RzdHJhcCBwcm9qZWN0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDFjOTBkZjNlMTQ4Y2UwYTNlMmM4NmM2M2IzOGIxOWQ0Nzc3MmYyYTAKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglUaHUgTWF5IDggMjA6NTI6MTQgMjAwOCArMDIwMAoKICAgIEFUOTFDQVA5QURLOiBIYW5kbGUgOCBvciAxNiBiaXQgTkFORAoKICAgIFRoZSBBdG1lbCBib2FyZHMgY2FuIGhhbmRsZSA4IG9yIDE2IGJpdCBOQU5EIG1lbW9yaWVzLiBUaGlzIHBhdGNoCiAgICBtYWtlcyB0aGUgc3VwcG9ydCBjb25maWd1cmFibGUgaW4gdGhlIGJvYXJkIGNvbmZpZyBoZWFkZXIgZmlsZQogICAgKENGR19OQU5EX0RCV184IG9yIENGR19OQU5EX0RCV18xNikuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMTFiMTYyYmFlMDU4ZTk2Yzc5MjllMzU4ZDRhZGZmMmJlZTZjMmNjNApBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVRodSBNYXkgOCAyMDo1MjoxMyAyMDA4ICswMjAwCgogICAgVXNlIGEgY29tbW9uIHUtYm9vdC5sZHMgZmlsZSBhY3Jvc3MgYWxsIEFUOTFDQVA5L0FUOTFTQU05IHBsYXRmb3JtcwoKICAgIEFsbCB0aGUgQVQ5MUNBUDkvQVQ5MVNBTTkgYm9hcmRzIGhhdmUgdGhlIHNhbWUgbGlua2VyIHNjcmlwdC4gVGhlIHBhdGNoCiAgICBiZWxvdyBhdm9pZHMgdGhlIGR1cGxpY2F0aW9uIG9mIHUtYm9vdC5sZHMgYnkgcHV0dGluZyB0aGUgZmlsZSBpbiB0aGUKICAgIGNwdSBkaXJlY3RvcnkgaW5zdGVhZCBvZiB0aGUgYm9hcmQgb25lLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGQ0OGFiZWE0Yjg5YWRhZjVlNDVlYTc1YjVlMzhjMGQ4ZGUxNzllY2UKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglUaHUgTWF5IDggMjA6NTI6MTIgMjAwOCArMDIwMAoKICAgIEFkZCBwcm9wZXIgY29weXJpZ2h0IG5vdGljZXMgaW4gQXRtZWwgYm9hcmRzIE1ha2VmaWxlcwoKICAgIFRoZSBNYWtlZmlsZXMgZm9yIHRoZSBBVDkxQ0FQOS9BVDkxU0FNOSBib2FyZHMgaGF2ZSBhbiBpbmNvbXBsZXRlCiAgICBjb3B5cmlnaHQgbm90aWNlLiBUaGlzIHBhdGNoIGFkZHMgdGhlIG1pc3NpbmcgcGllY2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGU4MTdhMDQyY2VmNjE2NGJmMjZmZWU4NmY5MDMyNmYyZWM5ZTY3NDUKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglUaHUgTWF5IDggMjA6NTI6MTEgMjAwOCArMDIwMAoKICAgIEFkZCBjb3B5cmlnaHQgaW5mb3JtYXRpb24gaW4gQXRtZWwgYm9hcmRzIHBhcnRpdGlvbi5jCgogICAgV2hlbiBVbGYgZGlkIHRoZSBkYXRhZmxhc2guYyBjbGVhbnVwLCBoZSBkaWRuJ3QgYWRkIGhpcyBjb3B5cmlnaHQgb24KICAgIHRoZSBuZXcgY3JlYXRlZCBmaWxlcy4gVGhpcyBwYXRjaCBmaXhlcyB0aGUgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA0ZjZjODEwMTA2ZjRmNzZkODNjZmM1N2Q5OGY0NTQwY2Q0NWY5YTE5CkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJVGh1IE1heSA4IDIwOjUyOjEwIDIwMDggKzAyMDAKCiAgICBVcGRhdGUgb3JpZ2luIGFuZCBjb3B5cmlnaHQgaW5mb3JtYXRpb24gaW4gYXJjaC1hdDkxc2FtOSBoZWFkZXIgZmlsZXMKCiAgICBXaGVuIGRvaW5nIHRoZSBBVDkxQ0FQOS9BVDkxU0FNOSBwb3J0LCBhIG51bWJlciBvZiBoZWFkZXIgZmlsZXMgd2VyZQogICAgY29waWVkIGZyb20gdGhlIExpbnV4IGtlcm5lbCBzb3VyY2VzLiBUaGlzIHBhdGNoIGV4cGxpY2l0bHkgc3BlY2lmaWVzCiAgICB0aGlzIG9yaWdpbiBmb3IgYWxsIHRoZSBjb3BpZWQgaGVhZGVycywgYW5kIGZvciB0aG9zZSBtaXNzaW5nIGNvcHlyaWdodAogICAgaW5mb3JtYXRpb24sIGFkZHMgaXQuCgogICAgQWRkaXRpb25hbHksIHRoZSBoZWFkZXIgZmlsZSAnYXQ5MXNhbTkyNnhfbWMuaCcgaGFzIGJlZW4gc3VwZXJjZWVkZWQKICAgIGluIHRoZSBsYXRlc3Qga2VybmVsIHNvdXJjZXMgYnkgJ2F0OTFzYW05X3NtYy5oJy4KCiAgICBUaGUgY29weXJpZ2h0IGluZm9ybWF0aW9uIGhhcyBiZWVuIGNvbmZpcm1lZCBieSB0aGUgQVQ5MSBMaW51eCBrZXJuZWwKICAgIG1haW50YWluZXIsIEFuZHJldyBWaWN0b3IgPGF2aWN0b3IuemFAZ21haWwuY29tPi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA3OWRkMTcxMjY4OWQ2YTUwMzFkN2NiZmY1NDk1NzA0OTY4MDc1MWM3CkF1dGhvcjogTWFya3VzIEtsb3R6YsO8Y2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVGh1IE1heSA4IDE2OjAwOjU1IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEtpbGF1ZWE6IEFkZCBDT05GSUdfQk9PVFBfU1VCTkVUTUFTSyB0byBLaWxhdWVhIGJvYXJkIGNvbmZpZwoKICAgIFdoZW4gdXNpbmcgZGhjcC9ib290cCB0aGUgIm5ldG1hc2siIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG5vdCBzZXQKICAgIGJlY2F1c2UgQ09ORklHX0JPT1RQX1NVQk5FVE1BU0sgaXMgbm90IGRlZmluZWQuIEJ1dCB1c3VhbGx5IHRoaXMgaXMKICAgIGRlc2lyZWFibGUsIHNvIHRoZSBmb2xsb3dpbmcgcGF0Y2ggYWRkcyB0aGlzIHRoaXMgb3B0aW9uIHRvIHRoZSBib2FyZAogICAgY29uZmlnLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODY5ZDE0YjRjYzJlNDdkZTJkZGNiMTE3YmFkMDQwN2E0NDQzNjY4NApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE1heSAxMCAxMDozMDozNiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgTWFrYWx1IGRlZmNvbmZpZyB0byB1c2UgZGV2aWNlLXRyZWUgYm9vdGluZyBhcyBkZWZhdWx0CgogICAgVGhpcyBwYXRjaCByZXdvcmtzIHRoZSBkZWZhdWx0IGVudmlyb25tZW50IG9uIE1ha2FsdS4gTm93ICJuZXRfbmZzIiBmb3IKICAgIGV4YW1wbGUgdXNlcyB0aGUgZGV2aWNlLXRyZWUgc3R5bGUgYm9vdGluZyBmb3JtZXJseSBrbm93IGFzICJuZXRfbmZzX2ZkdCIuCiAgICBBbHNvIHRoZSBhZGRyZXNzZXMgaW4gUkFNIHdlcmUgY2hhbmdlZCBiZWNhdXNlIG9mIHRoZSBuZXcgaW1hZ2UgYm9vdGluZwogICAgc3VwcG9ydCwgd2hpY2ggY2hlY2sgZm9yIGltYWdlIG92ZXJ3cml0aW5nLiBTbyB0aGUgYWRkcmVzc2VzIG5lZWRlZCB0bwogICAgZ2V0IGFkanVzdGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmMzYxMmE3YjE5OWNhYjM5NDJmNjBkOWMxMzkyZWIzOWQ1OGNjNjk5CkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJnaWxsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXkgNyAxMzoyODoxNiAyMDA4IC0wNTAwCgogICAgUFBDOiBmaXggbWFwX3BoeXNtZW0gYnVpbGQgd2FybmluZwoKICAgIG1hcF9waHlzbWVtIGN1cnJlbnRseSBnZW5lcmF0ZXMgYSB3YXJuaW5nIHdoZW4gQ09ORklHX1BIWVNfNjRCSVQgaXMKICAgIGVuYWJsZWQuICBUaGlzIHF1aWV0cyB0aGUgd2FybmluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8QmVja3kuQnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzNmYzMjY3NWY0MDI5MjAwMmVlMWZlZDI1MmMxODBhNDMwMjJkMmQ0CkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJnaWxsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXkgNyAxMzoyNDo1NyAyMDA4IC0wNTAwCgogICAgVXBkYXRlIHBjaSBjb2RlIHRvIHVzZSBwaHlzX2FkZHJfdAoKICAgIFBoeXNpY2FsIGFkZHJzIG5lZWQgdG8gYmUgcmVwcmVzZW50ZWQgYnkgcGh5c19hZGRyX3QsIG5vdAogICAgdW5zaWduZWQgbG9uZy4gIE90aGVyd2lzZSwgc3lzdGVtcyB0aGF0IHVzZSBDT05GSUdfUEhZU182NEJJVAogICAgYXJlIGdvaW5nIHRvIGZhaWwgbWlnaHRpbHkuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTFhNjE2NzQxZmMxMjhjZGI4OGYzOWJkZGNkNGQ3MmZlMTc0NjZkMApBdXRob3I6IE5pY2sgU3BlbmNlIDxuaWNrLnNwZW5jZUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWF5IDggMjI6MzI6MjIgMjAwOCAtMDcwMAoKICAgIFN1cHBvcnQgbGVnYWN5IG11bHRpLXR5cGUgaW1hZ2VzIHdpdGhvdXQgRkRUIHNlY3Rpb24uCgogICAgVGhpcyBwYXRjaCBlbmFibGVzIGxlZ2FjeSBtdWx0aS10eXBlIGltYWdlcyBjb250YWluaW5nIG9ubHkgYSBMaW51eCBrZXJuZWwKICAgIGFuZCByb290IGZpbGUgc3lzdGVtIHRvIGJlIGxvYWRlZCwgbWFpbnRhaW5pbmcgY29tcGF0aWJpbGl0eSB3aXRoIHByZXZpb3VzCiAgICB2ZXJzaW9ucyBvZiB1LWJvb3QuCgogICAgVGhpcyBpcyByZXF1aXJlZCB3aGVuIHVzaW5nIG9sZCBpbWFnZSBmaWxlcyBzdWNoIGFzIGEgTGludXggMi40IGtlcm5lbCAvCiAgICBmaWxlc3lzdGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pY2sgU3BlbmNlIDxuaWNrLnNwZW5jZUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgODgxMDMxZDk3MzI3ODNiN2FlYWUyMTk4ZmM3ZWI0ODBhZTg5NzRhNgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBNYXkgMTAgMDA6Mzg6MDIgMjAwOCArMDIwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlNWU5ZDZjOWMwODE2MGJlN2U1YTM2ZTA0ZDEyNWNjY2U5OWI4Nzc0CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE1heSAxMCAwMDozNjowOSAyMDA4ICswMjAwCgogICAgcG9zdC9jcHUvcHBjNHh4L01ha2VmaWxlOiBsaW5lIGxlbmd0aCBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBjY2U5Y2ZkYWJjZjQxNmVjZDJhYWNjMzY4MWM5MWU1Mzc4Yzc1YTNkCkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJVGh1IE1heSA4IDIyOjUyOjA5IDIwMDggKzAyMDAKCiAgICBGaXggQCAtPiA8YXQ+IHN1YnN0aXR1dGlvbgoKICAgIFdoZW4gYXBwbHlpbmcgdGhlIEFUOTFDQVA5IHBhdGNoZXMgdXBzdHJlYW0sIHNvbWV0aGluZyB0cmFuc2Zvcm1lZAogICAgdGhlICdAJyBjaGFyYWN0ZXIgaW50byB0aGUgJyA8YXQ+ICcgc2VxdWVuY2UuCgogICAgVGhlIHBhdGNoIGJlbG93IHJlc3RvcmVzIHRoZSBvcmlnaW5hbCBmb3JtIGluIGFsbCB0aGUgcGxhY2VzIHdoZXJlCiAgICBpdCBoYXMgYmVlbiBtb2RpZmllZCAodGhlIEFUOTFDQVA5IGZpbGVzLCB0aGUgQVQ5MVNBTTkyNjAgZmlsZXMgd2hpY2gKICAgIHdlcmUgY29waWVkIGZyb20gQVQ5MUNBUDksIGFuZCBhIGNvdXBsZSBvZiBvdGhlciBmaWxlcyB3aGVyZSB0aGUKICAgICcgPGF0PiAnIHNlcXVlbmNlIHdhcyBwcmVzZW50KS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IDk2MDZiM2M4MWIzYzQ3YTFkNTg1MTRlOWEyMzJjNmY0NjFhMTc1OTcKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglUaHUgTWF5IDggMjI6NTI6MTAgMjAwOCArMDIwMAoKICAgIFVwZGF0ZSBvcmlnaW4gYW5kIGNvcHlyaWdodCBpbmZvcm1hdGlvbiBpbiBhcmNoLWF0OTFzYW05IGhlYWRlciBmaWxlcwoKICAgIFdoZW4gZG9pbmcgdGhlIEFUOTFDQVA5L0FUOTFTQU05IHBvcnQsIGEgbnVtYmVyIG9mIGhlYWRlciBmaWxlcyB3ZXJlCiAgICBjb3BpZWQgZnJvbSB0aGUgTGludXgga2VybmVsIHNvdXJjZXMuIFRoaXMgcGF0Y2ggZXhwbGljaXRseSBzcGVjaWZpZXMKICAgIHRoaXMgb3JpZ2luIGZvciBhbGwgdGhlIGNvcGllZCBoZWFkZXJzLCBhbmQgZm9yIHRob3NlIG1pc3NpbmcgY29weXJpZ2h0CiAgICBpbmZvcm1hdGlvbiwgYWRkcyBpdC4KCiAgICBBZGRpdGlvbmFseSwgdGhlIGhlYWRlciBmaWxlICdhdDkxc2FtOTI2eF9tYy5oJyBoYXMgYmVlbiBzdXBlcmNlZWRlZAogICAgaW4gdGhlIGxhdGVzdCBrZXJuZWwgc291cmNlcyBieSAnYXQ5MXNhbTlfc21jLmgnLgoKICAgIFRoZSBjb3B5cmlnaHQgaW5mb3JtYXRpb24gaGFzIGJlZW4gY29uZmlybWVkIGJ5IHRoZSBBVDkxIExpbnV4IGtlcm5lbAogICAgbWFpbnRhaW5lciwgQW5kcmV3IFZpY3RvciA8YXZpY3Rvci56YUBnbWFpbC5jb20+LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+Cgpjb21taXQgY2ViNmI0ZmJlMWRjYzQwYmI2NzJlZjgxMzNkZGY0ODEzZTk3Y2JiMQpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVRodSBNYXkgOCAyMjo1MjoxMSAyMDA4ICswMjAwCgogICAgQWRkIGNvcHlyaWdodCBpbmZvcm1hdGlvbiBpbiBBdG1lbCBib2FyZHMgcGFydGl0aW9uLmMKCiAgICBXaGVuIFVsZiBkaWQgdGhlIGRhdGFmbGFzaC5jIGNsZWFudXAsIGhlIGRpZG4ndCBhZGQgaGlzIGNvcHlyaWdodCBvbgogICAgdGhlIG5ldyBjcmVhdGVkIGZpbGVzLiBUaGlzIHBhdGNoIGZpeGVzIHRoZSBwcm9ibGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+Cgpjb21taXQgMmFiMDJmZDQ1NmQ4ZWY5MmFlOWY1NDM5NjE4ZDFmYTdjYTE2ZTVmMwpBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJVGh1IE1heSA4IDEwOjA5OjI3IDIwMDggKzAyMDAKCiAgICBteDMxYWRzOiBmaXggMzJrSHogY2xvY2sgaGFuZGxpbmcKCiAgICBBY2NvcmRpbmcgdG8gc2NoZW1hdGljcyBhbmQgdG8gUmVkQm9vdCBzb3VyY2VzLCB0aGUgTVgzMUFEUyB1c2VzIGEgMzI3NjhIegogICAgb3NjaWxsYXRvciBhcyBhIFNLSUwgc291cmNlLiBGaXggcHJldmlvdXNseSB3cm9uZ2x5IGFzc3VtZWQgMzIwMDBIeiB2YWx1ZS4KICAgIEFsc28gZml4IGEgdHlwbyB3aGVuIHZlcmlmeWluZyBhIGp1bXBlciBjb25maWd1cmF0aW9uLiBXaGlsZSBhdCBpdCwgbWFrZQogICAgdHdvIG5lZWRsZXNzbHkgZ2xvYmFsIGZ1bmN0aW9ucyBzdGF0aWMuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDFiNTYwNWNhNTdmYmIzNjRmNGQ3OGVlZWUyOGI5NzRlZDg3NWU4ODgKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWF5IDcgMTM6MTA6MDQgMjAwOCArMDIwMAoKICAgIEF2b2lkIGluaXRyZCBhbmQgbG9nYnVmZmVyIGFyZWEgb3ZlcmxhcHMKCiAgICBBZGQgbG9nYnVmZmVyIHRvIHJlc2VydmVkIExNQiBhcmVhcyB0byBwcmV2ZW50IGluaXRyZCBhbGxvY2F0aW9uCiAgICBmcm9tIG92ZXJsYXBpbmcgd2l0aCBpdC4KCiAgICBNYWtlIHN1cmUgdG8gdXNlIGNvcnJlY3QgbG9nYnVmZmVyIGJhc2UgYWRkcmVzcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGM1OTUxOGUxNTk0OWIzNDAzZGY1YzViMGMyYzQ4ZWEwZTViZWEyNGIKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWF5IDcgMTM6MDg6NTQgMjAwOCArMDIwMAoKICAgIHBwYzogQ2xlYW51cCBnZXRfZWZmZWN0aXZlX21lbXNpemUoKSB1c2UKCiAgICBSZW1vdmVkIGR1cGxpY2F0ZWQgZWZmZWN0aXZlIG1lbW9yeSBzaXplIGNhbGN1bGF0aW9uIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAyNzNjMzdkODQzZDViNTgxMDkwMzc4MDE2Y2QxMmRkOWM1ODY5MDdiCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1heSA3IDA5OjAzOjUzIDIwMDggKzAyMDAKCiAgICBGaXggYnVpbGQgZXJyb3JzIHdoZW4gQ09ORklHX0xPR0JVRkZFUiBhbmQgQ09ORklHX0ZJVCBhcmUgZW5hYmxlZAoKICAgIFJlY2VudCBtb2RpZmNhdGlvbnMgdG8gTE9HQlVGRkVSIGhhbmRsaW5nIGNvZGUgd2VyZSBpbmNvcnJlY2x5CiAgICBpbnRyb2R1Y2VkIHRvIGZpdF9jaGVja19rZXJuZWwoKSByb3V0aW5lIGR1cmluZwogICAgIk1lcmdlIGJyYW5jaCAnbmV3LWltYWdlJyBvZiBnaXQ6Ly93d3cuZGVueC5kZS9naXQvdS1ib290LXRlc3RpbmciLAogICAgY29tbWl0IDI3ZjMzZTlmNDVlZjdmOTY4NWNiZGM2NTA2NmExODI4ZTg1ZGRlNGYuCgogICAgVGhpcyBwYXRjaCBjbGVhbnMgdXAgdGhpcyBtZXJnZSBpc3N1ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGJjMTE3NTZkYWZmODlhM2RlMDljYTgwYWRhYzk2MmI4OGNmMDZlNmUKQXV0aG9yOiBHcmFudCBFcmlja3NvbiA8Z2VyaWNrc29uQG51b3ZhdGlvbnMuY29tPgpEYXRlOglUdWUgTWF5IDYgMjA6MTY6MTUgMjAwOCAtMDcwMAoKICAgIFByb3BhZ2F0ZSBFcnJvciBTdGF0dXMgdG8gdGhlIFNoZWxsIG9uIGZ3X3ByaW50ZW52IEVycm9ycwoKICAgIENoYW5nZWQgaW1wbGVtZW50YXRpb24gc3VjaCB0aGF0IGZ3X3ByaW50ZW52IHJldHVybnMgZmFpbHVyZSBzdGF0dXMKICAgIHdoZW4gb25lIG9yIG1vcmUgc3BlY2lmaWVkIHZhcmlhYmxlcyBkbyBub3QgZXhpc3Qgb3Igd2hlbiBpbmNvcnJlY3QKICAgIGNvbW1hbmQgc3ludGF4IGlzIHVzZWQuCgogICAgVGhpcyBhaWRzIHNjcmlwdGluZyBmd19wcmludGVudiBzdWNoIHRoYXQgdGhlIHNjcmlwdCBjYW4ga2V5IG9mIHRoZQogICAgcmV0dXJuIHN0YXR1cyByYXRoZXIgdGhhbiByZWx5aW5nIG9uIHN0YW5kYXJkIGVycm9yICJzY3JhcGluZyIuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgRXJpY2tzb24gPGdlcmlja3NvbkBudW92YXRpb25zLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZjNiNmQ1MjhlNGRkNzE5NjQwYTRiZmNkOTU0ZjRlNGM3ZjVkYjBkNgpBdXRob3I6IEdyYW50IEVyaWNrc29uIDxnZXJpY2tzb25AbnVvdmF0aW9ucy5jb20+CkRhdGU6CVR1ZSBNYXkgNiAxNjoxODowMCAyMDA4IC0wNzAwCgogICAgRml4IENvbXBpbGF0aW9uIEVycm9ycyB3aXRoICd0b29scy9lbnYvZndfcHJpbnRlbnYnCgogICAgSW4gdGhlIGN1cnJlbnQgdG9wLW9mLXRyZWUsIDEuMy4zLi1yYzIsIHRoZSBvcHRpb25hbCB0b29sCiAgICAndG9vbHMvZW52L2Z3X3ByaW50ZW52JyBmYWlscyB0byBjb21waWxlIGZvciB0d28gcmVhc29uczoKCiAgICAxKSBUaGUgaGVhZGVyIHdhdGNoZG9nLmggY2Fubm90IGJlIGZvdW5kLgogICAgMikgVGhlIGhlYWRlciB6bGliLmggaXMgcGlja2VkIHVwIGZyb20gdGhlIHRvb2wgY2hhaW4gcmF0aGVyIHRoYW4gdGhlCiAgICAgICBwcm9qZWN0IGNhdXNpbmcgYSBwcm90b3R5cGUgY29uZmxpY3QgZm9yIGNyYzMyLgoKICAgIFRoaXMgcGF0Y2ggYWRkcmVzc2VzIGJvdGggb2YgdGhlc2UgaXNzdWVzLgoKICAgIFBsYXRmb3JtcyBUZXN0ZWQgT246CiAgICAtIEFNQ0MgIktpbGF1ZWEiCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgRXJpY2tzb24gPGdlcmlja3NvbkBudW92YXRpb25zLmNvbT4KCmNvbW1pdCA1OTdmNmMyNmExOGIzODk5MDNhNjQ2OTJiYWNiZjlhMWNhNjkzNTViCkF1dGhvcjogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTWF5IDUgMTA6MjI6NTMgMjAwOCAtMDUwMAoKICAgIEZpeCByZWFkbGluZV9pbnRvX2J1ZmZlcigpIHdpdGggQ09ORklHX0NNRExJTkVfRURJVElORyBiZWZvcmUgcmVsb2NhdGluZwoKICAgIFdoZW4gQ09ORklHX0NNRExJTkVfRURJVElORyBpcyBlbmFibGVkLCByZWFkbGluZV9pbnRvX2J1ZmZlcigpIGRvZXNuJ3QKICAgIHdvcmsgYmVmb3JlIHJlbG9jYXRpbmcgdG8gUkFNIGJlY2F1c2UgY29tbWFuZCBoaXN0b3J5IGlzIHdyaXR0ZW4gaW50bwogICAgYSBnbG9iYWwgYXJyYXkgdGhhdCBpcyBub3Qgd3JpdGFibGUgYmVmb3JlIHJlbG9jYXRpb24uICBUaGlzIHBhdGNoCiAgICBkZWZlcnMgdG8gdGhlIG5vLWVkaXRpbmcgYW5kIG5vLWhpc3RvcnkgY29kZSBpbiByZWFkbGluZV9pbnRvX2J1ZmZlcigpCiAgICBpZiBpdCBpcyBjYWxsZWQgYmVmb3JlIHJlbG9jYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA3MjZjMGYxZTVmMTA4ZGNjZWEwNTI5NjUxMjNiOTU4MzdkMmJkNDAyCkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CU1vbiBNYXkgNSAxNjoxMToyMiAyMDA4ICswMjAwCgogICAgY29zbWV0aWM6IEFkanVzdCBjb2Rpbmcgc3R5bGUgZm9yIHN3aXRjaCBzdGF0ZW1lbnRzIHRvIGJlIGNvbnNpc3RlbnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCA1NzRiMzE5NTEyYjEzZTEwODAwZjAwNDVlMzliOTkzZjRjYTI1ZTQyCkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CU1vbiBNYXkgNSAxNjoxMToyMSAyMDA4ICswMjAwCgogICAgRml4IGRpc2sgdHlwZSBvdXRwdXQgaW4gZGlzay9wYXJ0LmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCAwNDViNGQyZDcxNjhlZjA5YzczNDlkY2Y2ZWNlYmU3NDMyYjc0MTcxCkF1dGhvcjogVmxhZCBMdW5ndSA8dmxhZC5sdW5ndUB3aW5kcml2ZXIuY29tPgpEYXRlOglNb24gTWF5IDUgMTQ6MjA6MDMgMjAwOCArMDMwMAoKICAgIE1haWwgYWRkcmVzcyBjaGFuZ2UsIGRvY3VtZW50YXRpb24gbW9kaWZpZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBWbGFkIEx1bmd1IDx2bGFkLmx1bmd1QHdpbmRydmllci5jb20+Cgpjb21taXQgNGQ0OWIyODAzOGUyODE5MDg4ZTgzNTZhNzcyMTJmYzk1YTg5Y2U1YQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU3VuIE1heSA0IDE1OjQyOjQxIDIwMDggKzAyMDAKCiAgICBtaWNyb2JsYXplOiBSZXBhcmUgaW50YyBoYW5kbGluZwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KCmNvbW1pdCA4NzhiM2IxZTE5M2U1NzBjYWYzZTk2YWQ4ZTMxZTU2MWY2OGQwMjg3CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE1heSA0IDE1OjE3OjUyIDIwMDggKzAyMDAKCiAgICBpbmNsdWRlL2dpdGlnbm9yZTogdXBkYXRlIHRvIGFsbCBhcmNoaXRlY3R1cmVzCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAxZGYzNjhhZWQzYjhiYzI0MGZlMTU5NWQyOTBiMGU5MWIyMjk2MWRhCkF1dGhvcjogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgpEYXRlOglNb24gTWF5IDUgMDI6MTI6MDYgMjAwOCArMDIwMAoKICAgIGlkZTogUmVtb3ZlIHNwdXJpb3VzIHNlY29uZCBpbmNsdWRlIG9mIGlvLmgKCiAgICBSZW1vdmVkIHRoZSBzZWNvbmQgaW5jbHVkZSwgd2l0aCBhbGwgdGhlICNpZmRlZiBhcm91bmQgYXMgc3VnZ2VzdGVkIGJ5IFdvbGZnYW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KCmNvbW1pdCA4ZmJjOTg1YmRhZDA5YjIzYjdlYjRkZjFkMmVhNTg5NjE5ZDhkYjRjCkF1dGhvcjogQWRyaWFuIEZpbGlwaSA8YWRyaWFuLmZpbGlwaUBldXJvdGVjaC5jb20+CkRhdGU6CVR1ZSBNYXkgNiAxNjo0NjozNyAyMDA4IC0wNDAwCgogICAgRml4IHNvbWUgdHlwb3MKCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRocmVlIHR5cG9zLgogICAgVGhlIGZpcnN0IGlzIGEgcmVwZXRpdGlvbiBvZiBDT05GSUdfQ01EX0JTUC4KICAgIFRoZSBzZWNvbmQgbWFrZXMgdGhlICNlbmRpZiBjb21tZW50IG1hdGNoIGl0cyAjaWYuCiAgICBUaGUgdGhpcmQgaXMgYSBzcGVsbGluZyBlcnJvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBZHJpYW4gRmlsaXBpIDxhZHJpYW4uZmlsaXBpQGV1cm90ZWNoLmNvbT4KCmNvbW1pdCBlNDE5ZTEyZDA0YWUzYjI4MGM5OWE4N2EyZWE0YWQ3YTQwNjI4YmNiCkF1dGhvcjogR3JhbnQgRXJpY2tzb24gPGdlcmlja3NvbkBudW92YXRpb25zLmNvbT4KRGF0ZToJU3VuIE1heSA0IDE2OjQ1OjAxIDIwMDggLTA3MDAKCiAgICBSZWNvZ25pemUgJ3Bvd2VycGMnIEFzIGFuIEFsaWFzIGZvciBJSF9BUkNIX1BQQwoKICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgcmVjb2duaXRpb24gb2YgJ3Bvd2VycGMnIGFzIGFuIGFsaWFzIGZvciB0aGUgUG93ZXJQQwogICAgYXJjaGl0ZWN0dXJlIHR5cGUgc2luY2UgTGludXggaXMgYWxyZWFkeSB0cmVuZGluZyBpbiB0aGF0IGRpcmVjdGlvbiwKICAgIHByZWZlcnJpbmcgJ3Bvd2VycGMnIHRvICdwcGMnLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IEVyaWNrc29uIDxnZXJpY2tzb25AbnVvdmF0aW9ucy5jb20+Cgpjb21taXQgZjVhMjQyNTkxOTBjMzg4YzI1MjdiZGM0OWZlZTM0NTc3ZDg2MmNjNwpBdXRob3I6IFdoZWF0bGV5IFRyYXZpcyA8VHJhdmlzLldoZWF0bGV5QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBNYXkgMiAxMzozNToxNSAyMDA4IC0wNzAwCgogICAgNzQ1MCBhbmQgODZ4eCBMMiBjYWNoZSBpbnZhbGlkYXRlIGJ1ZyBjb3JyZWN0aW9ucwoKICAgIFRoZSA3NjEwIGFuZCByZWxhdGVkIHBhcnRzIGhhdmUgYW4gTDJJUCBiaXQgaW4gdGhlIEwyQ1IgdGhhdCBpcwogICAgbW9uaXRvcmVkIHRvIHNpZ25hbCB3aGVuIHRoZSBMMiBjYWNoZSBpbnZhbGlkYXRlIGlzIGNvbXBsZXRlIHdoZXJlYXMgdGhlCiAgICA3NDUwIGFuZCByZWxhdGVkIHBhcnRzIHV0aWxpemUgTDJJIGZvciB0aGlzIHB1cnBvc2UuIEhvd2V2ZXIsIHRoZQogICAgY3VycmVudCBjb2RlIGRvZXMgbm90IGFjY291bnQgZm9yIHRoaXMgZGlmZmVyZW5jZS4gQWRkaXRpb25hbGx5IHRoZSA4Nnh4CiAgICBMMiBjYWNoZSBpbnZhbGlkYXRlIGNvZGUgdXNlZCBhbiAiYW5kaSIgaW5zdHJ1Y3Rpb24gd2hlcmUgYW4gImFuZGlzIgogICAgaW5zdHJ1Y3Rpb24gc2hvdWxkIGhhdmUgYmVlbiB1c2VkLgoKICAgIFRoaXMgcGF0Y2ggYWRkcmVzc2VzIGJvdGggb2YgdGhlc2UgYnVncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUcmF2aXMgV2hlYXRsZXkgPHRyYXZpcy53aGVhdGxleUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtQnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGQzMWNkYzQ1ZDM1OTJhNTU0NWE2NDlmYjVhMjRiNDU4YTRlNGI3MgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBNYXkgOSAxMDoxNjoxMyAyMDA4ICswMjAwCgogICAgQXZvaWQgaW5maW5pdGUgbG9vcCAiR2VuZXJhdGluZyBpbmNsdWRlL2F1dG9jb25mLm1rIgoKICAgIEZpeCBhIGJvZ3VzIGNpcmN1bGFyIGRlcGVuZGVuY3kgdGhhdCBjYXVzZWQgYW4gaW5maW5pdGUgbG9vcCBvZgogICAgIkdlbmVyYXRpbmcgaW5jbHVkZS9hdXRvY29uZi5tayIgYWdhaW4gYW5kIGFnYWluLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNTY3ZmI4NTIxNzhkYmY1OTUyOWQ3MzAxNjIwYTNmMzczMmE0YjAyZApBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVRodSBNYXkgOCAyMjo1MjowOSAyMDA4ICswMjAwCgogICAgRml4IEAgLT4gPGF0PiBzdWJzdGl0dXRpb24KCiAgICBXaGVuIGFwcGx5aW5nIHRoZSBBVDkxQ0FQOSBwYXRjaGVzIHVwc3RyZWFtLCBzb21ldGhpbmcgdHJhbnNmb3JtZWQKICAgIHRoZSAnQCcgY2hhcmFjdGVyIGludG8gdGhlICcgPGF0PiAnIHNlcXVlbmNlLgoKICAgIFRoZSBwYXRjaCBiZWxvdyByZXN0b3JlcyB0aGUgb3JpZ2luYWwgZm9ybSBpbiBhbGwgdGhlIHBsYWNlcyB3aGVyZQogICAgaXQgaGFzIGJlZW4gbW9kaWZpZWQgKHRoZSBBVDkxQ0FQOSBmaWxlcywgdGhlIEFUOTFTQU05MjYwIGZpbGVzIHdoaWNoCiAgICB3ZXJlIGNvcGllZCBmcm9tIEFUOTFDQVA5LCBhbmQgYSBjb3VwbGUgb2Ygb3RoZXIgZmlsZXMgd2hlcmUgdGhlCiAgICAnIDxhdD4gJyBzZXF1ZW5jZSB3YXMgcHJlc2VudCkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNzNjY2IzNDEwYTA3ODU1OTNjZGE3YWVlNDU1ZGZjNTFmNzkwZTI4MQpBdXRob3I6IEdhcnkgSmVubmVqb2huIDxnYXJ5Lmplbm5lam9obkBmcmVlbmV0LmRlPgpEYXRlOglNb24gQXByIDI4IDE0OjA0OjMyIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEFkZCB0aGUgSGFycmlzIFFVQUQxMDBIRCBBTUNDIDQwNUVQLWJhc2VkIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWYyNjQyNjI1Y2JmYjFjMzY5NWUzNDc4ZDA4YWU1MTUwNTJhNDk1MApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1heSA4IDExOjEwOjQ2IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEtpbGF1ZWE6IEZpeCBpbmNvcnJlY3QgRlBHQSBGSUZPIGFkZHJlc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYTAwZWNjZmViYzk1NGFkOTQ4NTE2MWVmZWNhN2Q5YWFmNjI2ZDUzMApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1heSA4IDExOjA1OjE1IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBmZHQgc3VwcG9ydCB0byBhbGwgcmVtYWluaW5nIEFNQ0MgUFBDNHh4IGV2YWwgYm9hcmRzCgogICAgVGhpcyBwYXRjaCBhZGRzIGZkdCAoZmxhdHRlbmVkIGRldmljZSB0cmVlKSBzdXBwb3J0IHRvIGFsbCByZW1haW5pbmcgQU1DQwogICAgZXZhbCBib2FyZHMuIE1vc3QgbmV3ZXIgYm9hcmRzIGFscmVhZHkgc3VwcG9ydCBkZXZpY2UgdHJlZS4gV2l0aCB0aGlzIHBhdGNoLAogICAgYWxsIEFNQ0MgYm9hcmRzIG5vdyBlbmFibGUgZGV2aWNlIHRyZWUgcGFzc2luZyBmcm9tIFUtQm9vdCB0byBMaW51eAogICAgYXJjaC9wb3dlcnBjIGtlcm5lbHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNiNWQ4OGI5NjExZTBjMzVjNTM1NDNhZDNiNGFiOTlmYTgyMjAzZTMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXkgOCAxMTowMTowOSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBBZGQgd2VhayBkZWZhdWx0IGZ0X2JvYXJkX3NldHVwKCkgcm91dGluZQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBhIGRlZmF1bHQgZnRfYm9hcmRfc2V0dXAoKSByb3V0aW5lIHRvIHRoZSA0eHggZmR0IGNvZGUuCiAgICBUaGlzIHJvdXRpbmUgaXMgZGVmaW5lZCBhcyB3ZWFrIGFuZCBjYW4gYmUgb3ZlcndyaXR0ZW4gYnkgYSBib2FyZCBzcGVjaWZpYwogICAgb25lIGlmIG5lZWRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDFjMWJhODVjNzkxNTA1M2FkZjZhOGQxNGEwOGFjNmZjYjc1MGQwMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1heSA4IDEwOjQ4OjU4IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IGFjYWRpYTogQWRkIGZkdCBzdXBwb3J0IGFuZCBmaXggc2VjdGlvbiBvdmVybGFwIHByb2JsZW0KCiAgICBUaGlzIHBhdGNoIGFkZHMgZmR0IChmbGF0dGVuZWQgZGV2aWNlIHRyZWUpIHN1cHBvcnQgdG8gdGhlIEFNQ0MKICAgIEFjYWRpYSBldmFsIGJvYXJkLiBUaGlzIGluY3JlYXNlcyB0aGUgaW1hZ2Ugc2l6ZSBhbmQgaXQgZG9lc24ndAogICAgZml0IGFueW1vcmUgaW50byAyNTZrQnl0ZS4gU2luY2Ugd2UgZGlkbid0IHdhbnQgdG8gcmVtb3ZlIGZlYXR1cmVzCiAgICBmcm9tIHRoZSBjb25maWd1cmF0aW9uLCB3ZSBkZWNpZGVkIHRvIGluY3JlYXNlIHRoZSBVLUJvb3QgaW1hZ2Ugc2l6ZQogICAgKGFkZCBvbmUgZmxhc2ggc2VjdG9yKS4KCiAgICBBbHNvIGNoYW5nZWQgdGhlIGRlZmF1bHQgZW52aXJvbm1lbnQgZGVmaW5pdGlvbiB0byBtYWtlIGl0CiAgICBpbmRlcGVuZGVudCBvZiBzdWNoIGNoYW5nZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDRhZGIzMDIzZGU3NWJjMTUwZjA4OGM4OTM1ZGIzNDA5MzBhZDM4YzgKQXV0aG9yOiBJcmEgU255ZGVyIDxpd3NAb3Zyby5jYWx0ZWNoLmVkdT4KRGF0ZToJVHVlIEFwciAyOSAxMToxODo1NCAyMDA4IC0wNzAwCgogICAgcHBjNHh4OiBBZGQgZGV2aWNlIHRyZWUgc3VwcG9ydCB0byBBTUNDIFlvc2VtaXRlCgogICAgQWRkIHN1cHBvcnQgZm9yIGJvb3Rpbmcgd2l0aCBhIGRldmljZSB0cmVlIGJsb2IuIFRoaXMgaXMgbmVlZGVkIHRvIGJvb3QKICAgIEFSQ0g9cG93ZXJwYyBrZXJuZWxzLiBBbHNvIGFkZCBzdXBwb3J0IGZvciBzZXR0aW5nIHRoZSBldGgwIG1hYyBhZGRyZXNzCiAgICB2aWEgdGhlIGV0aGFkZHIgdmFyaWFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogSXJhIFcuIFNueWRlciA8aXdzQG92cm8uY2FsdGVjaC5lZHU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYjliYmVmY2UxYTY1M2VhMzVmNzRhNjZlYzExN2NkZGEyZTA0M2E0YgpBdXRob3I6IERhdmUgTWl0Y2hlbGwgPGRtaXRjaGVsbEBhbWNjLmNvbT4KRGF0ZToJV2VkIE1heSA3IDA5OjAwOjIzIDIwMDggLTA3MDAKCiAgICBwcGM0eHg6IEZpeCB0eXBvcyBpbiA0NjBHVC9FWCBGQkRWIGFycmF5CgogICAgQ29ycmVjdGVkIHR3byB0eXBvcyBpbiB0aGUgNDYwR1QvRVggRkJEViBhcnJheS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIE1pdGNoZWxsIDxkbWl0Y2hlbGxAYW1jYy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNjZmNWZhOTI2MzYyOTI3MWVkYzg2MTc4YjFmMjI0ZTNjOWFhYjJiMwpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1heSA3IDE2OjU0OjMxIDIwMDggLTA1MDAKCiAgICA4NXh4OiBMaW1pdCBDUFUyIHdvcmthcm91bmQgdG8gcGFydHMgdGhhdCBoYXZlIHRoZSBlcnJhdGEKCiAgICBTaWduZWQtb2ZmLWJ5OiBFYm9ueSBaaHUgPGVib255LnpodUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE1ZmU1MTRlOGFjZTU2NDMwMGQyYzFkNzM4NDZkZGZmNDk2NTQyNDMKQXV0aG9yOiBMZWUgTmlwcGVyIDxsZWUubmlwcGVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBcHIgMjUgMTU6NDQ6NDUgMjAwOCAtMDUwMAoKICAgIG1wYzgzeHg6IHN5c3RlbSBwZXJmb3JtYW5jZSBzZXR0aW5ncyBmb3IgTVBDODM0OUVNRFMuCgogICAgVGhlc2Ugc2FtZSBzZXR0aW5ncyBhcmUgdXNlZCBvbiBNUEM4MzQ5SVRYLCBhbmQKICAgIGltcHJvdmUgcGVyZm9ybWFuY2Ugb24gTVBDODM0OUVNRFMuCgogICAgU2lnbmVkLW9mZi1ieTogTGVlIE5pcHBlciA8bGVlLm5pcHBlckBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0OTM4N2RiYTkxMGU0ODU2NDBiNTc1ZTkyMGVlNDYzYjdlNjExZGMzCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJVHVlIE1heSA2IDEzOjIyOjUyIDIwMDggKzA5MDAKCiAgICBbTUlQU10gY3B1L21pcHMvY2FjaGUuUzogRml4IGJ1aWxkIHdhcm5pbmcKCiAgICBTb21lIG9sZCBHTlUgYXNzZW1ibGVycywgc3VjaCBhcyB2Mi4xNCAoRUxESyAzLjEuMSksIHYyLjE2IChFTERLIDQuMS4wKSwKICAgIHdhcm5zIGlsbGVnYWwgZ2xvYmFsIHN5bWJvbCByZWZlcmVuY2VzIGJ5IGJhbCAoYW5kIGphbCBhbHNvKSBpbnN0cnVjdGlvbi4KICAgIFRoaXMgZG9lcyBub3QgaGFwcGVuIHdpdGggdGhlIGxhdGVzdCBiaW51dGlscyB2Mi4xOC4KCiAgICBIZXJlJ3MgYW4gZXhhbXBsZSBvbiBndGgyX2NvbmZpZzoKCiAgICBtaXBzXzRLQy1nY2MgIC1EX19BU1NFTUJMWV9fIC1nICAtT3MgICAtRF9fS0VSTkVMX18gLURURVhUX0JBU0U9MHg5MDAwMDAwMCAtSS9ob21lL3NrdXJpYmF5L2RldmVsL3UtYm9vdC5naXQvaW5jbHVkZSAtZm5vLWJ1aWx0aW4gLWZmcmVlc3RhbmRpbmcgLW5vc3RkaW5jIC1pc3kKICAgIHN0ZW0gL29wdC9lbGRrMzExL3Vzci9iaW4vLi4vbGliL2djYy1saWIvbWlwcy1saW51eC8zLjMuMy9pbmNsdWRlIC1waXBlICAtRENPTkZJR19NSVBTIC1EX19NSVBTX18gLUcgMCAtbWFiaWNhbGxzIC1mcGljIC1waXBlIC1tc29mdC1mbG9hdCAtbWFyY2g9NGtjIC1tdHVuZT00awogICAgYyAtRUIgLWMgLW8gY2FjaGUubyBjYWNoZS5TCiAgICBjYWNoZS5TOiBBc3NlbWJsZXIgbWVzc2FnZXM6CiAgICBjYWNoZS5TOjI0MzogV2FybmluZzogUHJldGVuZGluZyBnbG9iYWwgc3ltYm9sIHVzZWQgYXMgYnJhbmNoIHRhcmdldCBpcyBsb2NhbC4KICAgIGNhY2hlLlM6MjUwOiBXYXJuaW5nOiBQcmV0ZW5kaW5nIGdsb2JhbCBzeW1ib2wgdXNlZCBhcyBicmFuY2ggdGFyZ2V0IGlzIGxvY2FsLgoKICAgIEluIHByaW5jaXBsZSwgZ2FzIG1pZ2h0IGJlIHNlbnNpdGl2ZSB0byBnbG9iYWwgc3ltYm9sIHJlZmVyZW5jZXMgaW4gUElDCiAgICBjb2RlIGJlY2F1c2UgdGhleSBzaG91bGQgYmUgcHJvY2Vzc2VkIHRocm91Z2ggR09UIChnbG9iYWwgb2Zmc2V0IHRhYmxlKS4KICAgIEJ1dCBpZiBgYmFsJyBpbnN0cnVjdGlvbiBpcyB1c2VkLCBpdCByZXN1bHRzIGluIFBDLWJhc2VkIG9mZnNldCBqdW1wLgogICAgVGhpcyBpcyB0aGUgY2F1c2Ugb2YgdGhpcyB3YXJuaW5nLgoKICAgIEluIHByYWN0aWNlLCB3ZSBrbm93IGl0IGRvZXNuJ3QgbWF0dGVyIHdoZXRoZXIgUEMtYmFzZWQgcmVmZXJlbmNlIG9yIEdPVC0KICAgIGJhc2VkLiBBcyBmb3IgdGhpcyBjYXNlLCBib3RoIHdpbGwgd29yayBiZWZvcmUvYWZ0ZXIgcmVsb2NhdGlvbi4gQnV0IGxldCdzCiAgICBmaXggdGhlIGNvZGUuCgogICAgVGhpcyBwYXRjaCBleHBsaWNpdGx5IHNldHMgdXAgYSB0YXJnZXQgYWRkcmVzcywgdGhlbiBqdW1wIHRoZXJlLgogICAgSGVyZSdzIGFuIGV4YW1wbGUgb2YgZGlzYXNzZW1ibGVkIGNvZGUgd2l0aC93aXRob3V0IHRoaXMgcGF0Y2guCgogICAgIDkwMDAwNjY4OgkgICAgIDE0ODVmZmVmCSAgICAgYm5lICAgICBhMCxhMSw5MDAwMDYyOCA8bWlwc19jYWNoZV9yZXNldCsweDIwPgogICAgIDkwMDAwNjZjOgkgICAgIGFjODBmZmZjCSAgICAgc3cgICAgICB6ZXJvLC00KGEwKQogICAgIDkwMDAwNjcwOgkgICAgIDAxNDAyODIxCSAgICAgbW92ZSAgICBhMSx0MgogICAgLTkwMDAwNjc0OgkgICAgIDA0MTFmZmJhCSAgICAgYmFsICAgICA5MDAwMDU2MCA8bWlwc19pbml0X2ljYWNoZT4KICAgIC05MDAwMDY3ODoJICAgICAwMTgwMzAyMQkgICAgIG1vdmUgICAgYTIsdDQKICAgIC05MDAwMDY3YzoJICAgICAwMTYwMjgyMQkgICAgIG1vdmUgICAgYTEsdDMKICAgIC05MDAwMDY4MDoJICAgICAwNDExZmZjYwkgICAgIGJhbCAgICAgOTAwMDA1YjQgPG1pcHNfaW5pdF9kY2FjaGU+CiAgICAtOTAwMDA2ODQ6CSAgICAgMDFhMDMwMjEJICAgICBtb3ZlICAgIGEyLHQ1CiAgICAtOTAwMDA2ODg6CSAgICAgMDMwMDAwMDgJICAgICBqciAgICAgIHQ4CiAgICAtOTAwMDA2OGM6CSAgICAgMDAwMDAwMDAJICAgICBub3AKICAgICs5MDAwMDY3NDoJICAgICAwMTgwMzAyMQkgICAgIG1vdmUgICAgYTIsdDQKICAgICs5MDAwMDY3ODoJICAgICA4ZjhmODNlYwkgICAgIGx3ICAgICAgdDcsLTMxNzY0KGdwKQogICAgKzkwMDAwNjdjOgkgICAgIDAxZTBmODA5CSAgICAgamFsciAgICB0NwogICAgKzkwMDAwNjgwOgkgICAgIDAwMDAwMDAwCSAgICAgbm9wCiAgICArOTAwMDA2ODQ6CSAgICAgMDE2MDI4MjEJICAgICBtb3ZlICAgIGExLHQzCiAgICArOTAwMDA2ODg6CSAgICAgMDFhMDMwMjEJICAgICBtb3ZlICAgIGEyLHQ1CiAgICArOTAwMDA2OGM6CSAgICAgOGY4ZjgxZTAJICAgICBsdyAgICAgIHQ3LC0zMjI4OChncCkKICAgICs5MDAwMDY5MDoJICAgICAwMWUwZjgwOQkgICAgIGphbHIgICAgdDcKICAgICs5MDAwMDY5NDoJICAgICAwMDAwMDAwMAkgICAgIG5vcAogICAgKzkwMDAwNjk4OgkgICAgIDAzMDAwMDA4CSAgICAganIgICAgICB0OAogICAgKzkwMDAwNjljOgkgICAgIDAwMDAwMDAwCSAgICAgbm9wCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAwZjhjNjJhMTRiNTIzYzU2ODc0ZWJjYjY3YzFhMTZjOTlhYWQ0OGIzCkF1dGhvcjogVmxhZCBMdW5ndSA8dmxhZC5sdW5ndUB3aW5kcml2ZXIuY29tPgpEYXRlOglNb24gTWF5IDUgMTQ6MDQ6MDAgMjAwOCArMDMwMAoKICAgIEFsbG93IGJ1aWxkaW5nIG1pcHMgdmVyc2lvbnMgd2l0aCBFTERLIDMuMS4xCgogICAgLmdwd29yZCB3b3JrcyBvbmx5IHdpdGggbG9jYWwgc3ltYm9scyBvbiBjZXJ0YWluIGJpbnV0aWxzIHZlcnNpb25zCgogICAgU2lnbmVkLW9mZi1ieTogVmxhZCBMdW5ndSA8dmxhZC5sdW5ndUB3aW5kcnZpZXIuY29tPgoKY29tbWl0IDEyYTY3YTllNTFmNmIzZWMyNmNiMGYwNzdmYjU2ODVhNDQ3YzM1OWQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gTWF5IDUgMTI6NTI6MzYgMjAwOCArMDIwMAoKICAgIE1BS0VBTEw6IGFkZCBpbmthNHgwIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBiODNkY2MxM2FlN2IyZGFiMzk0YmZlZjZmNjk5NzUwZDExNDkwZWUyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE1heSA0IDIxOjM0OjIzIDIwMDggKzAyMDAKCiAgICBrYjkyMDIgYm9hcmQ6IGZpeCBidWlsZCBwcm9ibGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNmFkZjYxZGM0Y2I1YzUzYTJkZjk5MGNiYzhkZjJiY2VhY2JmZDg2OQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBNYXkgNCAxMjoxMDozMyAyMDA4ICswMjAwCgogICAgUHJlcGFyZSBmb3IgdjEuMy4zLXJjMwoKICAgIFVwZGF0ZSBDaE5BR0VMT0csIG1pbm9yIHdoaXRlIHNwYWNlIGNsZWFudXAuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3YzA3NzNmZGU2MTAwYjYxYmUyNTU4Y2I1ZDhjNDQyYTMxOTRhZWNiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE1heSA0IDAwOjM1OjE1IDIwMDggKzAyMDAKCiAgICBkcml2ZXJzL25ldC90c2VjLmM6IEZpeCB0eXBvLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYWE3Mzc5NDVlNmYzN2E1ZGU1ZGJhZDU1MGE3Njk0ZTBjYjJhODEyMApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJRnJpIE1heSAyIDIxOjQ1OjEyIDIwMDggLTA0MDAKCiAgICB2ZXJzaW9uX2F1dG9nZW5lcmF0ZWQuaDogdXNlIHByaW50ZiByYXRoZXIgdGhhbiBlY2hvIC1uCgogICAgU29tZSBzeXN0ZW1zIGFyZSBkdW1iIGFuZCBkbyBub3QgaW1wbGVtZW50IHRoZSAtbiBmbGFnIHRvIGVjaG8gKGxpa2UgT1MgWCkuCiAgICBDb252ZXJ0IHRoZSBNYWtlZmlsZSB0byB1c2UgcHJpbnRmIGFzIHRoaXMgc2hvdWxkIHdvcmsgZXZlcnl3aGVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDRhY2MyYTEwOGFkMGE2NjkxNjU5MjQ3MDRhNmNiMDgzZjkxMzgyNDIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CUZyaSBNYXkgMiAxODoxNzo1MCAyMDA4IC0wNDAwCgogICAgZml4IGJ1aWxkaW5nIHdoZW4gc2F2ZWVudiBpcyBkaXNhYmxlZCBpbiBzb21lIHNldHVwcwoKICAgIElmIHlvdSBlbmFibGUgZW52aXJvbm1lbnQgaW4gdGhlIGZsYXNoLCBidXQgZGlzYWJsZSB0aGUgZW1iZWRkZWQKICAgIG9wdGlvbiwgYW5kIHlvdSBkaXNhYmxlIHRoZSBzYXZlZW52IGNvbW1hbmQsIHRoZW4gdGhlICNpZiBuZXN0ZWQKICAgIGxvZ2ljIHdpbGwgdHJpZ2dlciBhIGNvbXBpbGUgZmFpbHVyZToKICAgIGVudl9mbGFzaC5jOiBJbiBmdW5jdGlvbiAnZW52X3JlbG9jYXRlX3NwZWMnOgogICAgZW52X2ZsYXNoLmM6Mzk5OiBlcnJvcjogJ2ZsYXNoX2FkZHInIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgVGhlIGZpeCBpcyB0byBhZGQgQ01EX1NBVkVFTlYgaWZkZWYgcHJvdGVjdGlvbiBsaWtlIGV2ZXJ5d2hlcmUgZWxzZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgY2NmMWFkNTM1YWUxYzBkYzJkNDY2MjM1YzY2OGFkYmRmZTNhNTViNwpBdXRob3I6IEplcmVteSBNY05pY29sbCA8amVyZW15Lm1jbmljb2xsQHdpbmRyaXZlci5jb20+CkRhdGU6CUZyaSBNYXkgMiAxNjoxMDowNCAyMDA4IC0wNDAwCgogICAgU0JDODU0ODogZml4IGFkZHJlc3MgbWFzayB0byBhbGxvdyA2NE0gZmxhc2gKCiAgICBGaXggaW5jb3JyZWN0IG1hc2sgdG8gZW5hYmxlIGFsbCA2NE1CIG9mIG9uYm9hcmQgZmxhc2guCiAgICBQcmV2aW91c2x5IFUtQm9vdCBpbmNvcnJlY3RseSBtYXBwZWQgb25seSA4TUIgb2YgZmxhc2gsIHRoaXMKICAgIHBhdGNoIGNvcnJlY3RseSBtYXBzIGFsbCB0aGUgYXZhaWxhYmxlIGZsYXNoLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplcmVteSBNY05pY29sbCA8amVyZW15Lm1jbmljb2xsQHdpbmRyaXZlci5jb20+Cgpjb21taXQgMzY0ODA4NWM0NjRjOGMyMmVmNzZmYWIwMDZjYTQzNDRkMzc5NjEyNApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBNYXkgMiAxOTo0ODo1NiAyMDA4ICswMjAwCgogICAgcWVtdV9taXBzOiBhZGQgUkVBRE1FCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA2ZmRkMDAyNjg5MTkwYTAwMjJjN2IzZGJhYjM3ZmNiYTcyNDU4MGNlCkF1dGhvcjogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgpEYXRlOglGcmkgTWF5IDIgMDI6MzU6NTkgMjAwOCArMDIwMAoKICAgIEZpeCBtaXNzcGVsbGVkIGNvbW1lbnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJjZWwgWmlzd2lsZXIgPG1hcmNlbEB6aXN3aWxlci5jb20+Cgpjb21taXQgZmE5NTZmZGU2MGI3ZWM0ZGQ2NmJkNjJmOTkxMGZkMzQxYjUwNDlhMQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IE1heSAxIDA0OjEzOjA1IDIwMDggLTA0MDAKCiAgICBta2ltYWdlOiBtYWtlIG1tYXAoKSBjaGVja3MgY29uc2lzdGVudAoKICAgIFRoZSBtbWFwKCkgcmVsYXRlZCBjb2RlIGlzIGZ1bGwgb2YgaW5jb25zaXN0ZW50IGNhc3RzL2NvbnN0YW50cyB3aGVuCiAgICBpdCBjb21lcyB0byBlcnJvciBjaGVja2luZywgYW5kIG1heSBicmVhayB3aGVuIGJ1aWxkaW5nIG9uIHNvbWUKICAgIHN5c3RlbXMgKGxpa2Ugb25lcyB0aGF0IGRvIG5vdCBpbXBsaWNpdGx5IGRlZmluZSB0aGUgY2FkZHJfdCB0eXBlKS4KICAgIExldCdzIGp1c3QgYXZvaWQgdGhlIHdob2xlIG1lc3MgYnkgd3JpdGluZyB0aGUgY29kZSBuaWNlIGFuZCBjbGVhbiBpbgogICAgdGhlIGZpcnN0IHBsYWNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA4ZTkwY2QwNDQ3YTBmMGNjZjUyOWVmODZmMGU2YjU2MTg3ZDNiODJhCkF1dGhvcjogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgpEYXRlOglUaHUgTWF5IDEgMDk6MDU6MzQgMjAwOCArMDIwMAoKICAgIEZpeCBkZWZpbmVkIGJ1dCBub3QgdXNlZCBidWlsZCB3YXJuaW5nCgogICAgLSB3YXJuaW5nOiAnc3JvbScgZGVmaW5lZCBidXQgbm90IHVzZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJjZWwgWmlzd2lsZXIgPG1hcmNlbEB6aXN3aWxlci5jb20+Cgpjb21taXQgYjcxMTkwZjMyNTBhYWZmY2M4MWMzNWY2Y2ZkMzQ5OGNiN2M0ODAxMwpBdXRob3I6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KRGF0ZToJVGh1IE1heSAxIDA5OjA1OjI2IDIwMDggKzAyMDAKCiAgICBGaXggaW1wbGljaXQgZGVjbGFyYXRpb24gYnVpbGQgd2FybmluZ3MKCiAgICAtIHdhcm5pbmc6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmHNlcmlhbF9pbml0aWFsaXpl4oCZCgogICAgU2lnbmVkLW9mZi1ieTogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgoKY29tbWl0IDlhY2RlMTI5Y2MzZjljMWIzYmMxMWE4MjE0ODBkZDQ0Njc3NGQ2MTgKQXV0aG9yOiBBbmRyZSBTY2h3YXJ6IDxhbmRyZS5zY2h3YXJ6QG1hdHJpeC12aXNpb24uZGU+CkRhdGU6CVR1ZSBBcHIgMjkgMTk6MTg6MzIgMjAwOCArMDIwMAoKICAgIFRTRUM6IGFkZCBjb25maWcgb3B0aW9ucyBmb3IgVlNDODYwMSBSR01JSSBQSFkKCiAgICBUaGUgVml0ZXNzZSBWU0M4NjAxIFJHTUlJIFBIWSBoYXMgaW50ZXJuYWwgZGVsYXkgZm9yIGJvdGggUngKICAgIGFuZCBUeCBjbG9jayBsaW5lcy4gVGhleSBhcmUgY29uZmlndXJlZCB1c2luZyAyIGJpdHMgaW4gZXh0ZW5kZWQKICAgIHJlZ2lzdGVyIDB4MTcuCiAgICBUaGVyZWZvcmUgQ0ZHX1ZTQzg2MDFfU0tFV19UWCBhbmQgQ0ZHX1ZTQzg2MDFfU0tFV19SWCBoYXZlCiAgICBiZWVuIGludHJvZHVjZWQgd2l0aCB2YWxpZCB2YWx1ZXMgMC0zIGdpdmluZyAwLjAsIDEuNCwxLjcgYW5kIDIuMG5zIGRlbGF5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJlIFNjaHdhcnogPGFuZHJlLnNjaHdhcnpAbWF0cml4LXZpc2lvbi5kZT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KICAgIC0tCgogICAgIGRyaXZlcnMvbmV0L3RzZWMuYyB8ICAgIDYgKysrKysrCiAgICAgZHJpdmVycy9uZXQvdHNlYy5oIHwgICAgMyArKysKICAgICAyIGZpbGVzIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKCmNvbW1pdCBiZDk4ZWU2MGRmNDNlZTZkZDZmNWViZTMyYzY3ZDAzZTkwNTEzZmY4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE1heSAzIDIzOjA3OjE1IDIwMDggKzAyMDAKCiAgICBSZXZlcnQgIkNvbGRGaXJlOiBHZXQgaW5mb3JtYXRpb24gZnJvbSB0aGUgY29ycmVjdCBHQ0MiCgogICAgVGhpcyByZXZlcnRzIGNvbW1pdCBiNzE2NmUwNWE1MTNjMDgwNmI2M2I5ZGZiNmYxZDc3NjQ1Y2VkZTJhCiAgICAocmVwbGFjZWQgYnkgY29tbWl0IGM0ZTVmNTJhNThkMjc4ZWViYjg3ZjQ3NmUzNTM5NzJjNWRhY2VhNDApLgoKY29tbWl0IGM0ZTVmNTJhNThkMjc4ZWViYjg3ZjQ3NmUzNTM5NzJjNWRhY2VhNDAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgTWF5IDMgMjI6MjU6MDAgMjAwOCArMDIwMAoKICAgIGNvbmZpZy5tazogdXNlIGNvcnJlY3QgKGNyb3NzKSBjb21waWxlcgoKICAgIFNvbWUgY29uZmlnLm1rIGZpbGVzIHJlZmVyZW5jZSAkKENDKSB0byB0ZXN0IGZvciBzcGVjaWZpYyB0b29sIGNoYWluCiAgICBmZWF0dXJlcywgc28gbWFrZSBzdXJlICQoQ0MpIGdldHMgc2V0IGJlZm9yZSBpbmNsdWRpbmcgYW55IHN1Y2gKICAgIGNvbmZpZyBmaWxlcy4KCiAgICBUaGlzIHBhdGNoIHJlcGxhY2VzIGNvbW1pdCBiNzE2NmUwNWE1ICgiQ29sZEZpcmU6IEdldCBpbmZvcm1hdGlvbiBmcm9tCiAgICB0aGUgY29ycmVjdCBHQ0MiKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDI3YzM4Njg5ZDBjZmRlMGU0NDQyMzkzNDVmOTdiNWVlY2M5ZjQwNjcKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUaHUgTWF5IDEgMDI6MTM6NDQgMjAwOCArMDIwMAoKICAgIHB4YTogZml4IHByZXZpb3VzIGRlZmluaXRpb24gb24gY3B1IGluaXQKCiAgICBzdGFydC5TOjE4MzoxOiB3YXJuaW5nOiAiSUNNUiIgcmVkZWZpbmVkCiAgICBJbiBmaWxlIGluY2x1ZGVkIGZyb20gc3RhcnQuUzozMzoKICAgIGluY2x1ZGUvYXNtL2FyY2gvcHhhLXJlZ3MuaDo5MzU6MTogd2FybmluZzogdGhpcyBpcyB0aGUgbG9jYXRpb24gb2YgdGhlIHByZXZpb3VzIGRlZmluaXRpb24KICAgIHN0YXJ0LlM6MTg3OjE6IHdhcm5pbmc6ICJSQ1NSIiByZWRlZmluZWQKICAgIC4uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNmQxMmU2OTdkZTc5NGQ3MDA3NjdmMjJmOTUwZTMwMjZjY2Y0ZGFmNgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVRodSBNYXkgMSAwMjoxMzo0MyAyMDA4ICswMjAwCgogICAgcHhhOiBmaXggcGNtY2lhIG9wZXJhdGlvbiBvbiAnaScgbWF5IGJlIHVuZGVmaW5lZAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDRkNzdmNTEwMmRmZWFhMzZjZDU4ZDlhOWYwODNiZDJjYzQ5MTUyNmYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgQXByIDMwIDE2OjI0OjM1IDIwMDggLTA1MDAKCiAgICBNUEM4NjEwSFBDRDogRHJvcCAtTzIgZnJvbSB0aGUgYnVpbGQgZmxhZ3MKCiAgICBNYWtlIHRoZSBmbGFncyB1c2UgLU9zIGxpa2UgYWxsIG90aGVyIGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMDA3MmI3OGJlMmI0MWU1YTBjYTNkZGMzOTMzNTU3NGRjMmU4NTViZApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAzMCAxNTo1MDozOSAyMDA4ICswMjAwCgogICAgUlRDOiBGaXggbW9udGggb2Zmc2V0IGJ5IG9uZSBwcm9ibGVtIGluIE00MVQ2MiBSVEMgZHJpdmVyCgogICAgVGhpcyBwYXRjaCBmaXhlcyBhIHByb2JsZW0gd2l0aCB0aGUgbW9udGggYmVpbmcgcmVhZCBhbmQgd3JpdHRlbgogICAgaW5jb3JyZWN0bHkgKG9mZnNldCBieSBvbmUpLiBUaGlzIG9ubHkgZ2V0cyB2aXNpYmxlIGJ5IGFsc28gdXNpbmcKICAgIHRoZSBMaW51eCBkcml2ZXIgKHJ0Yy1tNDF0ODApLgoKICAgIFRlc3RlZCBvbiBBTUNDIENhbnlvbmxhbmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxNDFiYTFjYWQ4ZTY1OThhMjQ2NmU3ZTI5NzZjNmExMjI4NWRmNjE5CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IE1heSAzIDEzOjUxOjQ0IDIwMDggKzA5MDAKCiAgICBbTUlQU10gY3B1L21pcHMvY29uZmlnLm1rOiBGaXggR05VIGFzc2VtYmxlciBtaW5vciB2ZXJzaW9uIHBpY2tlcgoKICAgIEN1cnJlbnQgdHJpY2sgdG8gcGljayB1cCBHTlUgYXNzZW1ibGVyIG1pbm9yIHZlcnNpb24gdXNlcyBhIGRvdCguKSBhcyBhCiAgICBkZWxpbWl0ZXIsIGFuZCB0YWtlIHRoZSBzZWNvbmQgZmllbGQgdG8gb2J0YWluIG1pbm9yIHZlcnNpb24gbnVtYmVyLiBCdXQKICAgIGFzIGNhbiBiZSBleHBlY3RlZCwgdGhpcyBkb2Vzbid0IHdvcmsgd2l0aCBhIHZlcnNpb24gc3RyaW5nIHdoaWNoIGhhcwogICAgZG90cyBtb3JlIHRoYW4gbmVlZHMuCgogICAgSGVyZSdzIGFuIGV4YW1wbGU6CgogICAgJCBtaXBzLWxpbnV4LWdudS1hcyAtLXZlcnNpb24gfCBncmVwICdHTlUgYXNzZW1ibGVyJwogICAgR05VIGFzc2VtYmxlciAoU291cmNlcnkgRysrIExpdGUgNC4yLTEyOSkgMi4xOC41MC4yMDA4MDIxNQogICAgJCBtaXBzLWxpbnV4LWdudS1hcyAtLXZlcnNpb24gfCBncmVwICdHTlUgYXNzZW1ibGVyJyB8IGN1dCAtZC4gLWYyCiAgICAyLTEyOSkgMgogICAgJAoKICAgIFRoaXMgcGF0Y2ggcmVzdHJpY3RzIHRoZSB2ZXJzaW9uIGZvcm1hdCB0byAyLlhYLlhYLi4uIFRoaXMgd2lsbCB3b3JrCiAgICBpbiBtb3N0IGNhc2VzLgoKICAgICQgbWlwcy1saW51eC1nbnUtYXMgLS12ZXJzaW9uIHwgZ3JlcCAnR05VIGFzc2VtYmxlcicgfCBlZ3JlcCAtbyAnMlwuWzAtOVwuXSsnCiAgICAyLjE4LjUwLjIwMDgwMjE1CiAgICAkIG1pcHMtbGludXgtZ251LWFzIC0tdmVyc2lvbiB8IGdyZXAgJ0dOVSBhc3NlbWJsZXInIHwgZWdyZXAgLW8gJzJcLlswLTlcLl0rJyB8IGN1dCAtZC4gLWYyCiAgICAxOAogICAgJAoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgZWE2Mzg5NTFhY2VhZDdmMTA4NmM5MDhjMGI5ZjA4NmJlYWI4MmEyMgpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVNhdCBNYXkgMyAxMzo1MToyOCAyMDA4ICswOTAwCgogICAgW01JUFNdIGNwdS9taXBzL2NhY2hlLlM6IEFkZCBkY2FjaGVfZW5hYmxlCgogICAgUmVjZW50IGJvb3RlbGYgY29tbWFuZCBmaXhlcyAoMDE3ZTliNzkyNWY3NDg3OGQwZTk0NzUzODhjY2E5YmRhNWVmOTQ4MiwKICAgICJhbGxvdyBwb3J0cyB0byBvdmVycmlkZSBib290ZWxmIGJlaGF2aW9yIikgcmVxdWlyZXMgcG9ydHMgdG8gaGF2ZSB0aGlzCiAgICBmdW5jdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgogICAgQWNrZWQtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZDJjNmZiZWM0Mzk3YzkzNmIxOGNkNDI0ODJiNjk3M2NkNjc4MWJkZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBNYXkgMSAyMTozMDoxNiAyMDA4ICswMjAwCgogICAgb25lbmFuZDogcmVuYW1lIDE2IGJpdCBtZW1vcnkgY29weSBpbnRvIG1lbWNweV8xNigpIHRvIGF2b2lkIGNvbmZsaWN0cwoKICAgIE9uZW5hbmQgbmVlZHMgYSB2ZXJzaW9uIG9mIG1lbWNweSgpIHdoaWNoIHBlcmZvcm1zIDE2IGJpdCBhY2Nlc3NlcwogICAgb25seTsgbWFrZSBzdXJlIHRoZSBuYW1lIGRvZXMgbm90IGNvbmZsaWN0IHdpdGggdGhlIHN0YW5kYXJkCiAgICBmdW5jdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDEyYmM0ZTk0MjUxYzM2OWM1MjlmZmE1MDVjZjU4YjE0OGMzNzJmN2YKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgQXByIDMwIDIyOjM4OjE3IDIwMDggKzAyMDAKCiAgICBjbWRfbmFuZDogZml4IHdhcm5pbmc6IHN0cjJsb25nIG5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMWI5ZWQyNTc0YTM4YzkzY2IwM2RhZDQxODg1ZmMwNmJlNGJmYzlkZApBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBcHIgNCAxMToxNjoxMSAyMDA4IC0wNTAwCgogICAgRml4IGNhbGN1bGF0aW9uIG9mIEkyQyBjbG9jayBmb3Igc29tZSA4Nnh4IGNoaXBzCgogICAgU29tZSA4Nnh4IGNoaXBzIHVzZSBDQ0IgYXMgdGhlIGJhc2UgY2xvY2sgZm9yIHRoZSBJMkMsIGFuZCBvdGhlcnMgdXNlZCBDQ0IvMi4KICAgIFRoZXJlIGlzIG5vIHBhdHRlcm4gdGhhdCBjYW4gYmUgdXNlZCB0byBkZXRlcm1pbmUgd2hpY2ggY2hpcHMgdXNlIHdoaWNoCiAgICBmcmVxdWVuY3ksIHNvIHRoZSBvbmx5IHdheSB0byBkZXRlcm1pbmUgaXMgdG8gbG9vayB1cCB0aGUgYWN0dWFsIFNPQwogICAgZGVzaWduYXRpb24gYW5kIHVzZSB0aGUgcmlnaHQgdmFsdWUgZm9yIHRoYXQgU09DLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjMyZjdmZTdiZDNhNWJkYTNhNDc2NTIwZjAwZTFhY2E3YzIxMDNhOQpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBcHIgMzAgMTI6MTE6MTkgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBGaXggZXRoZXJuZXQgaGFuZyBpc3N1ZSBmb3IgbWNmNTQ3eF84eAoKICAgIFRoZSBldGhlcm5ldCBoYW5nIGlzIGNhdXNlZCBieSByZWNlaXZpbmcgYnVmZmVyIGluIERSQU0gaXMgbm90CiAgICB5ZXQgcmVhZHkgZHVlIHRvIGFjY2VzcyBjeWNsZXMgcmVxdWlyZSBsb25nZXIgdGltZSBpbiBEUkFNLgogICAgUmVsb2NhdGUgRE1BIGJ1ZmZlciBkZXNjcmlwdG9ycyBmcm9tIERSQU0gdG8gaW50ZXJuYWwgU1JBTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg4NmQ5MDE3NmZjMjU3ZTBhYjRkMGRiMDVkMTFkMDc0OWJiZWQzY2EKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXByIDMwIDEyOjEwOjQ3IDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogRml4IGNvbXBpbGF0aW9uIGlzc3VlIGNhdXNlZCBieSBuZXcgY2hhbmdlcyBpbiBmc2xfaTJjLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBMdWlnaSBDb21pbyBNYW50ZWxsaW5pIDxsdWlnaS5tYW50ZWxsaW5pQGlkZi1oaXQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNzE2NmUwNWE1MTNjMDgwNmI2M2I5ZGZiNmYxZDc3NjQ1Y2VkZTJhCkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEFwciAzMCAxMjoxMDoyMyAyMDA4IC0wNTAwCgogICAgQ29sZEZpcmU6IEdldCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBjb3JyZWN0IEdDQwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1cnQgTWFoYW4gPGttYWhhbkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzNzhlN2VjOTVkYTQ3NTFlYzhmZTQ2MWJhYWNhYjJiZjdkMjUxMmE5CkF1dGhvcjogZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KRGF0ZToJV2VkIEFwciAzMCAxODowMjo1OSAyMDA4ICswMjAwCgogICAgRml4IHdhcm5pbmcgaW4gZW52X25hbmQuYyBpZiBjb21waWxlZCBmb3IgRGFWaW5jaSBTY2htb29naWUKCiAgICBGaXggd2FybmluZ3MKCiAgICBudl9uYW5kLmM6IEluIGZ1bmN0aW9uICdzYXZlZW52JzoKICAgIGVudl9uYW5kLmM6MjAwOiB3YXJuaW5nOiBwYXNzaW5nIGFyZ3VtZW50IDMgb2YgJ25hbmRfd3JpdGUnIGZyb20gaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZQogICAgZW52X25hbmQuYzogSW4gZnVuY3Rpb24gJ2Vudl9yZWxvY2F0ZV9zcGVjJzoKICAgIGVudl9uYW5kLmM6Mjc1OiB3YXJuaW5nOiBwYXNzaW5nIGFyZ3VtZW50IDMgb2YgJ25hbmRfcmVhZCcgZnJvbSBpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBlCgogICAgaWYgY29tcGlsZWQgZm9yIGRhdmluY2lfc2NobW9vZ2llX2NvbmZpZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdtYWlsLmNvbT4KICAgIEFjayBieTogU2VyZ2V5IEt1YnVzaHluIDxrc2lAa29pOC5uZXQ+Cgpjb21taXQgMzNhNGE3MGQ0OGQ2MjJjYzQ5NTBjNjBhODRmZWMyM2I5NDIxZjIzZQpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAzMCAxMzozNDo0MCAyMDA4ICswMjAwCgogICAgRml4IHdhcm5pbmdzIHdoaWxlIGNvbXBpbGluZyBuZXQvbmV0LmMgZm9yIE1QQzg2MTBIUENEIGJvYXJkCgogICAgTVBDODYxMEhQQ0QgYm9hcmQgYWRkcyAtTzIgZ2NjIG9wdGlvbiB0byBQTEFURk9STV9DUFBGTEFHUwogICAgY2F1c2luZyBvdmVycmlkaW5nIGRlZmF1bHQgLU9zIG9wdGlvbi4gTmV3IGdjYyAodmVyLiA0LjIuMikKICAgIHByb2R1Y2VzIHdhcm5pbmdzIHdoaWxlIGNvbXBpbGluZyBuZXQvbmV0LmMgZmlsZSB3aXRoIC1PMgogICAgb3B0aW9uLiBUaGUgcGF0Y2ggaXMgYW4gYXR0ZW1wdCB0byBmaXggdGhpcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgNThiNTc1ZTU3NWMyNWZkZjhjODgxNDFlMTQ1ZGIyMDFmMzA5MjE0OQpBdXRob3I6IFNhc2NoYSBMYXVlIDxTYXNjaGEuTGF1ZUBnbXguYml6PgpEYXRlOglXZWQgQXByIDMwIDE1OjIzOjM4IDIwMDggKzAyMDAKCiAgICBsd21vbjU6IGZpeCBvZmZzZXQgZXJyb3IgaW4gc3lzbW9uMCBQT1NUCgogICAgU2lnbmVkLW9mZi1ieTogU2FzY2hhIExhdWUgPHNhc2NoYS5sYXVlQGxpZWJoZXJyLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZTc0MTliMjQzYTM3M2RlNGVlMDQyZjdkNGY0NWY2NmRlNzg3MjQwZApBdXRob3I6IFNhc2NoYSBMYXVlIDxTYXNjaGEuTGF1ZUBnbXguYml6PgpEYXRlOglXZWQgQXByIDMwIDE1OjE2OjM1IDIwMDggKzAyMDAKCiAgICBsd21vbjU6IGZpeCBtYW51YWwgbWVyZ2UgZXJyb3IgaW4gUE9TVAoKICAgIFNpZ25lZC1vZmYtYnk6IFNhc2NoYSBMYXVlIDxzYXNjaGEubGF1ZUBsaWViaGVyci5jb20+Cgpjb21taXQgNDJmZmNlYzNmOWViYTAxMGE2NjJkNWI0Mjk4MTgxMmI2YmViZmI5YQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMzAgMTc6NDY6MjYgMjAwOCArMDIwMAoKICAgIGNtZF9uYW5kLmM6IGZpeCBhbm90aGVyICdpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBlJyB3YXJuaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZGUxMDlkOTA5NzA3ZTJkZmU4MDZiZTVlZmMzY2RiMTAzYjQ3YzhhZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMzAgMTc6MjU6MDcgMjAwOCArMDIwMAoKICAgIE1ha2VmaWxlOiBmaXggcGFyYWxsZWwgYnVpbGRzCgogICAgVGhpcyBwcm9ibGVtIHNob3dzIHVwIHdpdGggcGFyYWxsZWwgYnVpbGRzIG9ubHk7IGl0IHJlc3VsdHMgaW4KICAgIHNvbWV3aGF0IGNyeXB0aWMgZXJyb3IgbWVzc2FnZXMgbGlrZQoKCSQgSk9CUz0tajYgTUFLRUFMTCBuZXRzdGFyCglDb25maWd1cmluZyBmb3IgbmV0c3RhciBib2FyZC4uLgoJYXJtLWxpbnV4LWxkOiBjYW5ub3QgZmluZCAtbGdlbmVyaWMKCW1ha2VbMV06ICoqKiBbZWVwcm9tLnNyZWNdIEVycm9yIDEKCiAgICBBIGZldyBib2FyZHMgKGxpa2UgbmV0c3RhciBhbmQgdm9pY2VibHVlKSBuZWVkIHNvbWUgbGlicmFyaWVzIGZvcgogICAgYnVpbGRpbmc7IGhvd2V2ZXIsIHRoZSBib2FyZCBNYWtlZmlsZSBkb2VzIG5vdCBjb250YWluIGFueSBzdWNoCiAgICBkZXBlbmRlbmNpZXMgd2hpY2ggbWF5IGNhdXNlIHByb2JsZW1zIHdpdGggcGFyYWxsZWwgYnVpbGRzLiBBZGRpbmcKICAgIHN1Y2ggZGVwZW5kZW5jaWVzIGlzIGRpZmZpY3VsdCBhcyB3ZSB3b3VsZCBhbHNvIGhhdmUgdG8gcHJvdmlkZSBidWlsZAogICAgcnVsZXMsIHdoaWNoIGFscmVhZHkgZXhpc3QgaW4gdGhlIHJlc3BlY3RpdmUgbGlicmFyeSBNYWtlZmlsZXMuCgogICAgVG8gc29sdmUgdGhpcywgd2UgbWFrZSBzdXJlIHRoYXQgYWxsIGxpYnJhcmllcyBnZXQgYnVpbHQgYmVmb3JlIHRoZQogICAgYm9hcmQgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDRmMjcwOThlNWIwNzM2OTg5YjEzY2Q2MWQ3YmNhOTRiMzU3NGNmNWYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMzAgMTQ6NTE6MzYgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQWRhcHQgQ2FueW9ubGFuZHMgZml4ZWQgRERSMiBzZXR1cCB0byBuZXcgRElNTSBtb2R1bGUKCiAgICBUaGlzIHBhdGNoIGNoYW5nZXMgdGhlIENhbnlvbmxhbmRzL0dsYWNpZXIgZml4ZWQgRERSMiBjb250cm9sbGVyIHNldHVwCiAgICB1c2VkIGZvciBOQU5EIGJvb3RpbmcgdG8gbWF0Y2ggdGhlIHZhbHVlcyBuZWVkZWQgZm9yIHRoZSBuZXcgNTEyTUIKICAgIERJTU0gbW9kdWxlcyBzaGlwcGVkIHdpdGggdGhlIHByb2R1Y3Rpb25zIGJvYXJkczoKCiAgICBDcnVjaWFsOiBDVDY0NjRBQzY2Ny44RkIKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWE5MjAyYTY1OWRjNzU5OTZmYWNmMTQ3NWYxODY2YTE5YTlkMzEyOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAzMCAxMDo0OTo0MyAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggcHJvYmxlbSB3aXRoIERJTU1zIHdpdGggOCBiYW5rcyBpbiA0NHhfc3BkX2RkcjIuYwoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBwcm9ibGVtIHdpdGggRElNTXMgdGhhdCBoYXZlIDggYmFua3MuIE5vdyB0aGUKICAgIE1DSUYwX01CeENGIHJlZ2lzdGVyIHdpbGwgYmUgc2V0dXAgY29ycmVjdGx5IGZvciB0aGlzIHNldHVwIHRvby4KCiAgICBUaGlzIHdhcyBub3RpY2VkIHdpdGggdGhlIDUxMk1CIERJTU0gb24gQ2FueW9ubGFuZHMvR2xhY2llci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzY2MTcyOTkzNThlYmJhMjYwZWNjMDJkMzNlOGU3NWQ4ZDEzZGQzYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMjkgMjM6NDE6MDYgMjAwOCArMDIwMAoKICAgIFByZXBhcmUgdjEuMy4zLXJjMiwgYWdhaW4uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBiN2ZjYzRjMTM5OTM3ODIzNDJjZjVjZDIwZDIzN2E2MjgxNjQ4YTBiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEFwciAyOSAyMzozNToyNCAyMDA4ICswMjAwCgogICAgUHJlcGFyZSB2MS4zLjMtcmMyCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmN2IxNmEwYTRkNTcxZGQzM2IyYjUxODVhNTRmN2RkYzMxMWY4OWQ0CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEFwciAyOSAyMzozMjoyMCAyMDA4ICswMjAwCgogICAgY29tbW9uL2Vudl9uYW5kLmM6IGZpeCBvbmUgbW9yZSBpbmNvbXBhdGlibGUgcG9pbnRlciB0eXBlIGlzc3VlCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlYTZmNjY4OTRmOTUyMjI5ZWViZmM0YWQwM2NkMjFmZTVjOGIzZjBmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEFwciAyOSAyMTozMzowOCAyMDA4ICswMjAwCgogICAgcG9zdC9ib2FyZC9sd21vbjUvc3lzbW9uLmM6IGZpeCBtYW51YWwgbWVyZ2UgZXJyb3IuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3MGEwZjgxNDEyYjBiMThhNmZkMGJlYTk2MDQ1MWJjNmMyY2NhNDlhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEFwciAyOSAxMjo1NDo1OSAyMDA4IC0wNTAwCgogICAgODV4eDogQWRkIC1tbm8tc3BlIHRvIGU1MDAvODV4eCBidWlsZHMKCiAgICBOZXdlciBnY2MncyBtaWdodCBiZSBjb25maWd1cmVkIHRvIGVuYWJsZSBhdXRvdmVjdG9yaXphdGlvbiBieSBkZWZhdWx0LgogICAgSWYgd2UgaGFwcGVuIHRvIGJ1aWxkIHdpdGggb25lIG9mIHRob3NlIGNvbXBpbGVycyB3ZSB3aWxsIGdldCBTUEUKICAgIGluc3RydWN0aW9ucyBpbiByYW5kb20gY29kZS4KCiAgICAtbW5vLXNwZSBkaXNhYmxlcyB0aGUgY29tcGlsZXIgZm9yIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGluZyBTUEUKICAgIGluc3RydWN0aW9ucyB3aXRob3V0IG91ciBrbm93bGVkZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA4ZWEwOGU1YmU2OTQzNmFiY2M5NWQzZGExMTRkZTRhMmZmOGE2YWI1CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEFwciAyOSAxMDoxODozNCAyMDA4IC0wNTAwCgogICAgVXBkYXRlIC5naXRpZ25vcmUgZm9yIHpsaWIuaAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNDUyMzljZjQxNTIxMDljYWE5MjUxNDVjY2Q0MzM1Mjk5MDJkZjg4NwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBBcHIgMjkgMTA6Mjc6MDggMjAwOCAtMDUwMAoKICAgIDg1eHgvODZ4eDogUmVuYW1lIGV4dF9yZWZyZWMgdG8gdGltaW5nX2NmZ18zIHRvIG1hdGNoIGRvY3MKCiAgICBBbGwgdGhlIDg1eHggYW5kIDg2eHggVU0gZGVzY3JpYmUgdGhlIHJlZ2lzdGVyIGFzIHRpbWluZ19jZmdfMwogICAgbm90IGFzIGV4dF9yZWZyZWMuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBlZjdkMzBiMTQzOTRlNGM0YTE1MzExOGY1ODQ1NzYwY2FkYWRhMDJhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEFwciAyOSAxMDoyODozNCAyMDA4IC0wNTAwCgogICAgODV4eC84Nnh4OiBSZW5hbWUgRERSIGluaXQgYWRkcmVzcyBhbmQgaW5pdCBleHRlbmRlZCBhZGRyZXNzIHJlZ2lzdGVyCgogICAgUmVuYW1lIGluaXRfYWRkciBhbmQgaW5pdF9leHRfYWRkciB0byBtYXRjaCB0aGUgZG9jcyBiZXR3ZWVuCiAgICA4NXh4IGFuZCA4Nnh4LiAgQm90aCBub3cgdXNlICdpbml0X2FkZHInIGFuZCAnaW5pdF9leHRfYWRkcicuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBjZjZjYzAxNDI3MDU0OTY4NDg3M2E1OTcyZDI1OTUwNTJjNDY4Y2I2CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIEFwciAyOCAwMjoyNDowNCAyMDA4IC0wNTAwCgogICAgODV4eDogQWRkaXRpb25hbCBmaXhlcyBhbmQgY2xlYW51cCBvZiBNUCBjb2RlCgogICAgKiBhZGp1c3QgX19zcGluX3RhYmxlIGFsaWdubWVudCB0byBtYXRjaCBlUEFQUiB2MC45NCBzcGVjCiAgICAqIGxvb3Agb3ZlciBhbGwgY3B1cyB3aGVuIGRldGVybWluZyB3aG8gaXMgdXAuICBUaGlzIGZpeGVzIGFuIGlzc3VlIGlmCiAgICAgIHRoZSAiYm9vdCBjcHUiIGlzbid0IGNvcmUwLiAgVGhlICJib290IGNwdSIgd2lsbCBhbHJlYWR5IGJlIGluIHRoZQogICAgICBjcHVfdXBfbWFzayBzbyB0aGVyZSBpcyBubyBoYXJtCiAgICAqIEFkZGVkIHNvbWUgcHJvdGVjdGlvbiBpbiB0aGUgY29kZSB0byBlbnN1cmUgcHJvcGVyIGJlaGF2aW9yLiAgVGhlc2UKICAgICAgY2hhbmdlcyBhcmUgZXhwbGljaXRseSBuZWVkZWQgYnV0IGRvbid0IGh1cnQ6CiAgICAgIC0gQWRkZWQgZWllaW8gdG8gZW5zdXJlIHRoZSAiaG90IHdvcmQiIG9mIHRoZSB0YWJsZSBpcyB3cml0dGVuIGFmdGVyCglhbGwgb3RoZXIgdGFibGUgdXBkYXRlcyBoYXZlIG9jY3VycmVkLgogICAgICAtIEFkZGVkIGlzeW5jIHRvIGVuc3VyZSB3ZSBkb24ndCBwcmVmZXRjaCBsb2FkaW5nIG9mIHRhYmxlIGVudHJpZXMKCXVudGlsIHdlIGEgcmVsZWFzZWQKCiAgICBUaGVzZSBpc3N1ZXMgd2UgcmFpc2VkIGJ5IERhdmUgTGl1LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYjJkNTI3YThiOWZiNTBhZmNjYmFmNzliNTU0MDk1MjU4NWNkYzc2MApBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJVHVlIEFwciAyOSAxNTowNjo0MSAyMDA4ICswMjAwCgogICAgbHdtb241OiBtaW5vciBjbGVhbi11cCB0byBpbmNsdWRlL2NvbmZpZ3MvbHdtb241LmgKCiAgICBMV01PTjUgRFNQSUMgUE9TVCB1c2VzIHRoZSB3YXRjaC1kb2cgc2NyYXRjaCByZWdpc3Rlci4gU28sIG1ha2UKICAgIHRoZSBDRkdfRFNQSUNfVEVTVF9BRERSIGRlZmluaXRpb24gbW9yZSByZWFkYWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgZjRjNGQyMWE4ODVjY2MyMjJmZDBhY2RmNjUzYjY4MzI0OWU4NTExNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEFwciAyOSAxNjowODowNSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggQ0ZHX01PTklUT1JfTEVOIG9uIEthdG1haSBmYWlsc2F2ZSB0aGlzIHRpbWUKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTM4MTA1ZWZlMWQyYjFhNDBhM2E5N2I0YzFmODVjMjExMWJlYTJkOApBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJVHVlIEFwciAyOSAxMzozMjo0NSAyMDA4ICswMjAwCgogICAgcHBjIGZsdXNoX2NhY2hlOiBhZGQgd2F0Y2gtZG9nIHRyaWdnZXJpbmcgaW50byB0aGUgbG9vcHMuCgogICAgU29tZSBib2FyZHMgKGUuZy4gbHdtb241KSBuZWVkIHJhdGhlciBhIGZyZXF1ZW50IHdhdGNoLWRvZwogICAga2lja2luZy4gU2luY2UgdGhlIHRpbWUgaXQgdGFrZXMgZm9yIHRoZSBmbHVzaF9jYWNoZSgpIGZ1bmN0aW9uCiAgICB0byBjb21wbGV0ZSBpdHMgam9iIGRlcGVuZHMgb24gdGhlIHNpemUgb2YgZGF0YSBiZWluZyBmbHVzaGVkLCBvbmUKICAgIG1heSBlbmNvdW50ZXIgd2F0Y2gtZG9nIHJlc2V0cyBvbiBzdWNoIGJvYXJkcyB3aGVuLCBmb3IgZXhhbXBsZSwKICAgIGRvd25sb2FkIGJpZyBmaWxlcyBvdmVyIGV0aGVybmV0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCBjYWI5OWQ2ZjMyODFhYjY3ODRmZWNjZjk4YjliNDI1ZGFhNTg0MThhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXByIDI5IDE0OjQ0OjU0IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBjb21waWxhdGlvbiB3YXJuaW5nIGluIGRlbmFsaV9zcGRfZGRyMi5jCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDRlYzlkNzhmZTVjZDU4NWQyODY4NzMxZmExMDhjYTFlNjI3MzBlNzAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMjkgMTQ6MTI6MDcgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRml4IEthdG1haSBDRkdfTU9OSVRPUl9MRU4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODVhZDE4NGIzYjJiMGY4YWY5MjI4NDc3MzAzYzU1ZGNhMWI1MmVkNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEFwciAyOSAxMzo1NzowNyAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBDb21wbGV0ZSByZW1vdmUgYm9ndXMgZGZsdXNoKCkKCiAgICBTaW5jZSB0aGUgY3VycmVudCBkZmx1c2goKSBpbXBsZW1lbnRhdGlvbiBpcyBrbm93IHRvIGhhdmUgc29tZSBwcm9ibGVtcwogICAgKGFzIHNlZW0gb24gbHdtb241IEVDQyBpbml0KSB0aGlzIHBhdGNoIHJlbW92ZXMgaXQgY29tcGxldGVseSBhbmQgcmVwbGFjZXMKICAgIGl0IGJ5IHVzaW5nIGNsZWFuX2RjYWNoZV9yYW5nZSgpLgoKICAgIFRlc3RlZCBvbiBLYXRtYWkgd2l0aCBFQ0MgRElNTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTM1ODQ2ZDZlY2FhZDI1NWFkMjhkOTNlYmJiNzhiM2Q1ZGE2OGNkYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEFwciAyOSAxMzozNjo1MSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBDaGFuZ2UgRUNDIGluaXRpYWxpemF0aW9uIG9uIGx3bW9uNSB0byB1c2UgY2xlYW5fZGNhY2hlX3JhbmdlKCkKCiAgICBBcyBpdCBzZWVtcyB0aGUgIm9sZCIgRUNDIGluaXRpYWxpemF0aW9uIHJvdXRpbmUgYnkgdXNpbmcgZGZsdXNoKCkgZGlkbid0CiAgICB3cml0ZSBhbGwgbGluZXMgaW4gdGhlIGRjYWNoZSBiYWNrIHRvIG1lbW9yeSBvbiBsd21vbjUuIFRoaXMgY291bGQgbGVhZAogICAgdG8gRUNDIGVycm9yIHVwb24gTGludXggYm9vdGluZy4gVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBwcm9ncmFtX2VjYygpCiAgICByb3V0aW5lIHRvIG5vdyB1c2UgY2xlYW5fZGNhY2hlX3JhbmdlKCkgaW5zdGVhZCBvZiBkZmx1c2goKS4KICAgIGNsZWFuX2RjYWNoZV9yYW5nZSgpIHVzZXMgZGNic3Qgd2hpY2ggaXMgZXhhY3RseSB3aGF0IHdlIHdhbnQgaW4gdGhpcwogICAgY2FzZS4KCiAgICBTaW5jZSBkZmx1c2goKSBpcyBrbm93biBpcyBjYXVzZSBwcm9ibGVtcywgdGhpcyByb3V0aW5lIHdpbGwgYmUKICAgIHJlbW92ZWQgY29tcGxldGVseSBhbmQgcmVwbGFjZWQgYnkgY2xlYW5fZGNhY2hlX3JhbmdlKCkgd2l0aCBhbgogICAgYWRkaXRpb25hbCBwYXRjaC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMThlYzE5ZTRhYTFhMDQ1ZGZiZjJjN2MyZTMzOTYzNDg4ZTkyZDc1NwpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJTW9uIEFwciAyOCAxODoxOTozNCAyMDA4ICswMjAwCgogICAgUE9TVDogZml4IE1ha2VmaWxlcyBmb3IgbXBjOHh4LCBsd21vbiwgYW5kIG5ldHRhIFBPU1RzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCBlZWE1YTc0M2EyMTkzZWYyYTA1YjliYzZkYzQ0N2JhMjQxNDE2ZjM1CkF1dGhvcjogTWFya3VzIEJydW5uZXIgPHN1cGVyLmZpcmV0d2lzdGVyQGdvb2dsZW1haWwuY29tPgpEYXRlOglNb24gQXByIDI4IDA4OjQ3OjQ3IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeHVwIGViYyBjbG9jayBpbiBGRFQgZm9yIDQwNUdQL0VQCgogICAgT24gcHBjNDA1RVAgYW5kIHBwYzQwNUdQIChhdCBsZWFzdCkgdGhlIGViYyBpcyBkaXJlY3RseSBhdHRhY2hlZCB0byB0aGUgcGxiCiAgICBhbmQgbm90IHRvIHRoZSBvcGIuIFRoaXMgcGF0Y2ggd2lsbCB0cnkgdG8gZml4dXAgL3BsYi9lYmMgaWYgL3BsYi9vcGIvZWJjCiAgICBkb2Vzbid0IGV4aXN0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBCcnVubmVyIDxzdXBlci5maXJldHdpc3RlckBnbWFpbC5jb20+Cgpjb21taXQgMmVmNzUwM2E1OTNjNzdhODBjMmEwNTQwMTE5NzAyMjdjNGI2Mjc3NApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVRodSBBcHIgMjQgMDc6NTc6MTcgMjAwOCArMDIwMAoKICAgIE5FMjAwMDogRml4IHJlZ3Jlc3NzaW9uIGludHJvZHVjZWQgYnkgZTcxMDE4NWFhZTkwIG9uIG5vbiBBWDg4Nzk2CgogICAgTW92ZSBub24taW5saWVkIGZ1bmN0aW9ucyBpbnRvIHNwZWNpZmljIGRyaXZlcnMgZmlsZQogICAgU2V0IGdldF9wcm9tIGFzIHdlYWsKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDQwY2I5MGVlMmI5N2RiMWY2OTdlMWI1NGYxOWE1NDhmZmM5NmQ3MWIKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVRodSBBcHIgMyAxNzowNDoxOSAyMDA4ICswMjAwCgogICAgbmV0OiBtYWtlIEFSUCB0aW1lb3V0IGNvbmZpZ3VyYWJsZQoKICAgIEN1cnJlbnRseSB0aGUgdGltZW91dCB3YWl0aW5nIGZvciBhbiBBUlAgcmVwbHkgaXMgaGFyZCBzZXQgdG8gNSBzZWNvbmRzLgogICAgT24gaS5NWDMxQURTIGR1ZSB0byBhIGhhcmR3YXJlICJzdHJhbmdlbmVzcyIgdXAgdG8gZm91ciBmaXJzdCBJUCBwYWNrZXRzCiAgICB0byB0aGUgYm9hcmRzIGdldCBsb3N0LCB3aGljaCB0eXBpY2FsbHkgYXJlIEFSUCByZXBsaWVzLiBCeSBjb25maWd1cmluZwogICAgdGhlIHRpbWVvdXQgdG8gYSBsb3dlciB2YWx1ZSB3ZSBzaWduaWZpY2FudGx5IGltcHJvdmUgdGhlIGZpcnN0IG5ldHdvcmsKICAgIHRyYW5zZmVyIHRpbWUgb24gdGhpcyBib2FyZC4gVGhlIHRpbWVvdXQgaXMgc3BlY2lmaWVkIGluIG1pbGxpc2Vjb25kcywKICAgIGxhdGVyIGludGVybmFsbHkgaXQgaXMgY29udmVydGVkIHRvIGRlY2lzZWNvbmRzLCBiZWNhdXNlIGl0IGhhcyB0byBiZQogICAgY29udmVydGVkIHRvIGhhcmR3YXJlIHRpY2tzLCBhbmQgQ0ZHX0haIHJhbmdlcyBmcm9tIDkwMCB0byAyNzAwMDAwMCBvbgogICAgZGlmZmVyZW50IGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDEzZTBiOGY3Y2E5ZDI5MjY3YmYwMWQ3YTAxZTUyMWEwNTE3YWRjZTEKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVRodSBBcHIgMyAxMzozNjoxOCAyMDA4ICswMjAwCgogICAgbWlub3IgY3M4OTAwIGRyaXZlciBjbGVhbiB1cAoKICAgIFJlbW92ZSBhIHJlZHVuZGFudCByZWdpc3RlciBkZWZpbml0aW9uLCBjbGVhbiB1cCBzb21lIGNvZGluZyBzdHlsZQogICAgdmlvbGF0aW9ucy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDcwN2ZhOTE3Y2NhMjRjMGYyMjc3NmY0OGFjNGE2ZmE1ZTUxODliMTAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gQXByIDI4IDIyOjAxOjA0IDIwMDggKzAyMDAKCiAgICBqZmZzMl8xcGFzcy5jOiBmaXggaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZSB3YXJuaW5nCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2YWVlMDBmNWU2YTFjZjI5ZDhmZThmZGM5YjcyNTJmYmQzMTExNWQ5CkF1dGhvcjogU2FzY2hhIExhdWUgPFNhc2NoYS5MYXVlQGdteC5iaXo+CkRhdGU6CVR1ZSBBcHIgMSAxMDoxMDoxOCAyMDA4ICswMjAwCgogICAgbHdtb241OiB1cGRhdGUgZHNQSUMgUE9TVCBzcGV6aWZpY2F0aW9uCgogICAgVGhlIHNwZWNpZmljYXRpb24gZm9yIHRoZSBsd21vbjUgYm9hcmQgZHNQSUMgUE9TVCBnb3QgY2hhbmdlZC4KICAgIEFsc28gYWRkIGRlZmluZXMgZm9yIHRoZSB0ZW1wZXJhdHVyZXMgIGFuZCB2b2x0YWdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTYXNjaGEgTGF1ZSA8c2FzY2hhLmxhdWVAbGllYmhlcnIuY29tPgoKY29tbWl0IDNlNDYxNWFiN2ZmMzg3ODFhNWRkODBkMGY0OWI5YWY1NWI0ZmUwYjcKQXV0aG9yOiBTYXNjaGEgTGF1ZSA8U2FzY2hhLkxhdWVAZ214LmJpej4KRGF0ZToJVHVlIEFwciAxIDE1OjEzOjAzIDIwMDggKzAyMDAKCiAgICBGaXggd2F0Y2hkb2cgUE9TVCBmb3IgbHdtb241CgogICAgSWYgdGhlIGhhcmR3YXJlIHdhdGNoZG9nIGRldGVjdHMgYSB2b2x0YWdlIGVycm9yLCB0aGUgd2F0Y2hkb2cgc2V0cwogICAgR1BJTzYyIHRvIGxvdy4gVGhlIHdhdGNoZG9nIFBPU1QgaGFzIHRvIGRldGVjdCB0aGlzIGxvdyBsZXZlbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTYXNjaGEgTGF1ZSA8bGVnbGFzMEBsZWdwYzE4MC5sZWcubGllYmhlcnIuaT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZGQ1NzQ4YmNkNjY5ZjQ2YWViNjY4NmMxYjM0MTMyMzg0MzczOGNjYwpBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8Zy5saWFraG92ZXRza2lAZ214LmRlPgpEYXRlOglNb24gQXByIDI4IDE0OjM3OjE0IDIwMDggKzAyMDAKCiAgICBydGw4MTY5OiBmaXggY29tcGlsZXIgd2FybmluZ3MKCiAgICBGaXggbXVsdGlwbGUgY29tcGlsZXIgd2FybmluZ3MgcmVsYXRlZCB0byBhcmd1bWVudCB0eXBlIG1pc21hdGNoLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8Zy5saWFraG92ZXRza2lAZ214LmRlPgoKY29tbWl0IDQxM2JmNTg2MjY2Zjg2YzZiZGJjNmM2ZDE0MGY2N2ExNWFmNGM0ZjEKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGcubGlha2hvdmV0c2tpQGdteC5kZT4KRGF0ZToJTW9uIEFwciAyOCAxNDozNjowNiAyMDA4ICswMjAwCgogICAgSURFOiBmaXggY29tcGlsZXIgd2FybmluZ3MKCiAgICBUaGUgSURFIGRyaXZlciBjYW4gdXNlIDMyLWJpdCBhZGRyZXNzZXMgaW4gTEJBIG1vZGUsIGluIHdoaWNoIGNhc2UgaXQKICAgIHNwaXRzIG11bHRpcGxlIHdhcm5pbmdzIGR1cmluZyBjb21waWxhdGlvbi4gRml4IHRoZW0uCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxnLmxpYWtob3ZldHNraUBnbXguZGU+Cgpjb21taXQgZGI5MDg0ZGUyOGM0NmFjODFjOGY2ODE3MjJjYjBkNzQxMWJlNGQ3ZgpBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8Zy5saWFraG92ZXRza2lAZ214LmRlPgpEYXRlOglNb24gQXByIDI4IDE0OjM1OjU3IDIwMDggKzAyMDAKCiAgICBMaW5rU3RhdGlvbjogZml4IGNvbXBpbGVyIHdhcm5pbmcsIGFkZCBhIG1haW50YWluZXIKCiAgICBvdXRfOCB3YW50cyBhIHBvaW50ZXIgdG8gYW4gdW5zaWduZWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50LiBBZGQgYQogICAgbWFpbnRhaW5lciBmb3IgTGlua3N0YXRpb24gYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8Zy5saWFraG92ZXRza2lAZ214LmRlPgoKY29tbWl0IGM3MWFiYmEzY2I2N2IwNjNmNzg5ZjE3YWJmNmM3NDQ3NzI3YzBjZDUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gQXByIDI4IDE0OjU1OjEyIDIwMDggKzAyMDAKCiAgICBjbWRfbmFuZC5jOiBmaXggImRpZmZlciBpbiBzaWduZWRuZXNzIiBwcm9ibGVtCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmMmMyODhhMzUzNDFhZDAyYWMwM2IxNTYzZDc4Njc2M2M5YzhmMTU5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIEFwciAyOCAxMjo0ODo0NyAyMDA4ICswMjAwCgogICAgcGNuZXQuYzogZml4IGEgbWVyZ2UgaXNzdWUKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDRjYTc5ZjQ3N2ViZDI1YTY4NzJlNjE5NmQ4MGUyZjVlZmY0NDEzNzYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gQXByIDI4IDEyOjA4OjE4IDIwMDggKzAyMDAKCiAgICBOQU5EOiBmaXggc29tZSBzdHJpY3QtYWxpYXNpbmcgY29tcGlsZXIgd2FybmluZ3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDVjZDAxMzBlY2M3OWQ2ZGNkZTFiMWFjMjUzYWJjNDU3Y2E4YzMxMTUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBBcHIgMjggMTE6Mzc6MTQgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogRml4IGNvbXBpbGUgd2FybmluZyBvZiBoY3U0IGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDUzNzljZDE1ZGQ2Yzc0YWM1MTQ5OWJjZTM0NTViZjZlMGNkYmU5ZjEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gQXByIDI4IDExOjMxOjIzIDIwMDggKzAyMDAKCiAgICBNUEM4MzIzRVJEQjogZml4IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdtYWNfcmVhZF9mcm9tX2VlcHJvbScKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDc2MDJlZDUwYTJmMGVmM2RjOGQ3ZGE5M2YxMTZkZTUwMjg4ZjViNTkKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CU1vbiBBcHIgMjggMDA6MjU6MzIgMjAwOCArMDIwMAoKICAgIG14MzFhZHM6IGZpeCBsb2FkYWRkciBlbnZpcm9ubWVudCB2YXJpYWJsZSBkZWZpbmUKCiAgICBBcml0aG1ldGljIGV4cHJlc3Npb25zIGRvIG5vdCBnZXQgZXZhbHVhdGVkIHVuZGVyIHN0cmluZ2lmaWNhdGlvbi4gUmVtb3ZlCiAgICBkZWZhdWx0IG5ldHdvcmsgY29uZmlndXJhdGlvbiwgYWRkIERIQ1AgY29tbWFuZCBzdXBwb3J0LiBUaGFua3MgdG8gRmVsaXgKICAgIFJhZGVuc2t5IGZvciByZXBvcnRpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDE0NGVlYzc3N2FjMDdiY2IxMmJkMzgyNDVhNWEyODlmNjk0YTdmOTgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gQXByIDI4IDEwOjU1OjI0IDIwMDggKzAyMDAKCiAgICBrYXRtYWk6IGZpeCBzZWN0aW9uIG92ZXJsYXAgcHJvYmxlbQoKICAgIFNpbmNlIHdlIGRpZG4ndCB3YW50IHRvIHJlbW92ZSBmZWF0dXJlcyBmcm9tIHRoZSBjb25maWd1cmF0aW9uLCB3ZQogICAgZGVjaWRlZCB0byBpbmNyZWFzZSB0aGUgVS1Cb290IGltYWdlIHNpemUgKGFkZCBvbmUgZmxhc2ggc2VjdG9yKS4KCiAgICBBbHNvIGNoYW5nZWQgdGhlIGRlZmF1bHQgZW52aXJvbm1lbnQgZGVmaW5pdGlvbiB0byBtYWtlIGl0CiAgICBpbmRlcGVuZGVudCBvZiBzdWNoIGNoYW5nZXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOTQxZDY5NmQyNTYyNGUzY2M2NWViZjkyNDE5OTU0MWFjZjUyZDc0ZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBBcHIgMjggMTA6NTU6MjQgMjAwOCArMDIwMAoKICAgIGthdG1haTogZml4IHNlY3Rpb24gb3ZlcmxhcCBwcm9ibGVtCgogICAgU2luY2Ugd2UgZGlkbid0IHdhbnQgdG8gcmVtb3ZlIGZlYXR1cmVzIGZyb20gdGhlIGNvbmZpZ3VyYXRpb24sIHdlCiAgICBkZWNpZGVkIHRvIGluY3JlYXNlIHRoZSBVLUJvb3QgaW1hZ2Ugc2l6ZSAoYWRkIG9uZSBmbGFzaCBzZWN0b3IpLgoKICAgIEFsc28gY2hhbmdlZCB0aGUgZGVmYXVsdCBlbnZpcm9ubWVudCBkZWZpbml0aW9uIHRvIG1ha2UgaXQKICAgIGluZGVwZW5kZW50IG9mIHN1Y2ggY2hhbmdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwM2M2Y2QzOWY5MTg0MTQzZmQ4YzUzNzg3MmIzZDRiMmUwM2YxNDY2CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJU2F0IEFwciAyNiAxMTo0NDo0NCAyMDA4IC0wNTAwCgogICAgcG9zdDogRml4IGJ1aWxkaW5nIHdpdGggTz0KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGZkNzUzMWMxZTlkNTZiOWU1ZTA2ZDJjMGUwMmI3OThkYWI3MmY3MGMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgQXByIDI2IDAxOjU1OjAwIDIwMDggKzAyMDAKCiAgICBQcmVwYXJlIHYxLjMuMy1yYzEKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDE5Y2YyZWM5MGQ4Y2U1MmRhNjBjMTY5MzY5M2M0MDQ4Y2I4MTA5NjcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgQXByIDI2IDAxOjI1OjM5IDIwMDggKzAyMDAKCiAgICBwb3N0L01ha2VmaWxlOiBtYWtlIHN1cmUgdG8gdXNlIHRoZSBjb3JyZWN0IGZsYWdzCgogICAgQVJGTEFHUyB3YXMgbm90IHNldCwgd2hpY2ggY2F1c2VkICJwcGNfOHh4LWFyOiBjcmVhdGluZyBsaWJnZW5wb3N0LmEiCiAgICBtZXNzYWdlcyB0byBiZSBwcmludGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgN2VkNDAxMTczM2U3ZGNhOGY2NGQyMTI5MWU0Mjk0NjYyZjdkYzNlMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBBcHIgMjYgMDA6MzQ6NDIgMjAwOCArMDIwMAoKICAgIENvZGluZyBTdHlsZSBjbGVhbnVwLCB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmOTIwNGUxNTE3MzgzNGZmOGQxMjNlMzYyNzljZTQ5YzNjNmM3NGZjCkF1dGhvcjogTWFnbnVzIExpbGphIDxsaWxqYS5tYWdudXNAZ21haWwuY29tPgpEYXRlOglTdW4gQXByIDIwIDEwOjM4OjEyIDIwMDggKzAyMDAKCiAgICBpLk1YMzE6IEVuYWJsZSBTUEkgYW5kIE1DMTM3ODMvUlRDIHN1cHBvcnQgZm9yIHRoZSBMaXRla2l0IGJvYXJkCgogICAgVGhpcyBwYXRjaCBlbmFibGVzIFNQSSBhbmQgTUMxMzc4My9SVEMgc3VwcG9ydCBmb3IgdGhlIExpdGVraXQgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogTWFnbnVzIExpbGphIDxsaWxqYS5tYWdudXNAZ21haWwuY29tPgoKY29tbWl0IGY5N2FiYmZiNDdkOWU0MDczNTRlMTU3Y2FlM2Y2MzY5ZTQ2MGNkMzcKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXByIDI1IDAxOjA4OjMyIDIwMDggLTA1MDAKCiAgICBNUEM4NTQ0RFM6IGRlY29kZSBwY2llMyBlbmQtcG9pbnQgY29uZmlndXJhdGlvbiBjb3JyZWN0bHkuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMjkyMTg4ZTE1NTIzYzE2NWM0MjY5NDAzZmRjZDMzYzI2ZDg5MTc2ZQpBdXRob3I6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEFwciAyNSAwMDo1NTowOSAyMDA4IC0wNTAwCgogICAgTVBDODU0NERTOiBSZW1vdmVzIHRoZSB1bmtub3duIGZsYXNoIG1lc3NhZ2UgaW5mb3JtYXRpb24KCiAgICBUaGlzIHBhdGNoIHJlbW92ZXMgdGhlIHVua25vd24gZmxhc2ggbWVzc2FnZSBpbmZvcm1hdGlvbjoKICAgICcjIyBVbmtub3duIEZMQVNIIG9uIEJhbmsgMSAtIFNpemUgPSAweGRlYWRiZWVmID0gLTI4NjI2MTI0OCBNQicKICAgIFRoaXMgdW5rbm93biBmbGFzaCBtZXNzYWdlIGlzIGNhdXNlZCBieSBQcm9tSmV0LgogICAgU29tZSBvZiB0aGUgYm9hcmQgdXNlciBpcyB1bmhhcHB5IHdpdGggdGhpcyBpbmZvcm1hdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGIyMTE1NzU3NDAzYmVlZjBhYzZiYzJjNmMzYjI0ZjMxMjU2YTc1ZDIKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXByIDI0IDE0OjA3OjM4IDIwMDggLTA1MDAKCiAgICBtcGM4M3h4OiBidW1wIGxvYWRhZGRyIG92ZXIgZmR0YWRkciB0byAweDUwMDAwMAoKICAgIHRoaXMgc2VlbXMgYXMgYSBnb29kIGNvbXByb21pc2UgYmV0d2VlbiBodW1hbiBtZW1vcnksIHR5cGluZywKICAgIGFuZCBsYXN0IGJ1dCBub3QgbGVhc3QsIHRvIGFjY29tbW9kYXRlIGZvciBjdXJyZW50IGFuZCBmdXR1cmUga2VybmVsIGJsb2F0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZTVhNzE5MDI2NWEzNGQ5Njg1NzhmZjI2NjU0OWM2MGY2ZjU3NjU0CkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXByIDE1IDEzOjEyOjIzIDIwMDggKzA4MDAKCiAgICBtcGM4M3h4OiBjbGVhbiB1cCB0aGUgcmVhZG1lIGZvciA4M3h4IGJvYXJkcwoKICAgIDEuIGNvcnJlY3QgdGhlIHR5cG8KICAgIDIuIGNvcnJlY3QgdGhlIG1lbW9yeSBtYXAgZm9yIDgzN3hlcmRiIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiY2FlNTJhNjgxOWVlOWRhZDVkMGQ5NmNkN2RhZWIyMDEwOGQ0NWZmCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXByIDE1IDEzOjExOjExIDIwMDggKzA4MDAKCiAgICBtcGM4M3h4OiByZW1vdmUgdGhlIHVudXNlZCBDUE0ncyBzdHVmZgoKICAgIFRoZSBNUEM4M3h4IGZhbWlseSBuZXZlciBoYXZlIENQTSBibG9jaywgc28gcmVtb3ZlIGl0IGZyb20gODN4eC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM2M2FkNjMyNWE4YWMwMDk3YTU0YjQxOGEzMjg4OTI2YjA0ODRiMTgKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIEFwciAxOCAxNjoyOTo0MCAyMDA4ICswMjAwCgogICAgY2ZpLWZsYXNoOiBBZGQgQ0ZHX0ZMQVNIX0FVVE9QUk9URUNUX0xJU1QKCiAgICBUaGlzIHBhdGNoIGFkZHMgYSBjb25maWd1cmFibGUgZmxhc2ggYXV0byBwcm90ZWN0aW9uIGxpc3QgdGhhdCBjYW4gYmUgdXNlZAogICAgdG8gbWFrZSBVLUJvb3QgcHJvdGVjdCBmbGFzaCByZWdpb25zIGluIGZsYXNoX2luaXQoKS4KCiAgICBUaGUgaWRlYSBoYXMgYmVlbiBkaXNjdXNzZWQgb24gdGhlIHUtYm9vdCBtYWlsaW5nIGxpc3Qgc3RhcnRpbmcKICAgIG9uIE5vdiAxOHRoLCAyMDA3LgoKICAgIEV2ZW4gdGhpcyBwYXRjaCBicmluZ3MgYSBuZXcgZmVhdHVyZSBpdCBpcyB1c2VkIGFzIGEgYnVnZml4IGZvciA0eHgKICAgIHBsYXRmb3JtcyB3aGVyZSBmbGFzaF9pbml0KCkgZG9lcyBub3QgY29tcGxldGVseSBwcm90ZWN0IHRoZQogICAgbW9uaXRvcidzIGZsYXNoIHJhbmdlIGluIGFsbCBzaXR1YXRpb25zLgoKICAgIFUtQm9vdCBwcm90ZWN0cyB0aGUgZmxhc2ggcmFuZ2UgZnJvbSBDRkdfTU9OSVRPUl9CQVNFIHRvCiAgICAoQ0ZHX01PTklUT1JfQkFTRSArIG1vbml0b3JfZmxhc2hfbGVuICAtIDEpIGJ5IGRlZmF1bHQuIFRoaXMgZG9lcyBub3QKICAgIGluY2x1ZGUgdGhlIHJlc2V0IHZlY3RvciBhdCAweGZmZmZmZmZjLgoKICAgIEV4YW1wbGU6CiAgICAjZGVmaW5lIENGR19GTEFTSF9BVVRPUFJPVEVDVF9MSVNUIHt7MHhmZmY4MDAwMCwgMHg4MDAwMH19CgogICAgVGhpcyBjb25maWcgb3B0aW9uIHdpbGwgYXV0byBwcm90ZWN0IHRoZSBsYXN0IDUxMmsgb2YgZmxhc2ggdGhhdAogICAgY29udGFpbnMgdGhlIGJvb3Rsb2FkZXIgb24gYm9hcmQgbGlrZSBBUEM0MDUgYW5kIFBNQzQwNS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBkMGQ5MWFlM2FjYjRmMjlkMWEyYTNhNzY2NzQ3NDc4ZWQ1NGUyODQ4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgQXByIDI1IDEzOjU5OjAzIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFJlbW92ZSBkb3VibGUgZGVmaW5lcyBpbiBsd21vbjUuaAoKICAgIGludHJvZHVjZWQgd2l0aCBsYXRlc3QgbHdtb241L1BPU1QgbWVyZ2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzU5MDM3OGZiOWM2ODY3MDk0OTJjZWIxNDI4MjVjZDA1ODI1NTk1NgpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBBcHIgMjUgMTM6NTQ6MDIgMjAwOCArMDIwMAoKICAgIFVzZSB3YXRjaGRvZy1hd2FyZSBmdW5jdGlvbnMgd2hlbiBjYWxjdWxhdGluZyBoYXNoZXMgb2YgaW1hZ2VzIC0gdGFrZSB0d28KCiAgICBTb21lIGZpbGVzIGRpZG4ndCBnZXQgdXBkYXRlZCBwcm9wZXJseSB3aXRoIHRoZSAiVXNlIHdhdGNoZG9nLWF3YXJlCiAgICBmdW5jdGlvbnMgd2hlbiBjYWxjdWxhdGluZyBoYXNoZXMgb2YgaW1hZ2VzIiBjb21taXQsIHRoaXMgY29tbWl0CiAgICBmaXhlcyB0aGlzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDhlMDQ4YzQzOGUyMGVjODliNDlkYTVmMDg1ZjhmNzU2ZWJhNmU1ODcKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIEFwciAyNSAxMjowMTozOSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBBZGQgYm9vdGNvdW50IGxpbWl0IGhhbmRsaW5nIGZvciBBUEM0MDUgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgMWRlNmIyOGJlNWQxMDdhZTkwYWQ3YThhNDM2NTNjNDk5NjZlOGFmZQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBBcHIgMjUgMTI6MTA6MDkgMjAwOCArMDIwMAoKICAgIFVzZSB3YXRjaGRvZy1hd2FyZSBmdW5jdGlvbnMgd2hlbiBjYWxjdWxhdGluZyBoYXNoZXMgb2YgaW1hZ2VzCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBkMDBjZTA5MDQwZDMxMDBlMmM3OTk4ZWY1NmRiNjJjMmQyMGQ5ZWUzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIEFwciAyNSAxMjo0NDowOCAyMDA4ICswMjAwCgogICAgVVNCOiBmaXggbW9yZSBHQ0MgNC4yLnggYWxpYXNpbmcgd2FybmluZ3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgogICAgQWNrZWQtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgYWZmNGY4NjQ0OGY2NTg2OTMwZjBhM2JlN2ZjNGIwZGRjZjQ1MDk4MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBBcHIgMjUgMTI6NDE6NTMgMjAwOCArMDIwMAoKICAgIGxpYl9nZW5lcmljL2NyYzMyLmM6IGFkZCBtaXNzaW5nICNpbmNsdWRlIDx3YXRjaGRvZy5oPgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMDNjY2RiY2Q1NjAyNjEwY2VhNGJkMGRiN2U0OGUxZWY4ODFhNTFlZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBBcHIgMjUgMTE6NTI6MjEgMjAwOCArMDIwMAoKICAgIGxpYl9nZW5lcmljL2NyYzMyLmM6IGZpeCBjb21waWxlIHByb2JsZW0KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDI0YmZlZGJkMGJlNGRjYWE5NDg2MTQwNzgyMGQ2YTcwZmVhN2UwM2IKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMjIgMTI6MjA6MzIgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogUGFzcyBQQ0llIHJvb3QtY29tcGxleC9lbmRwb2ludCBjb25maWd1cmF0aW9uIHRvIExpbnV4IHZpYSB0aGUgZmR0CgogICAgVGhlIFBDSWUgcm9vdC1jb21wbGV4L2VuZHBvaW50IHNldHVwIGFzIGNvbmZpZ3VyZWQgdmlhIHRoZSAicGNpZV9tb2RlIgogICAgZW52aXJvbm1lbnQgdmFyaWFibGUgd2lsbCBub3cgZ2V0IHBhc3NlZCB0byB0aGUgTGludXgga2VybmVsIGJ5IHNldHRpbmcKICAgIHRoZSBkZXZpY2VfdHlwZSBwcm9wZXJ0eSBvZiB0aGUgUENJZSBkZXZpY2UgdHJlZSBub2RlLiBGb3Igbm9ybWFsIHJvb3QtCiAgICBjb21wbGV4IGNvbmZpZ3VyYXRpb24gaXQgd2lsbCBrZWVwIGl0cyBkZWZhdWx0cyB2YWx1ZSBvZiAicGNpIiBhbmQgZm9yCiAgICBlbmRwb2ludCBjb25maWd1cmF0aW9uIGl0IHdpbGwgZ2V0IGNoYW5nZWQgdG8gInBjaS1lbmRwb2ludCIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGViMDYxNWJmNjAwZDJjYWY1YWEyOTU4ZjQ3ZjViYTM2NGM1MmQ1ZTcKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CkRhdGU6CVRodSBBcHIgMjQgMTA6MzA6NTMgMjAwOCArMDIwMAoKICAgIGx3bW9uNTogd2F0Y2hkb2cgUE9TVCBmaXgKCiAgICBVc2UgdGhlIEdQVDBfTUFTS3ggcmVnaXN0ZXJzIGFzIHRoZSB0ZW1wb3Jhcnkgc3RvcmFnZSBmb3Igd2F0Y2gtZG9nCiAgICB0aW1lciBQT1NUIHRlc3QgaW5zdGVhZCBvZiBHUFQwX0NPTVB4LiBUaGUgbGF0dGVyCiAgICAoR1BUMF9DT01QMS4uR1BUMF9DT01QNSkgYXJlIHVzZWQgZm9yIHRoZSBsb2ctYnVmZmVyIGhlYWRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgoKY29tbWl0IDc4ZTQ4ODI5ODgyNGJjMTUwYjVmM2ViZjc5NThjZDcxZmEyYWYxYjkKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDIxIDE4OjEwOjE0IDIwMDggLTA1MDAKCiAgICBsaWJfcHBjOiBSZXZlcnQgIk1ha2UgTVBDODN4eCBvbmUgc3RlcCBjbG9zZXIgdG8gZnVsbCByZWxvY2F0aW9uLiIKCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDcwNDMxZThhNzM5M2I2Yjc5M2Y3Nzk1N2Y5NWI5OTlmYzlhMjY5Yjggd2hpY2ggaGFzCiAgICBwcm92ZW4gcHJvYmxlbWF0aWMgZ2V0dGluZyByaWdodCBmcm9tIHRoZSBzdGFydCBhdCBsZWFzdCBvbiA4M3h4IGFuZAogICAgNHh4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTk5NzE1YjhlYmZjNTAwZjNmNDBlMDFiMzZiNjRkNDczOTM4NDQzZApBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglGcmkgQXByIDE4IDE0OjUwOjAxIDIwMDggKzAyMDAKCiAgICBSZWFsaW5pbmcgc29tZSBoZWFkZXIgZGVmaW5pdGlvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgNGFjYmM2YzdmOTkzY2FlNDA5YzQyNDYxNTQxNWEzZTc2ODIwZjEzZApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVRodSBBcHIgMjQgMDc6NTc6MTYgMjAwOCArMDIwMAoKICAgIE5FMjAwMDogY29kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGI0YWZmMWZmYWY3MTIwMDMyYzY1MzM1N2MwMDdmYWExNGY3NGQyOWQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgQXByIDIzIDAwOjExOjQ3IDIwMDggKzA5MDAKCiAgICBxZW11LW1pcHMuaDogQWRkIENGSSBzdXBwb3J0CgogICAgQ09ORklHX0VOVl9PVkVSV1JJVEUgaXMgYWxzbyBhZGRlZC4KCiAgICBUaGlzIHBhdGNoIGlzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCA0YTFmMTFiNDVhODI5MDhlNWIwZGY2MDJkNzAzMDgyNDEzYTZiN2VkCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJVHVlIEFwciAyMiAyMjo0NzoyNyAyMDA4ICswOTAwCgogICAgZG9jL1JFQURNRS5taXBzOiBBZGQgTUlQUyBub3RlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgMjE1YjAxYmJhOGJjNjYyZDM1ZjcyYjA4NDcwMGIxOTJkMzY3ZGZiNApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBBcHIgMjIgMTI6Mjc6NTYgMjAwOCArMDIwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBjYWxjdWxhdGluZyBoYXNoZXMgd2l0aCB3YXRjaGRvZyB0cmlnZ2VyaW5nCgogICAgSW1wbGVtZW50IHdhdGNob2RnLWF3YXJlIHZhcmlhbnRzIG9mIGhhc2ggY2FsY3VsYXRpb24gZnVuY3Rpb25zOgogICAgLSBjcmMzMl93ZCgpCiAgICAtIG1kNV93ZCgpCiAgICAtIHNoYTFfY3N1bV93ZCgpCiAgICBUaGUgYWJvdmUgZnVuY3Rpb25zIGNhbGN1bGF0ZSB0aGUgaGFzaCBvZiB0aGUgaW5wdXQgYnVmZmVyIGluIGNodW5rcywKICAgIHRyaWdnZXJpbmcgdGhlIHdhdGNoZG9nIGFmdGVyIHByb2Nlc3NpbmcgZWFjaCBjaHVuay4gVGhlIGNodW5rIHNpemUKICAgIGlzIGdpdmVuIGFzIGEgZnVuY3Rpb24gY2FsbCBwYXJhbWV0ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA4ODc1ZTNhYmFiOTg2ZGY5MzAxNjdjZTVjMWFjNGY5NWRjYWNjODFjCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglXZWQgQXByIDIzIDExOjAyOjEyIDIwMDggKzA5MDAKCiAgICBxZW11LW1pcHM6IENsZWFudXAgd2hpdGVzcGFjZSwgaW5kZW50YXRpb24sIGV0Yy4KCiAgICBObyBmdW5jdGlvbmFsIGNoYW5nZS4KCiAgICBUaGlzIHBhdGNoIHdhcyBvcmlnaW5hbGx5IHN1Ym1pdHRlZCBieSBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRC4KICAgIFRoZW4gSSByZS1jcmVhdGVkIGZyb20gc2NyYXRjaCwgYW5kIGNoYW5nZWQgbW9yZSBsaW5lcyB0aGFuIHRoZSBvcmlnaW5hbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAzODY1NjMxOTdlM2E1MGIwZTk3YWQ5YWFlODdmNTdkOWFhYjkwOWFiCkF1dGhvcjogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+CkRhdGU6CVdlZCBPY3QgMTAgMjM6MDI6MDkgMjAwNyArMDMwMAoKICAgIEZpeGVkIHBjbmV0IGlvX2Jhc2UKCiAgICBCdXMgYW5kIHBoeXMgYWRkcmVzcyBhcmUgbm90IGFsd2F5cyB0aGUgc2FtZQoKICAgIFNpZ25lZC1vZmYtYnk6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgoKY29tbWl0IDExZWEyNmZkMWNiNjNjOTE0MDNmZTA0YTZlZWE5NzVjZDQxODYwM2YKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgQXByIDI0IDIzOjQ0OjI2IDIwMDggKzAyMDAKCiAgICBkcml2ZXJzL25ldC9wY25ldC5jOiBDb2RpbmcgU3R5bGUgY2xlYW51cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDg5OWVmN2I4NDU3OGI3Y2FmYWRmZDc4NDg4YzJmZDJhYWM5M2Y2MzYKQXV0aG9yOiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KRGF0ZToJV2VkIE9jdCAxMCAyMzowNDoyMyAyMDA3ICswMzAwCgogICAgQWRkZWQgQW03OUM5NzBBIGNoaXAgaWQgdG8gcGNuZXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KCmNvbW1pdCAxN2M5ZGU2YmIzM2Y2NzZlYjc3NmRjYmZjNDZmYzFiMTRjMzg3MWE1CkF1dGhvcjogTWFnbnVzIExpbGphIDxsaWxqYS5tYWdudXNAZ21haWwuY29tPgpEYXRlOglTdW4gQXByIDIwIDEwOjM1OjAzIDIwMDggKzAyMDAKCiAgICBpLk1YMzE6IEZpeCBhcmNoaXRlY3R1cmUgbnVtYmVycyBmb3IgQURTIGFuZCBMaXRla2l0IGJvYXJkcwoKICAgIENvcnJlY3QgdGhlIExpbnV4IGFyY2hpdGVjdHVyZSBudW1iZXIgZm9yIGkuTVgzMSBMaXRla2l0IGFuZCBBRFMgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hZ251cyBMaWxqYSA8bGlsamEubWFnbnVzQGdtYWlsLmNvbT4KCmNvbW1pdCBlN2FlODRkNmM3Mjg4NzkwZTg4NjM5ZjU3Y2I2MGRhZjg5YzExMzY5CkF1dGhvcjogTWFnbnVzIExpbGphIDxsaWxqYS5tYWdudXNAZ21haWwuY29tPgpEYXRlOglTdW4gQXByIDIwIDEwOjM2OjM2IDIwMDggKzAyMDAKCiAgICBpLk1YMzE6IFVzZSBzeW1ib2xpYyBuYW1lcyBmb3IgTGl0ZWtpdCBtZW1iYXNlcy4KCiAgICBVc2Ugc3ltYm9saWMgbmFtZXMgaW5zdGVhZCBvZiBoYXJkIGNvZGVkIGFkZHJlc3NlcyBmb3IgTGl0ZWtpdCBtZW1iYXNlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYWdudXMgTGlsamEgPGxpbGphLm1hZ251c0BnbWFpbC5jb20+Cgpjb21taXQgMmVmMWQ5YjYwMzBkMDJmNTc2YjFiY2Q5ZmVjOTQ4ZTYwMjUyMjAxMgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBBcHIgMTkgMTc6NTk6MjAgMjAwOCArMDIwMAoKICAgIEZpeCBzaG93X2Jvb3RfcHJvZ3Jlc3MgcHJvdG90eXBlCgogICAgaW4gY29tbWl0IGZhZDYzNDA3MSAibWFrZSBzaG93X2Jvb3RfcHJvZ3Jlc3MgKCkgd2Vhay4iCiAgICBzaG93X2Jvb3RfcHJvZ3Jlc3MgaXMgc3VwcG9zZWQgdG8gYmUgZGVjbGFyZWQgYXMgd2VhayBidXQgZGVjbGFyZWQgYXMKICAgIGlubGluZSBpbnN0ZWFkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZWRiZWQyNDdhMTRkNzBiOTQ5NTgwMTBmNzM2NjIxMjEyMjg1ZGU5MQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBBcHIgMTggMTI6Mzk6MjMgMjAwOCArMDIwMAoKICAgIE1lbW9yeSBmb290cHJpbnQgb3B0aW1pemF0aW9ucwoKICAgIEFzIHN1Z2dlc3RlZCBieSBXb2xmZ2FuZyBEZW5rOgogICAgLSBpbWFnZSBwcmludGluZyBmdW5jdGlvbnM6CiAgICAgIC0gcmVtb3ZlIHdyYXBwZXJzCiAgICAgIC0gcmVtb3ZlIGluZGVudGF0aW9uIHByZWZpeCBmcm9tIGZ1bmN0aW9ucycgc2lnbmF0dXJlcwogICAgLSBtZXJnZSBnZXRlbnZfdmVyaWZ5IGFuZCBnZXRlbnZfYXV0b3N0YXJ0IGludG8gb25lIHBhcmFtZXRyaXplZCBmdW5jdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgMGEwYjYwNmZhYWVjNGFmYjNmNzUwYjA5YWE0ZGYxZTQwYTM5ZGNiOApBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJVHVlIEFwciAxNSAxMzozMzoxMSAyMDA4ICswMjAwCgogICAgTVgzMUFEUyBlbnZpcm9ubWVudCB2YXJpYWJsZSB1cGRhdGUsIHNwaSBhbmQgcnRjIHN1cHBvcnQKCiAgICBVcGRhdGUgTVgzMUFEUyBkZWZhdWx0IGVudmlyb25tZW50IHRvIGJldHRlciBtYXRjaCB0aGUgZmxhc2ggbGF5b3V0IGFuZAogICAgdGhlIG1lbW9yeSBtYXAsIHN1cHBvcnQgU1BJIGFuZCBSVEMuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDAyMmYxMjE2MzU5NWI5YTU1MzgwYzZkNzdjMzExOWI5M2Q2YTlhNGIKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gQXByIDIxIDA5OjI4OjM2IDIwMDggLTA1MDAKCiAgICA4NXh4OiBSb3VuZCB1cCBmcmVxdWVuY3kgY2FsY3VsYXRpb25zIHRvIGdldCByZWFzb25hYmxlIG91dHB1dAoKICAgIGVnLiBiZWNhdXNlIG9mIHJvdW5kaW5nIGVycm9yIHdlIGNhbiBnZXQgNzk5TWh6IGluc3RlYWQgb2YgODAwTWh6LgoKICAgIEludHJvZHVjZWQgRElWX1JPVU5EX1VQIGFuZCByb3VuZHVwIHRha2VuIGZyb20gbGludXgga2VybmVsLgoKICAgIFNpZ25lZC1vZmYtYnk6IERlamFuIE1pbmljIDxtaW5pY0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3Jpa2FudGggU3Jpbml2YXNhbiA8c3Jpa2FudGguc3Jpbml2YXNhbkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODc2YjhmOTc4OTgyMjE2YWI0YTIyZGNkOWVmZGRmY2Q5YjBlMDRlNgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBBcHIgMjMgMTY6NTg6MDQgMjAwOCAtMDUwMAoKICAgIGZzbF9wY2k6IE9ubHkgbW9kaWZ5IHJlZ2lzdGVycyBpZiB3ZSBoYXZlIHRoZW0KCiAgICBwbWVfbXNnX2RldCBleGlzdHMgb25seSBvbiBQQ0llIGNvbnRyb2xsZXJzIG9ubHkgc2V0IGl0IGlmIHdlIGFyZSBhICJicmlkZ2UiLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgODNmZTMyMzM0MzM3ZGVmMTYwYjMwMmFhOWQxNTJkODA4YmZjYzY4ZQpBdXRob3I6IE1hcmt1cyBLbG90emLDvGNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMjMgMTA6NTc6MzMgMjAwOCArMDIwMAoKICAgIFVTQjogcmVtb3ZlIGEgY3B1IGJ1ZyB3b3JrYXJvdW5kIGZvciBhbiB1bnN1cHBvcnRlZCBhcmNoaXRlY3R1cmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCBmOTU3NTc2Y2I1M2U2Y2ZhYjQxMjcwOWNmYzhkYjFhZmQzOWQyMWMzCkF1dGhvcjogTWFya3VzIEtsb3R6YsO8Y2hlciA8bWtAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAyMyAxMDo1MzoyMyAyMDA4ICswMjAwCgogICAgVVNCOiBmaXggdGhvc2UgcGVza3kgYWxpYXNpbmcgd2FybmluZ3MgaXNzdWVkIGJ5IGdjYy00LjIKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgODljZGFiNzg4ZjM3MTZiMzM1ZmVmYjYwYjgzNmViY2Y5NzVhY2VhYgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIE1hciAzMSAxMTowMjowMSAyMDA4IC0wNDAwCgogICAgY3JjMzI6IHVzZSB1aW50MzJfdCByYXRoZXIgdGhhbiB1bnNpZ25lZCBsb25nCgogICAgVGhlIGVudmNyYy5jIGRvZXMgc2l6ZW9mKHVuc2lnbmVkIGxvbmcpIHdoZW4gY2FsY3VsYXRpbmcgdGhlIGNyYywgYnV0CiAgICB0aGlzIGlzIGRvbmUgd2l0aCB0aGUgYnVpbGQgdG9vbGNoYWluIGluc3RlYWQgb2YgdGhlIHRhcmdldCB0b29sCiAgICBjaGFpbiwgc28gaWYgdGhlIGJ1aWxkIGlzIGEgNjRiaXQgc3lzdGVtIGJ1dCB0aGUgdGFyZ2V0IGlzIDMyYml0cywKICAgIHRoZSBzaXplIHdpbGwgb2J2aW91c2x5IGJlIHdyb25nLiBUaGlzIGNvbnZlcnRzIGFsbCB1bnNpZ25lZCBsb25nCiAgICBzdHVmZiByZWxhdGVkIHRvIGNyYzMyIHRvIHVpbnQzMl90IHR5cGVzLiBDb21waWxlIHRlc3RlZCBvbmx5OiBvdXRwdXQKICAgIG9mIC4vdG9vbHMvZW52Y3JjIHdoZW4gcnVuIG9uIGEgMzJiaXQgYnVpbGQgc3lzdGVtIG1hdGNoZXMgdGhhdCBvZiBhCiAgICA2NGJpdCBidWlsZCBzeXN0ZW0uCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgogICAgQWNrZWQtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgODBjNDBiNzY1YjM2NDJkZGI5ZjMzOTJiNzg5ODcxNWFhYjQ0YTI5YwpBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CVdlZCBNYXIgMjYgMDk6NTM6MjkgMjAwOCArMDEwMAoKICAgIEFSTTogRGF2aW5jaTogRml4IERNNjQ0eCB0aW1lciBvdmVyZmxvdyBoYW5kbGluZyBhbmQgY2xlYW51cAoKICAgIEZpeCBBUk0gYmFzZWQgRGFWaW5jaSBETTY0NHggdGltZXIgb3ZlcmZsb3cgaGFuZGxpbmcgYW5kIGNsZWFudXAgdGltZXIgY29kZS4KCiAgICBDaGFuZ2VzOgoKICAgIC0gUmVtb3ZlICpfbWFza2VkKCkgZnVuY3Rpb25zIGFzIG5vdGVkIGJ5IFdvbGZnYW5nCgogICAgLSBBZGFwdCByZWdpc3RlciBuYW1pbmcgdG8gcmVjZW50IFRJIHNwZWMgKHNwcnVlMjYsIE1hcmNoIDIwMDcpCgogICAgLSBGaXggcmVzZXRfdGltZXIoKSBoYW5kbGluZwoKICAgIC0gQXMgcmVwb3J0ZWQgYnkgUGlldGVyIFsxXSB0aGUgb3ZlcmZsb3cgZml4IGludHJvZHVjZWQgYSBkZWxheSBvZiBmYWN0b3IgMTYgKGUuZyAyIHNlY29uZHMgYmVjYW1lIDMyKS4gV2hpbGUgdGhlIG92ZXJmbG93IGZpeCBpcyBiYXNpY2FsbHkgb2theSwgaXQgbWlzc2VkIHRvIGRpdmlkZSB1ZGVsYXkgYnkgMTYsIHRvby4gRml4IHRoaXMuCgogICAgWzFdIGh0dHA6Ly9hcnRpY2xlLmdtYW5lLm9yZy9nbWFuZS5jb21wLmJvb3QtbG9hZGVycy51LWJvb3QvMzgxNzkKCiAgICAtIFJlbW92ZSBzb2Z0d2FyZSBkaXZpc2lvbiBvZiB0aW1lciBjb3VudCB2YWx1ZSAoRElWKHgpIG1hY3JvKSBhbmQgZG8gaXQgaW4gaGFyZHdhcmUgKFRJTV9DTEtfRElWKS4KCiAgICBNYW55IHRoYW5rcyB0byBUcm95IEtpc2t5IDx0cm95Lmtpc2t5QGJvdW5kYXJ5ZGV2aWNlcy5jb20+IGFuZCBQaWV0ZXIgVm9vcnRodWlqc2VuIDxwaWV0ZXIudm9vcnRodWlqc2VuQFByb2RyaXZlLm5sPiBmb3IgdGhlIGhpbnRzICYgdGVzdGluZyEKCiAgICBQYXRjaCBpcyBjb21waWxlIHRlc3RlZCB3aXRoIGRhdmluY2lfZHZldm0gJiBzb25hdGEgJiBzY2htb29naWUgY29uZmlndXJhdGlvbiBhbmQgdGVzdGVkIGJ5IFBpZXRlciBvbiBEYVZpbmNpIEVWTSBoYXJkd2FyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdtYWlsLmNvbT4KICAgIEFja2VkLWJ5OiBQaWV0ZXIgVm9vcnRodWlqc2VuIDxwaWV0ZXIudm9vcnRodWlqc2VuQFByb2RyaXZlLm5sPgoKY29tbWl0IGE2ZTZmYzYxMGUzOWRlYzQxYjc5NjgwNDEzZDRlZDM4MTQ1YmQzYzgKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglXZWQgQXByIDkgMTY6MDk6NDEgMjAwOCArMDIwMAoKICAgIEFkZGVkIHdhdGNoZG9nIHRyaWdnZXJpbmcgY2FsbHMgaW4gdGhlICJtdGVzdCIgdGVzdCBmdW5jdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgoKY29tbWl0IGQzMmE4NzRiOWI0YzFlOTQ5ZWUzOGJlNzc5MGY2YmY2ZDYxNDM0NTEKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CkRhdGU6CVN1biBBcHIgNiAxOToxOToxNCAyMDA4ICswMjAwCgogICAgbHdtb241IHdhdGNoZG9nOiBsaW1pdCB0cmlnZ2VyIHJhdGUKCiAgICBMaW1pdCB0aGUgcmF0ZSBvZiBoL3cgd2F0Y2gtZG9nIHRyaWdnZXJpbmcgb24gdGhlIExXTU9ONSBib2FyZCBieQogICAgdGhlIENPTkZJR19XRF9NQVhfUkFURSB2YWx1ZS4KCiAgICBOb3RlIHRoYXQgYW4gZWFybGllciB2ZXJzaW9uIG9mIHRoaXMgcGF0Y2ggd2hpY2ggdXNlZCBtaWNyb3NlY29uZHMKICAgIGluc3RlYWQgb2YgdGlja3MgZGlzIG5vdCB3b3JrLiBUaGUgcHJvYmxlbSB3YXMgdGhhdCB3ZSB1c2VkCiAgICB1c2VjMnRpY2tzKCkgdG8gY29udmVydCBtaWNyb3NlY29uZHMgaW50byB0aWNrcy4gdXNlYzJ0aWNrcygpIHVzZXMKICAgIGdldF90YmNsaygpLCB3aGljaCBpbiB0dXJuIGNhbGxzIGdldF9zeXNfaW5mbygpLiBJdCB0dXJucyBvdXQgdGhhdAogICAgdGhpcyBmdW5jdGlvbiBkb2VzIGEgbG90IG9mIHByb2xvbmdlZCBvcGVyYXRpb25zIChsaWtlIGRpdmlzaW9ucykKICAgIHdoaWNoIHRha2UgdG9vIG11Y2ggdGltZSBzbyB3ZSBkbyBub3QgdHJpZ2dlciB0aGUgd2F0Y2hkb2cgaW4gdGltZSwKICAgIGFuZCBpdCByZXNldHMgdGhlIHN5c3RlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgMmQyYjk5NGEzMGJiMTAwNzc0ZGM3NDdhZTk4NjViN2Y5NTI4NWE4OApBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJTW9uIE1hciAzMSAxMDo1MTozNyAyMDA4ICswMjAwCgogICAgUE9TVDogbW92ZSBDT05GSUdfUE9TVCB0byBNYWtlZmlsZXMKCiAgICBJbnRyb2R1Y2UgdGhlIG5ldyBsb2dpY2FsIG9wdGlvbiBDT05GSUdfSEFTX1BPU1Qgd2hpY2ggaXMgc2V0IHdoZW4gdGhlCiAgICBwbGF0Zm9ybSBoYXMgQ09ORklHX1BPU1Qgc2V0LiBVc2UgQ09ORklHX0hBU19QT1NUIGluIHRoZSBwb3N0LyBNYWtlZmlsZXMKICAgIHRvIGRldGVybWluZSBzaG91bGQgdGhlIFBPU1QgbGlicyBiZSBjb21waWxlZCBmb3IgdGhlIHNlbGVjdGVkIHRhcmdldAogICAgcGxhdGZvcm0sIG9yIG5vdC4KCiAgICBUbyBhdm9pZCBicmVha2luZyB1LWJvb3QgbGlua2luZyBwcm9jZXNzLCB0aGUgZW1wdHkgcG9zdC9saWJwb3N0LmEgZmlsZSBpcwogICAgY3JlYXRlZCBmb3IgcGxhdGZvcm1zIHdoaWNoIGRvIG5vdCBoYXZlIFBPU1RzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMGE1MWU5MjQ4ZTJkMjdlMGEwMmVmMWU3NDBjNTc2Y2U5MGEzOWVlMQpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJTW9uIE1hciAzMSAxMDo0OTozNCAyMDA4ICswMjAwCgogICAgUE9TVDogcHJlcGFyYXRpb25zIGZvciBtb3ZpbmcgQ09ORklHX1BPU1QgdG8gTWFrZWZpbGVzCgogICAgUmVtb3ZlIENPTkZJR19QT1NUIGlmZGVmcyBmcm9tIHRoZSBwb3N0LyBzb3VyY2UgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1ZDQwZDQ0MzBkOWViYzg0MzRjNmYwNzk4NTk0ODM2ZTFlZmE3YTFlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXByIDIyIDE0OjE0OjIwIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBDYW55b25sYW5kcyBhbmQgR2xhY2llciBkZWZhdWx0IGVudmlyb25tZW50IGZvciBmZHQgdXNhZ2UKCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBDYW55b25sYW5kcyBhbmQgR2xhY2llciBkZWZhdWx0IGVudmlyb25tZW50IHRvIGJldHRlcgogICAgZml0IHRvIHRoZSBhcmNoL3Bvd2VycGMgZGV2aWNlLXRyZWUga2VybmVscy4gVGhlIHZhcmlhYmxlcyBkZWFsaW5nIHdpdGgKICAgIGFyY2gvcHBjIGJvb3RpbmcgYXJlIHJlbW92ZWQsIHNpbmNlIHRoZXNlIGJvYXJkcyBhcmUgc3VwcG9ydGVkIG9ubHkgaW4KICAgIGFyY2gvcG93ZXJwYy4gR2xhY2llciB1c2VzIHRoZSBzYW1lIGNvbmZpZyBmaWxlIGFzIENhbnlvbmxhbmRzLgoKICAgIEFsc28sIHRoZSBHbGFjaWVyIG5vdyB1c2VzIG5vbi1GUFUgcm9vdHBhdGgsIHNpbmNlIDQ2MEdUIGhhcyBubyBGUFUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGI3ODljYjRhNGMwYzFkZWZmODIwNTM1MzljZmUyOWE5YzZlMjNmOGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMjIgMTQ6MDY6NDIgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogU21hbGwgY29kaW5nIHN0eWxlIGNsZWFudXAgZm9yIHRoZSBsYXRlc3QgZXNkIHBhdGNoZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzk5NDFkNjNiYzAzYWVkOGM0OGQ3NjAyZjE4MjE3Y2MyMDBlZTkzMQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglNb24gQXByIDIxIDE4OjAxOjA3IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBDUFUgc3RyYXBwaW5nIGZvciBQTUM0NDAgYm9hcmRzCgogICAgVGhpcyBwYXRjaCByZW1vdmVzIHRoZSB0ZW1wb3JhcnkgJ3Rlc3QnIHN0cmFwcGluZyBvcHRpb24KICAgIG9mIHRoZSBzYmUgY29tbWFuZC4gVGhlICc2NjcnIHN0cmFwcGluZyBvcHRpb24gbm93IHVzZXMKICAgIGEgUExCL1BDSSBkaXZpZGVyIG9mIDMuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZjAwY2YzMTkzYTY2MzUzNTViMTIxZTkwZGViYjJmNTRlNzc3ZTdkYQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglNb24gQXByIDIxIDE0OjQyOjIxIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFJlbW92ZSB1bnVzZWQgQVBDNDA1IHN0cmF0YWZsYXNoIGRyaXZlcgoKICAgIFRoZSBBUEM0MDUgYm9hcmQgc3VwcG9ydCBoYXMgYmVlbiBtaWdyYXRlZCB0byB1c2UgdGhlIGNvbW1vbgogICAgQ0ZJIGZsYXNoIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCAxYzY4NjY3NmE4NjQ3M2JiZDkyMTUxZjA1NDRlMTA5NDEzZjZlZDA2CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CU1vbiBBcHIgMjEgMTQ6NDI6MTcgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIEFQQzQwNSBjb25maWd1cmF0aW9uCgogICAgLSBlbmFibGUgZXNkJ3MgYXV0b191cGRhdGUgbWVjaGFuaXNtCiAgICAtIHN1cHBvcnQgYWx0ZXJuYXRpdmUgZmxhc2ggbGF5b3V0IG9uIHJldi4gMS44IGJvYXJkcwogICAgLSB1cGRhdGUgZGVmYXVsdCBlbnZpcm9ubWVudAogICAgLSB1c2UgY29tbW9uIENGSSBmbGFzaCBkcml2ZXIKICAgIC0gY29kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCAwYjk4NzI1MTVhNTIxYmY3ODY2ZGMyNGI4NWRkY2U3MDhlNjBkNzAyCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CU1vbiBBcHIgMjEgMTQ6NDI6MTEgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIEFQQzQwNSBib2FyZCBzdXBwb3J0CgogICAgLSBlbmFibGUgZXNkJ3MgYXV0b191cGRhdGUgbWVjaGFuaXNtCiAgICAtIGZpeCBMQ0Qgc3VwcG9ydCBvbiBsYXRlc3QgaGFyZHdhcmUgcmV2aXNpb24gKHVzZXMgb3RoZXIgTENEIGNvbnRyb2xsZXIpCiAgICAtIHN1cHBvcnQgYWx0ZXJuYXRpdmUgZmxhc2ggbGF5b3V0IG9uIHJldi4gMS44IGJvYXJkcwogICAgLSBjb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDgzOTc1ZDAyZTIyNWUyMzE5NjA3ODQ5NzJlNzgyMGE4YjMwMzc1NmIKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJTW9uIEFwciAyMSAxNDo0MjowNiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiB1cGRhdGUgZXNkJ3MgY29tbW9uIGF1dG9fdXBkYXRlIGNvZGUgZm9yIDQwNSBib2FyZHMKCiAgICAtIENvZGluZyBzdHlsZSBjbGVhbnVwIChsb25nIGxpbmVzKQogICAgLSBpbXByb3ZlIGhhbmRsaW5nIG9mIHByb3RlY3RlZCBmbGFzaCByZWdpb25zCiAgICAtIHJlbW92ZSBkZWFkIGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBiOTIzM2ZlNWQ1OWNiMjVkOTc1MDcxNjE2YmQxMDM1ZDZmNGMyMjg1CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CU1vbiBBcHIgMjEgMTQ6NDE6NTkgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIGVzZCdzIGNvbW1vbiBMQ0QgY29kZSBmb3IgNDA1IGJvYXJkcwoKICAgIC0gQ29kaW5nIHN0eWxlIGNsZWFudXAgKGxvbmcgbGluZXMpCiAgICAtIEFkZCBzMWQxMzUwNSBzdXBwb3J0CiAgICAtIE1ha2Ugc29tZSBmdW5jdGlvbnMgcmV0dXJuIGEgcmVzdWx0IGNvZGUgaW5zdGVhZCBvZiB2b2lkCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZGVhNjgxODk0MjRjM2YxMjQyNDI3YTgxNDZhMzg2MWJmMDkzMTczYwpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglNb24gQXByIDIxIDExOjM2OjU1IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBGUEdBIGltYWdlIGZvciBBUEM0MDUgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgMmEwNWIxNTI5MjRhY2ZjZWMzYjAzNzY5MzMyOWU1MTdlNmQzNTc4ZgpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglNb24gQXByIDIxIDExOjM2OjA4IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBib290bG9nbyBmb3IgQVBDNDA1IGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDhkZWFmZGM2YWQzNjgzNjhjZjAzYjU4Y2FiNGJkMzlmNDVkNjRiNWMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBBcHIgMTggMTY6NDE6MzEgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQWRkIGRjYWNoZV9lbmFibGUoKSBmb3IgNDQwCgogICAgZGNhY2hlX2VuYWJsZSgpIHdhcyBtaXNzaW5nIGZvciA0NDAgYW5kIHRoZSBwYXRjaAogICAgMDE3ZTliNzkyNWY3NDg3OGQwZTk0NzUzODhjY2E5YmRhNWVmOTQ4MiBbImFsbG93IHBvcnRzIHRvIG92ZXJyaWRlIGJvb3RlbGYKICAgICJdIGJlaGF2aW9yIHVzZXMgdGhpcyBmdW5jdGlvbi4KCiAgICBOb3RlOiBDdXJyZW50bHkgdGhlIGNhY2hlIGhhbmRsaW5nIGZ1bmN0aW9ucyBsaWtlCiAgICBkL2ljYWNoZV9kaXNhYmxlL2VuYWJsZSgpIGFyZSBOT1AncyBvbiA0NDAuIFRoaXMgbWF5IGJlIGNoYW5nZWQgaW4gdGhlCiAgICBmdXR1cmUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGE0OWUwZDE3N2EwNzQ5NjE0YjMxNmVjODQ3ZmI2MjNmMDljODJjMDcKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJTW9uIEFwciAyMSAxMToxOTowNCAyMDA4ICswMjAwCgogICAgdmlkZW86IEFkZCBtaXNzaW5nIGZyZWUgZm9yIGxvZ28gbWVtb3J5CgogICAgVGhpcyBwYXRjaCBhZGRzIHR3byBtaXNzaW5nIGZyZWUoKXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgODRjMDFkM2EwNWFlM2FjYTVmN2MwYzEzYTMxY2E3MmJhMTE5OWE0MgpBdXRob3I6IFRyb3kgS2lza3kgPHRyb3kua2lza3lAYm91bmRhcnlkZXZpY2VzLmNvbT4KRGF0ZToJTW9uIFNlcCAyNCAxNjo0MTo0MyAyMDA3IC0wNzAwCgogICAgUEFUQ0ggLSBGaXggb29iIGRhdGEgY29waWVkIGludG8gc3VwcGxpZWQgYnVmZmVyCgogICAgVGhpcyBwYXRjaCBjb3JyZWN0bHkgc2V0cyB0aGUgb29iYXZhaWwgdmFyaWFibGUKICAgIGFuZCBmaXhlcyBhIGJ1ZyB3aGVyZSB0aGUgb29iIGRhdGEgd2FzIG5vdCB2YWxpZCB3aGVuCiAgICB0aGVyZSB3aGVyZSBtdWx0aXBsZSBncm91cHMgaW4gb29iZnJlZS4KCiAgICBGaXJzdCBzZWdtZW50IGZpeGVzIGEgdHlwbwogICAgU2Vjb25kIHNlZ21lbnQgZml4ZXMgYSBidWcgd2hlcmUgb29iIGRhdGEgbWF5IGJlIGNvcGllZCBpbmNvcnJlY3RseS4KICAgIFRoaXJkIHNlZ21lbnQgYWRkcyBhbiBlcnJvciBtZXNzYWdlIHdoZW4gZXhpdGluZyBkdWUgdG8gd3JpdGUgcHJvdGVjdC4KICAgIEZvcnRoIHNlZ21lbnQgZml4ZXMgYSBidWcgd2hlcmUgb29iYXZhaWwgbWF5IGJlIHNldCBpbmNvcnJlY3RseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUcm95IEtpc2t5IDx0cm95Lmtpc2t5QGJvdW5kYXJ5ZGV2aWNlcy5jb20+Cgpjb21taXQgZTFkMDk2ODBmNjRiNDUyYWRkZTg5ZWQ5ZmUyOGE3N2M1NmJlZGM5YQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgQXByIDE4IDE3OjI0OjMyIDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBzeXNfZ2V0X2luZm8oKSBmb3IgNDA1R1AocikKCiAgICBUaGlzIHBhdGNoIGFzc2lnbnMgdGhlIGNvcnJlY3QgRUJDIGNsb2NrIGZvciA0MDVHUChyKSBDUFVzCiAgICB0byBQUEM0eHhfU1lTX0lORk8gc3RydWN0dXJlLiBXaXRob3V0IHRoaXMgcGF0Y2ggVS1Cb290CiAgICB1c2VzIGFuIHVuaW5pdGlhbGl6ZWQgRUJDIGNsb2NrIGluIGl0cyBzdGFydHVwIG1lc3NhZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZGM3NzQ2ZDg2ZDJhM2RmZTAxYWI5YTcwY2I0MjdmOTJhZGMzMDNjNwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBcHIgMjAgMTU6Mzk6MzggMjAwOCAtMDcwMAoKICAgIE1ha2VmaWxlOiByZW1vdmUgbmFuZF9zcGwvU3lzdGVtLm1hcCB3aGVuIGNsZWFuaW5nIHVwLgoKY29tbWl0IGQ5YTQyYzBhY2U0ZDRmOWNiMDYxZDYyYTcyNjVkMTc4MGY5MDQ0N2IKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gQXByIDIwIDE1OjM1OjUyIDIwMDggLTA3MDAKCiAgICBNQUtFQUxMOiBzb3J0IGVudHJpZXMgLyBsaXN0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDA4NzhhZjE2OWIxODE4NjhhMTA1YjVjMzNmM2E2NDIzZTJjOWZkNjAKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgQXByIDE4IDExOjI5OjAxIDIwMDggLTA1MDAKCiAgICA4NXh4OiBGaXggc2l6ZSBvZiBjcHUtcmVsZWFzZS1hZGRyIHByb3BlcnR5CgogICAgVGhlIGNwdS1yZWxlYXNlLWFkZHIgaXMgZGVmaW5lZCBhcyBhbHdheXMgYmVpbmcgYSA2NC1iaXQgcXVhbml0eSByZWdhcmRsZXNzCiAgICBpZiB3ZSBhcmUgcnVubmluZyBvbiBhIDMyLWJpdCBvciA2NC1iaXQgbWFjaGluZS4KCmNvbW1pdCA4ODM1M2E5ODUxMDk1NjJhNjM5YjJmOGEwYzkwZDc3MDExYmZlMzc0CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEFwciA0IDExOjE1OjU4IDIwMDggLTA1MDAKCiAgICBGaXggY2FsY3VsYXRpb24gb2YgSTJDIGNsb2NrIGZvciBzb21lIDg1eHggY2hpcHMKCiAgICBTb21lIDg1eHggY2hpcHMgdXNlIENDQiBhcyB0aGUgYmFzZSBjbG9jayBmb3IgdGhlIEkyQy4gIFNvbWUgdXNlIENDQi8yLCBhbmQKICAgIHNvbWUgdXNlIENDQi8zLiAgVGhlcmUgaXMgbm8gcGF0dGVybiB0aGF0IGNhbiBiZSB1c2VkIHRvIGRldGVybWluZSB3aGljaAogICAgY2hpcHMgdXNlIHdoaWNoIGZyZXF1ZW5jeSwgc28gdGhlIG9ubHkgd2F5IHRvIGRldGVybWluZSBpcyB0byBsb29rIHVwIHRoZQogICAgYWN0dWFsIFNPQyBkZXNpZ25hdGlvbiBhbmQgdXNlIHRoZSByaWdodCB2YWx1ZSBmb3IgdGhhdCBTT0MuCgogICAgVXBkYXRlIGltbWFwXzg1eHguaCB0byBpbmNsdWRlIHRoZSBHVVRTIFBPUkRFVlNSMiByZWdpc3Rlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFlMDE0NzdhZWFmNDA5ZGRiOTdlMjYzM2FhYjljZjhjOWM2MDYxMmUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgQXByIDE4IDExOjQ0OjI3IDIwMDggLTA3MDAKCiAgICBGaXggYnVpbGQgYnJlYWthZ2UgY2FzdWVkIGJ5IGNvbW1pdCBjMDU1OWJlMzcxYjIKCglDaGFuZ2UgZW52X2dldF9jaGFyIGZyb20gYSBnbG9iYWwgZnVuY3Rpb24gcHRyIHRvIGEgZnVuY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyNjhhODA0ZDdlMmZhMDdiNjQyMTFmZDJmOWE5NjE1ZGI0NTM5ZjIzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIEFwciAxOCAxMDo1Mzo0MSAyMDA4IC0wNzAwCgogICAgQ29kaW5nIFN0eWxlIGNsZWFudXAsIHVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA5MmJhZDIwYWQ3NGI3MGFkZjM4MzlkZjlhMGE0N2NjZTAwMGFjM2Q3CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUdWUgQXByIDggMTQ6MDA6NTcgMjAwOCAtMDQwMAoKICAgIEFkZCBzdXBwb3J0IGZvciB1LWJvb3QgaW4gc3ZuIGFuZCBsb2NhbHZlcnNpb24tKiBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBkMjNmZjY4MjdkZWNmMTIxNDYxZmJjNTYyMjYxMmZkN2VmZmUyMDdlCkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglUaHUgQXByIDMgMTc6MDQ6MjIgMjAwOCArMDIwMAoKICAgIE1YMzFBRFMgbmV0d29yayBhbmQgZmxhc2ggdXBkYXRlcwoKICAgIFRoaXMgcGF0Y2ggYWxsb3dzIFUtQm9vdCB0byB1c2UgYnVmZmVyZWQgd3JpdGVzIHRvIHRoZSBTcGFuc2lvbiBOT1IKICAgIGZsYXNoIGluc3RhbGxlZCBvbiB0aGlzIGJvYXJkLCBhbmQgZWxpbWluYXRlcyBsb25nIGRlbGF5cyBpbiBuZXR3b3JrCiAgICB0cmFuc2ZlcnMgYWZ0ZXIgdGhlIGJvYXJkIHN0YXJ0dXAuCgogICAgQWxzbyBtb2RpZnkgZmxhc2ggbGF5b3V0IHRvIGVtYmVkIG1haW4gYW5kIHJlZHVuZGFudCBlbnZpcm9ubWVudAogICAgYmxvY2tzIGluIHRoZSBVLUJvb3QgaW1hZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IGI1ZGM5YjMwNGQyODk4MzFmMjkxODQzZmY4OGE0NWNiZGYxYTYyOTAKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CU1vbiBBcHIgMTQgMTA6NTM6MTIgMjAwOCArMDIwMAoKICAgIFN1cHBvcnQgZm9yIHRoZSBNWDMxQURTIGV2YWx1YXRpb24gYm9hcmQgZnJvbSBGcmVlc2NhbGUKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIE1YMzFBRFMgZXZhbHVhdGlvbiBib2FyZCBmcm9tIEZyZWVzY2FsZSwKICAgIGluaXRpYWxpemF0aW9uIGNvZGUgaXMgY29waWVkIGZyb20gUmVkQm9vdCBzb3VyY2VzLCBhbHNvIHByb3ZpZGVkIGJ5CiAgICBGcmVlc2NhbGUuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDQ5OWU3ODMxZTFiYWFhYzZiZmI5NTkyMTNmMTk1MGMyMTZmYmM1YmEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgOCAxMDozMzoyOSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBDaGFuZ2UgQ2FueW9ubGFuZHMgdG8gc3VwcG9ydCBib290aW5nIGZyb20gMmsgcGFnZSBOQU5EIGRldmljZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNWUxODJkY2UwNGQ2OGNjOTQ0MDdhMWIxZmEwOTMwN2YyYmI5NjcxOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEFwciA4IDEwOjMzOjI4IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IEFkanVzdCBDYW55b25sYW5kcyBmaXhlZCBERFIyIHNldHVwIChOQU5EIGJvb3RpbmcpIHRvIDUxMk1CIFNPRElNTQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmZTdjMGRiNmIyYTkwMDRmOTZjMmEyZDRmZmYyODQ5ZTE5YzJkODI1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXByIDggMTA6MzM6MjcgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQWRkIEdsYWNpZXIgTkFORCBib290aW5nIHRhcmdldAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0NmYzNzM4MzhlMzg0YTRjMjNkMTM1ODFiMWRmYTVhY2I2NmI1ODEwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXByIDggMTA6MzE6MDAgMjAwOCArMDIwMAoKICAgIG5hbmRfc3BsOiBVcGRhdGUgbmFuZF9zcGwgdG8gc3VwcG9ydCAyayBwYWdlIHNpemUgTkFORCBkZXZpY2VzCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGJvb3RpbmcgZnJvbSAyayBwYWdlIHNpemVkIE5BTkQgZGV2aWNlCiAgICAoZS5nLiBNaWNyb24gMjlGMkcwOEFBQykuCgogICAgVGVzdGVkIG9uIEFNQ0MgQ2FueW9ubGFuZHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDVlM2RjYTU3N2I3YzFiZjU4YmQyYjQ4NDQ5YjE4YjdlN2RjZDhlMDQKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CVRodSBBcHIgMTcgMTg6MTg6MDAgMjAwOCArMDIwMAoKICAgIEZpeCBjcmFzaCBvbiBzZXF1b2lhIGluIHBwY180eHhfZXRoX2luaXQKCiAgICBDdXJyZW50bHkgVS1Cb290IGNyYXNoZXMgaW4gcHBjXzR4eF9ldGhfaW5pdCBvbiBzZXF1b2lhCiAgICB3aXRoIGNhY2hlIGVuYWJsZWQgKFRMQiBQYXJpdHkgZXhlcHRpb24pLiBUaGlzIHBhdGNoCiAgICBmaXhlcyB0aGUgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgYWNjZjczNTU3NjdkYzdmNmI4NWQ4OGJiMWM3NWM5ZDk1ZTg0YmE1YgpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJVGh1IEFwciAxNyAxODoxNToyNyAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggY3Jhc2ggb24gc2VxdW9pYSB3aXRoIGNhY2hlIGVuYWJsZWQKCiAgICBDdXJyZW50bHkgVS1Cb290IGNyYXNoZXMgb24gc2VxdW9pYSBib2FyZCBpbiBDUFUgUE9TVCBpZgogICAgY2FjaGUgaXMgZW5hYmxlZCAoQ09ORklHXzR4eF9EQ0FDSEUgZGVmaW5lZCkuIFRoZSBjYWNoZQogICAgd29uJ3QgYmUgZGlzYWJsZWQgYnkgY2hhbmdlX3RsYiBiZWZvcmUgQ1BVIFBPU1QgYmVjYXVzZQogICAgdGhlcmUgaXMgYW4gaW5zdWZmaWNpZW50IGFkcmVzcyByYW5nZSBjaGVjayBzaW5jZQogICAgQ0ZHX01FTV9UT1BfSElERSB3YXMgaW50cm9kdWNlZC4gVGhpcyBwYXRjaCB0cmllcyB0byBmaXgKICAgIHRoaXMgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgNDNjNTA5MjU0ZmFiMzc1YzQ5OTM2NDk4ZGE5NDQ2NTgxMTdlZDA3YwpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVRodSBBcHIgMTcgMjM6MzU6MTMgMjAwOCArMDkwMAoKICAgIFVzZSBqciBhcyByZWdpc3RlciBqdW1wIGluc3RydWN0aW9uCgogICAgQ3VycmVudCBhc3NlbWJsZXIgY29kZXMgYXJlIGluY29uc2lzdGVudCBpbiB0aGUgd2F5IG9mIHJlZ2lzdGVyIGp1bXAKICAgIGluc3RydWN0aW9uIHVzYWdlOyBzb21lIHVzZSBqciwgc29tZSB1c2Ugai4gT2YgY291cnNlIEdOVSBhcyBhbGxvd3MgYm90aAogICAgdXNhZ2VzLCBidXQgYXMgY2FuIGJlIGV4cGVjdGVkIGZyb20gYEp1bXAgUmVnaXN0ZXInIHRoZSBtbmVtb25pYyBganInIGlzCiAgICBtb3JlIGludHVpdGl2ZSB0aGFuIGBqJy4gRm9yIGV4YW1wbGUsIExpbnV4IGRvZXNuJ3QgaGF2ZSBgaiA8cmVnPicgdXNhZ2UKICAgIGF0IGFsbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDdjZTYzNzA5ODI4ZDM3YjA4ODY2ZTUzNzMzOWExNjliZDBkYjJiZDMKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMTUgMTQ6MTU6MzAgMjAwOCArMDIwMAoKICAgIFJUQyBkcml2ZXIgZm9yIE1DMTM3ODMKCiAgICBNQzEzNzgzIGlzIGEgbXVsdGlmdW5jdGlvbiBJUyB3aXRoIGFuIFNQSSBpbnRlcmZhY2UgdG8gdGhlIGhvc3QuIFRoaXMKICAgIGRyaXZlciBoYW5kbGVzIHRoZSBSVEMgY29udHJvbGxlciBpbiB0aGlzIGNoaXAuCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDM4MjU0ZjQ1YjBiNDEyMzMyNzI2YzkwZDMxODRhZDQ3NDc5ZmNmZmIKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMTUgMTQ6MTQ6MjUgMjAwOCArMDIwMAoKICAgIE5ldyBpLk1YMzEgU1BJIGRyaXZlcgoKICAgIFRoaXMgaXMgYW4gU1BJIGRyaXZlciBmb3IgaS5NWCBhbmQgTVhDIGJhc2VkIFNvQ3MgZnJvbSBGcmVlc2NhbGUuIFNvIGZhcgogICAgb25seSBpbXBsZW1lbnRlZCBhbmQgdGVzdGVkIG9uIGkuTVgzMSwgY2FuIHdpdGggYSBtb2RpZmllZCByZWdpc3RlciBsYXlvdXQKICAgIGFuZCBkZWZpbml0aW9ucyBiZSB1c2VkIGZvciBpLk1YMjcsIEkgdGhpbmssIE1YQyBDUFVzIGhhdmUgc2ltaWxhciBTUEkKICAgIGNvbnRyb2xsZXJzIHRvby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgNzA2NDEyMmMyZWVmOTJmMDJhMDNlZjM3YTFhMWMwN2U3MGNkNGUzOApBdXRob3I6IE1hZ251cyBMaWxqYSA8bGlsamEubWFnbnVzQGdtYWlsLmNvbT4KRGF0ZToJVHVlIEFwciAxNSAxOTowOToxMCAyMDA4ICswMjAwCgogICAgRml4IG5hbWUgb2YgaS5NWDMxIGJvYXJkcyBpbiBjb25maWcgZmlsZSBoZWFkZXIKCiAgICBDb3JyZWN0IHRoZSBuYW1lIG9mIHRoZSBpLk1YMzEgTGl0ZWtpdCBhbmQgcGh5Q09SRSBib2FyZHMgaW4gY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hZ251cyBMaWxqYSA8bGlsamEubWFnbnVzQGdtYWlsLmNvbT4KCmNvbW1pdCBhNDk4NjQ1OTNlMDgzYTVkMDc3OWZiOWNhOThlNWEwZjIwNTMxODNkCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTdW4gQXByIDEzIDE5OjQyOjE5IDIwMDggLTA0MDAKCiAgICBhbGxvdyBwb3J0cyB0byBvdmVycmlkZSBnbyBiZWhhdmlvcgoKICAgIFNwbGl0IHRoZSBhcmNoLXNwZWNpZmljIGxvZ2ljIG91dCBvZiB0aGUgY29tbW9uIGdvIGNvZGUgYW5kIGludG8gYSBkZWRpY2F0ZWQKICAgIHdlYWsgZnVuY3Rpb24gY2FsbGVkIGRvX2dvX2V4ZWMoKSB0aGF0IGxpdmVzIGluIGNwdSBkaXJlY3Rvcmllcy4gIFRoaXMgd2lsbAogICAgbmVlZCByZXZpZXcgZnJvbSBpMzg2L25pb3MgcGVvcGxlIHRvIG1ha2Ugc3VyZSBJIGRpZG4ndCBicmVhayB0aGVtLgoKY29tbWl0IDAxN2U5Yjc5MjVmNzQ4NzhkMGU5NDc1Mzg4Y2NhOWJkYTVlZjk0ODIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVN1biBBcHIgMTMgMTk6NDI6MTggMjAwOCAtMDQwMAoKICAgIGFsbG93IHBvcnRzIHRvIG92ZXJyaWRlIGJvb3RlbGYgYmVoYXZpb3IKCiAgICBDaGFuZ2UgdGhlIGJvb3RlbGYgc2V0dXAgZnVuY3Rpb24gaW50byBhIGRlZGljYXRlZCB3ZWFrIGZ1bmN0aW9uIGNhbGxlZAogICAgZG9fYm9vdGVsZl9leGVjLiAgVGhpcyB3YXkgcG9ydHMgY2FuIGNvbnRyb2wgdGhlIGJlaGF2aW9yIGhvd2V2ZXIgdGhleQogICAgbGlrZSBiZWZvcmUvYWZ0ZXIgY2FsbGluZyB0aGUgRUxGIGVudHJ5IHBvaW50LgoKY29tbWl0IGE0YjQ2ZWQ2YjM1MDIzMzVjM2YzYTVkNjcyYWJlMGJjYjQ0ZjIwYjcKQXV0aG9yOiBVbGYgU2FtdWVsc3NvbiA8dWxmQGF0bWVsLmNvbT4KRGF0ZToJU2F0IEFwciAxMiAyMDo1NjowMyAyMDA4ICswMjAwCgogICAgUmVvcmRlciBBUk0gYm9hcmRzIGluIE1ha2VmaWxlCgogICAgUmVhcnJhbmdlIEFSTSBib2FyZHMgaW4gTWFrZWZpbGUgc28gdGhhdCBBUk05MjZFSi1TIGJvYXJkcwogICAgYXJlIG5vIGxvbmdlciB1bmRlciBBUk05MnhUIGhlYWRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBVbGYgU2FtdWVsc3NvbiA8dWxmQGF0bWVsLmNvbT4KICAgIEFjay1CeSBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGMzYTYwY2IzYmQ2N2UxMjBmYzk5YjZiYTg4ZDkyOTVjM2MwN2Y2ODgKQXV0aG9yOiBVbGYgU2FtdWVsc3NvbiA8dWxmQGF0bWVsLmNvbT4KRGF0ZToJU2F0IEFwciAxMiAyMDoyOTo0NCAyMDA4ICswMjAwCgogICAgQ2xlYW4gdXAgZGF0YWZsYXNoIHBhcnRpdGlvbmluZwoKICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUgYm9hcmQgZGVwZW5kZW50IHBhcnRzIGZyb20KICAgICJkcml2ZXJzL210ZC9kYXRhZmxhc2guYyIuCiAgICBFYWNoIGJvYXJkIHJlbHlpbmcgb24gdGhpcywgd2lsbCBoYXZlIHRoZSBhcHByb3ByaWF0ZQogICAgY29kZSBpbiBhIG5ldyBmaWxlLCAicGFydGl0aW9uLmMiIGluIHRoZSBib2FyZCBkaXJlY3RvcnkuCiAgICBib2FyZCBNYWtlZmlsZXMgdXBkYXRlZCB0byB1c2UgdGhlIGZpbGUuCgogICAgVGhlIGRhdGFmbGFzaCBwYXJ0aXRpb25zIGFyZSBhbGlnbmVkIG9uIHNlY3Rvci9wYWdlIGJvdW5kYXJpZXMuCgogICAgVGhlIENPTkZJR19ORVdfREZfUEFSVElUSU9OIHdhcyB1c2VkIHRvIGNyZWF0ZSBuYW1lZCBwYXJ0aXRpb25zCiAgICBUaGlzIGlzIG5vdyB0aGUgZGVmYXVsdCBvcGVyYXRpb24sIGFuZCB0aGUgQ09ORklHIHZhcmlhYmxlIGlzIHJlbW92ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogVWxmIFNhbXVlbHNzb24gPHVsZkBhdG1lbC5jb20+Cgpjb21taXQgNTFlY2RlOTQ2ZmVjNTExYTE2MzQ2ZTQ5ODIwNGNhMTBhZDcxMDgwZApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBBcHIgMTIgMTQ6MDg6NDUgMjAwOCArMDIwMAoKICAgIGdpdGlnbm9yZTogdWRwYXRlIHN0Z2l0IGdlbmVyYXRlZCBhbmQgLnBhdGNoIGZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDY2ZTM5ODE4ZTk1ZjUxZWUxYzFkZDIwOTQ0MDdhODkyOTU0M2ZhNmQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgQXByIDE4IDAwOjE1OjM2IDIwMDggLTA3MDAKCiAgICBHZXQgcmlkIG9mIHJlZHVuZGFudCBjb3B5IG9mIHJlbmFtZWQgaGVhZGVyIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBjM2FhZmQ4Y2Y4MTRlMzNhNzdkZTgxYzJmMjJiOGM3NzIyMTZhM2NjCkF1dGhvcjogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+CkRhdGU6CUZyaSBBcHIgMTEgMjE6MjA6MTQgMjAwOCArMDMwMAoKICAgIEZpeCBkZXBlbmRlbmN5IGdlbmVyYXRpb24gZm9yIG9sZGVyIGdjYyB2ZXJzaW9ucwoKICAgICBXaXRoIGdjYyAzLjMuMyBhdCBsZWFzdCwgY29tcGlsYXRpb24gZmFpbHMgd2l0aAoKICAgIEdlbmVyYXRpbmcgaW5jbHVkZS9hdXRvY29uZi5tawogICAgZ2NjOiBjb21waWxhdGlvbiBvZiBoZWFkZXIgZmlsZSByZXF1ZXN0ZWQKICAgIG1ha2U6ICoqKiBbaW5jbHVkZS9hdXRvY29uZi5ta10gRXJyb3IgMQoKICAgIHNpbmNlIGNvbW1pdCAxNmZlNzc3NTJlZWUwOTliOWZiNjFlZDczNDYwZTUxY2M5NGIzN2JhLgoKICAgIFNpZ25lZC1vZmYtYnk6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgoKY29tbWl0IGNiMWM0ODk2OTA1YWIyMmZjZDk4MmU2YThhNTM5ZjAwMzE5NDJlNzEKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgQXByIDExIDExOjA3OjQ5IDIwMDggKzAyMDAKCiAgICBSZXN0b3JlIHRoZSBhYmlsaXR5IHRvIGNvbnRpbnVlIGJvb3RpbmcgYWZ0ZXIgbGVnYWN5IGltYWdlIG92ZXJ3cml0ZQoKICAgIEJlZm9yZSBuZXcgdUltYWdlIGNvZGUgd2FzIG1lcmdlZCwgYm9vdG0gY29kZSBhbGxvd2VkIGZvciB0aGUga2VybmVsIGltYWdlIHRvCiAgICBnZXQgb3ZlcndyaXR0ZW4gZHVyaW5nIGRlY29tcHJlc2lvbi4gbmV3IHVJbWFnZSBpbnRyb2R1Y2VkIGEgY2hlY2sgZm9yIGltYWdlCiAgICBvdmVyd3JpdGVzIGFuZCByZWZ1c2VkIHRvIGJvb3QgdGhlIGltYWdlIHRoYXQgZ290IG92ZXJ3cml0dGVuLiBUaGlzIHBhdGNoCiAgICByZXN0b3JlcyB0aGUgb2xkIGJlaGF2aW9yLiBJdCBhbHNvIGFkZHMgYSB3YXJuaW5nIHdoZW4gdGhlIGltYWdlIG92ZXJ3cml0ZW4gaXMKICAgIGEgbXVsdGktaW1hZ2UgZmlsZSwgYmVjYXVzZSBpbiBzdWNoIGNhc2UgYWNjZXNzaW5nIGNvbXBvbmVudGVzIG90aGVyIHRoYW4gdGhlCiAgICBmaXJzdCBvbmUgd2lsbCBmYWlsLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgZGUyYjMyMTZlNmI0ZjNiMmZlOTM3NTljMDViMTc1MDRmOWRmZTAzNgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBBcHIgMTEgMTE6MDc6NDMgMjAwOCArMDIwMAoKICAgIHBwYzogRml4IGZ0ZF9ibG9iIHZhcmlhYmxlIGluaXQgd2hlbiBwcm9jZXNzaW5nIHJhdyBibG9iCgogICAgU2V0IGZkdF9ibG9iIHZhcmlhYmxlIGJlZm9yZSBpdHMgdmFsdWUgaXMgcHJpbnRlZCBvdXQuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAzZDM2YmUwMzAwNDNjZDg0MWEyNTUxZDAwYTM5NTEzNWUzNjNhNjRiCkF1dGhvcjogSmFzb24gV2Vzc2VsIDxqYXNvbi53ZXNzZWxAd2luZHJpdmVyLmNvbT4KRGF0ZToJVGh1IEFwciAxMCAxNDozMDoxNiAyMDA4IC0wNTAwCgogICAgUmVtb3ZlIGFsbCB0aGUgc2VhcmNoIHBhdGhzIGZyb20gdGhlIC5sZHMgZmlsZXMuCgogICAgVGhlIGNyb3NzIGNvbXBpbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgdGhlIGNvcnJlY3QgbGlicmFyaWVzCiAgICBhbmQgdGhlIGxvZ2ljIHRvIGZpbmQgdGhlIGxpbmtpbmcgbGlicmFyaWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIFdlc3NlbCA8amFzb24ud2Vzc2VsQHdpbmRyaXZlci5jb20+Cgpjb21taXQgN2Q3MjFlMzRhZTZiZTdkN2RiNjNlOGQwNjBhMjQ2Mjc4YmI3YWU1OApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CU1vbiBBcHIgMTQgMTU6NDQ6MTYgMjAwOCArMDIwMAoKICAgIEJvb3QtcmVsYXRlZCBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKICAgIC0gZG9jdW1lbnQgJ2Jvb3RtX2xvdycgYW5kICdib290bV9zaXplJyBlbnZpcm9ubWVudCB2YXJpYWJsZXMKICAgIC0gdXBkYXRlIGluYWNjdXJhdGUgQ0ZHX0JPT1RNQVBTWiBlbnRyeQoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgYTZmMGJkOWYyYjE5NzFlMmE2MWFjMGZkMWZjMmM5NmNiN2E0YjY3YQpBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJV2VkIEFwciA5IDE3OjM0OjA4IDIwMDggKzAyMDAKCiAgICBGaXggcmVncmVzc2lvbiBpbnRyb2R1Y2VkIGJ5IGEgdHlwbyBpbiAiVGlkaWVkIG90aGVyIGNwdS9hcm05MjB0L3N0YXJ0LlMgY29kZSIKCiAgICBSZXN0b3JlIGxvZ2ljIHJldmVydGVkIGJ5IGNvbW1pdAoKICAgIGNvbW1pdCA4MDc2N2E2Y2VhZDk5OTBkOWU3N2U2MmJlOTQ3ODQzYzJjNzJmNDY5CiAgICBBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CiAgICBEYXRlOiAgIFdlZCBTZXAgNSAxNjowNDo0MSAyMDA3ICswMTAwCgoJQ2hhbmdlZCBBUEkgbmFtZSB0byBjb2xvdXJlZF9sZWQuaAoJUmVtb3ZlZCBjb2RlIHVzaW5nIGRlcHJlY2F0ZWQgaWZkZWYgQ09ORklHX0JPT1RCSU5GVU5DCglUaWRpZWQgb3RoZXIgY3B1L2FybTkyMHQvc3RhcnQuUyBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IGUyNWNiOGQzZjRmY2MyNjVhOWNkZjhlOWQ1NzdiNTliZGI2NGJiYWYKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBBcHIgOCAxMDoyNDoyNCAyMDA4IC0wNDAwCgogICAgUmVtb3ZlIGNvbmZsaWN0aW5nIE5BTkQgSUQKCiAgICBUaGVyZSBhcmUgdHdvIE5BTkQgZW50cmllcyB3aXRoIElEIDB4REMgYW5kIHRoaXMgb2J2aW91c2x5IGNhdXNlcyBwcm9ibGVtcy4KICAgIEluIHRoZSBrZXJuZWwsIHRoZXkgcHVudGVkIHRoZSBmaXJzdCBlbnRyeSwgc28gd2Ugc2hvdWxkIGRvIHRoZSBzYW1lLgoKICAgIFNlZSB0aGlzIHVwc3RyZWFtIGUtbWFpbCBmb3IgbW9yZSBpbmZvOgogICAgaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvcGlwZXJtYWlsL2xpbnV4LW10ZC8yMDA3LUp1bHkvMDE4Nzk1Lmh0bWwKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEhlbm5lcmljaCA8bWljaGFlbC5oZW5uZXJpY2hAYW5hbG9nLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAxODhlOTRjMzcwNjIxNzA4ZDEzNTQ3ZDU4ZGJjNmVkM2M1NjAyYWE4CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglUdWUgQXByIDggMTY6MjA6MzUgMjAwOCArMDkwMAoKICAgIGNwdS9taXBzL2NwdS5jOiBGaXggZmx1c2hfY2FjaGUgYnVnCgogICAgQ2FjaGUgb3BlcmF0aW9ucyBoYXZlIHRvIHRha2UgbGluZSBhZGRyZXNzIChhZGRyKSwgbm90IHN0YXJ0X2FkZHIuCiAgICBJIG5vdGljZWQgdGhpcyBidWcgd2hlbiBkZWJ1Z2dpbmcgcGluZyBmYWlsdXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KCmNvbW1pdCA4ZjJhNjhhMDdjMDU4ZmNhMWQ0MTNlNTRmNzFjMmU3ZTc4YTc0ZWQ0CkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CVRodSBBcHIgMyAxNDoyOTowMSAyMDA4ICswMjAwCgogICAgVFFNNTIwMDogZml4IGRlZmF1bHQgSURFIHJlc2V0IGxldmVsCgogICAgQmVmb3JlIHRoZSBmaXJzdCBjYWxsIG9mIGlkZV9yZXNldCgpLCB0aGUgbGV2ZWwgb2YgdGhlIElERSByZXNldAogICAgc2lnbmFsIG9uIHRoZSBUUU01MjAwIGlzIGxvdyAocmVzZXQgYXNzZXJ0ZWQpLiBUaGlzIHBhdGNoIHNldHMgdGhlCiAgICBkZWZhdWx0IHZhbHVlIHRvIGhpZ2ggKHJlc2V0IG5vdCBhc3NlcnRlZCkuCgogICAgQ3VycmVudGx5IHRoaXMgcGF0Y2ggZml4ZXMgbm8gcmVhbCBwcm9ibGVtLCBidXQgaXQgaXMgY2xlYW5lciB0bwogICAgYXNzZXJ0IHRoZSByZXNldCBzaWduYWwgb25seSBvbiBkZW1hbmQsIGFuZCBub3QgcGVybWFuZW50bHkuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgYzYxZTAzM2Q2ZThhYmI3YjQwNjBlZTM2MDYwOTYxZTEzOTlmNjA3OQpBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglUaHUgQXByIDMgMTQ6MTg6NDggMjAwOCArMDIwMAoKICAgIG1nY29nZSwgbWdzdXY6IHJlYWxpZ24gQ09ORklHX0VYVFJBX0VOVl9TRVRUSU5HCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgZjMwODU3MmUxOWViN2ZlNjNhYTNkNDFmMjE0Y2RlNGMyM2M5ODAwZgpBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglUaHUgQXByIDMgMTQ6MTg6NDcgMjAwOCArMDIwMAoKICAgIG1nY29nZSwgbWdzdXY6IHJlbmFtZSAnYWRkY29uJyB0byAnYWRkY29ucycKCiAgICBUaGUgbGF0dGVyIG5hbWUgd2l0aCAxMyB1c2VycyBpcyBhbHJlYWR5IGVzdGFibGlzaGVkLCBzbyB3ZSB3aWxsIHVzZQogICAgdGhhdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCBlMTc1ZWFjYzg3YzNhOWU0ZGFkMDc5OWZlZTBlOTU3MzI1MjBhZmM3CkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CVRodSBBcHIgMyAxMzozNzo1NiAyMDA4ICswMjAwCgogICAgSURFOiBmaXggYnVnIGluIHJlc2V0IHNlcXVlbmNlCgogICAgQWNjb3JkaW5nIHRvIHRoZSBhdGEgKGF0YTUpIHNwZWNpZmljYXRpb24gdGhlIFJFU0VULSBzaWduYWwKICAgIHNoYWxsIGJlIGFzc2VydGVkIGZvciBhdCBsZWFzdCAyNSB1cy4gV2l0aG91dCB0aGlzIHBhdGNoLAogICAgdGhlIFJFU0VULSBzaWduYWwgaXMgYXNzZXJ0ZWQgb24gc29tZSBib2FyZHMgZm9yIG9ubHkgPCAxIHVzCiAgICAoZS4gZy4gb24gdGhlIFRRTTUyMDApLiBUaGlzIHBhdGNoIGFkZHMgYSBnZW5lcmFsIGRlbGF5IG9mCiAgICAyNSB1cyB0byB0aGUgUkVTRVQtIHNpZ25hbC4KCiAgICBXaXRob3V0IHRoaXMgcGF0Y2ggYSBQbGF0aW51bSA0IEdpQiBDRiBjYXJkIGlzIG5vdCByZWNvZ25pc2VkCiAgICBwcm9wZXJseSBvbiBib2FyZHMgd2l0aCBhIFRRTTUyMDAgKFNUSzUyeHgsIFRCNTIwMCkuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgODEzYmVhOTZhOTYwOTE2YzcyYjRhM2E3ZGY4NDAxNTE1MjljMjZjZQpBdXRob3I6IFNhc2NoYSBMYXVlIDxTYXNjaGEuTGF1ZUBnbXguYml6PgpEYXRlOglUaHUgQXByIDMgMTQ6NDM6MTEgMjAwOCArMDIwMAoKICAgIGx3bW9uNTogZGlzYWJsZSBDT05GSUdfWkVST19CT09UREVMQVkKCiAgICBTaWduZWQtb2ZmLWJ5OiBTYXNjaGEgTGF1ZSA8c2FzY2hhLmxhdWVAbGllYmhlcnIuY29tPgoKY29tbWl0IDUzZWVjNmYxZDI1OTMyZTc2ZDYzY2NiMTQwODI3OTJiMGI5NmJmNDEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgQXByIDIgMDg6MDM6NTggMjAwOCArMDIwMAoKICAgIGRzMTc0eDogRml4IHdhcm5pbmcgb24gcmV0dXJuIGluIHJ0Y19nZXQgYW5kIHJ0Y19zZXQgZnVuY3Rpb25zCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBhMjUzYjM4YmY1MGM4NTIyN2MzM2NhMGZlYmM4NzBlZTQ5ZDE1ODhlCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIEFwciAyIDA4OjAzOjU3IDIwMDggKzAyMDAKCiAgICBjbWRfbG9nLmM6IEZpeCBhc3NpZ25tZW50IGRpZmZlciBpbiBzaWduZWRuZXNzCgogICAgSW4gZnVuY3Rpb24gJ2xvZ2J1ZmZfaW5pdF9wdHJzJzoKICAgIGNtZF9sb2cuYzo3OTogd2FybmluZzogcG9pbnRlciB0YXJnZXRzIGluIGFzc2lnbm1lbnQgZGlmZmVyIGluIHNpZ25lZG5lc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDZjMGU5YThmMWNjMDkwZmJmYmM2Zjg2YjZiNGZkMTdhMTYyOGYzZGYKQXV0aG9yOiBHdXJ1cmFqYSBIZWJiYXIgSyBSIDxndXJ1cmFqYWtyQHNhbnlvLmNvLmluPgpEYXRlOglXZWQgQXByIDIgMTE6MDQ6NDMgMjAwOCArMDUzMAoKICAgIFJlbW92ZSBkdXBsaWNhdGUgI3VuZGVmIFNIT1dfSU5GTyBpbiBkcml2ZXJzL3VzYi91c2Jfb2hjaS5jCgogICAgU2lnbmVkLW9mZi1ieTogZ3VydXJhamEgaGViYmFyIDxndXJ1cmFqYWtyQHNhbnlvLmNvLmluPgoKY29tbWl0IDQ3OGQ1ZWM5YWUzY2JjYzYwNDAyNDFkMmQ3M2RiYmM2MWZlOWI0OWQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUdWUgQXByIDEgMTQ6MDc6MTAgMjAwOCArMDIwMAoKICAgIHMzYzQ1MTBiX2V0aDogZml4ICdwYWNrZWQnIGF0dHJpYnV0ZSBpZ25vcmVkIGZvciBmaWVsZHMgb2YgTUFDRnJhbWUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGMwOGZiM2VhMzZkMTliMTY0MGI3OTA2MjY0NTgxZTkxMDU1MzQzOTkKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGcubGlha2hvdmV0c2tpQGdteC5kZT4KRGF0ZToJVHVlIEFwciAxNSAxMDoyNDoxNCAyMDA4ICswMjAwCgogICAgQWRkaXRpb25hbCBQQ0kgSURzIGZvciBJREUgYW5kIG5ldHdvcmsgY29udHJvbGxlcnMKCiAgICBUaGVzZSBQQ0kgSURzIGFyZSByZXF1aXJlZCBieSB0aGUgTGlua3N0YXRpb24gcGxhdGZvcm1zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8Zy5saWFraG92ZXRza2lAZ214LmRlPgoKY29tbWl0IGMwNTU5YmUzNzFiMmE2NGIxYTgxNzA4OGMzMzA4Njg4ZTIxODJmOTMKQXV0aG9yOiBKb2FraW0gVGplcm5sdW5kIDxqb2FraW0udGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KRGF0ZToJTW9uIEFwciAxNCAyMzowMTo1MCAyMDA4ICswMjAwCgogICAgQ2hhbmdlIGVudl9nZXRfY2hhciBmcm9tIGEgZ2xvYmFsIGZ1bmN0aW9uIHB0ciB0byBhIGZ1bmN0aW9uLgoKICAgIFRoaXMgYXZvaWRzIGFuIGVhcmx5IGdsb2JhbCBkYXRhIHJlZmVyZW5jZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2FraW0gVGplcm5sdW5kIDxKb2FraW0uVGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KCmNvbW1pdCAzZTBmMzMxYzA1ZDcyZjE0MDcxNWMxZTlmY2E5OTE5MjdlNDRkNDIyCkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglUdWUgQXByIDI5IDEyOjM1OjA4IDIwMDggKzAwMDAKCiAgICBDbGVhbiB1cCBzbXNjOTExeCBkcml2ZXIKCiAgICBSZXBsYWNlIGRpcmVjdCByZWdpc3RlciBhZGRyZXNzIGRlcmVmZW5jaW5nIHdpdGggYWNjZXNzb3IgZnVuY3Rpb25zLgogICAgUmVzdHJpY3QgZXhwbGljaXRseSAzMi1iaXQgYnVzLXdpZHRoLCBleHRlbmQgYWZmZWN0ZWQgY29uZmlndXJhdGlvbnMKICAgIHJlc3BlY3RpdmVseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGRlMWI2ODZiNzYzYWE4Yjg3YTg2ZjY3NDhjZTkxNjllN2ZjMGU0Y2QKQXV0aG9yOiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CkRhdGU6CVR1ZSBBcHIgMTUgMDA6MDg6MjAgMjAwOCAtMDQwMAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBhIGRyaXZlciBmb3IgdGhlIGZvbGxvd2luZyBzbXNjIG5ldHdvcmsgY29udHJvbGxlcnM6CiAgICBMQU45MTE1CiAgICBMQU45MTE2CiAgICBMQU45MTE3CiAgICBMQU45MjE1CiAgICBMQU45MjE2CiAgICBMQU45MjE3CgogICAgU2lnbmVkLW9mZi1ieTogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpPGxnQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDNkZmQ0YWFiOTI5Y2NjZGRiNjNkOWVhNTA5OTY3ODYxZTEzMzNiNTIKQXV0aG9yOiBTYXNjaGEgTGF1ZSA8U2FzY2hhLkxhdWVAZ214LmJpej4KRGF0ZToJVHVlIEFwciAxIDE1OjEzOjAzIDIwMDggKzAyMDAKCiAgICBGaXggd2F0Y2hkb2cgUE9TVCBmb3IgbHdtb241CgogICAgSWYgdGhlIGhhcmR3YXJlIHdhdGNoZG9nIGRldGVjdHMgYSB2b2x0YWdlIGVycm9yLCB0aGUgd2F0Y2hkb2cgc2V0cwogICAgR1BJTzYyIHRvIGxvdy4gVGhlIHdhdGNoZG9nIFBPU1QgaGFzIHRvIGRldGVjdCB0aGlzIGxvdyBsZXZlbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTYXNjaGEgTGF1ZSA8bGVnbGFzMEBsZWdwYzE4MC5sZWcubGllYmhlcnIuaT4KCmNvbW1pdCAyNGI0NDg0NDhhOTE3ZTUyODA2ZjgyNjYwYTVjOWQ0NzYwODg5NGZiCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXByIDEgMTU6MjI6MTEgMjAwOCArMDgwMAoKICAgIGF0YTogdXBkYXRlIHRoZSBsaWJhdGEuaCBmcm9tIGF0YS5oIG9mIGxpbnV4IGtlcm5lbAoKICAgIEN1cnJlbnQgbGliYXRhLmggb2YgdS1ib290IGlzIG91dCBvZiBzeW5jIGZyb20gbGludXgga2VybmVsLAogICAgdGhpcyBwYXRjaCBtYWtlIGl0IGJlIGNvbnNpc3RlbnQgd2l0aCBsaW51eCBrZXJuZWwuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFRvciBLcmlsbCA8dG9yQGV4Y2l0by5jb20+Cgpjb21taXQgZjhmOWRjOTg4ODNmNjZmNTllYjA2MDFkYTY1ODA4ZTZiMTM5Yzg3YwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBNYXIgMzEgMTE6NTk6MjcgMjAwOCAtMDUwMAoKICAgIEFsbG93IHVzZSBvZiBBUkNIPXBvd2VycGMgd2hlbiBidWlsZGluZwoKICAgIFRoZSBsaW51eCBrZXJuZWwgaXMgbm93IG1vc3RseSBBUkNIPXBvd2VycGMsIHNvIHRvIG1ha2UgbGlmZSBlYXNpZXIKICAgIGFsbG93IHVzZSB0byB1c2UgQVJDSD1wb3dlcnBjIGFuZCBjb252ZXJ0IGl0IHRvIEFSQ0g9cHBjLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgOGFmNjU3ZDJjNmQxY2E0ZjJmNzY5NzM1MzEzOTRkNDU3OGJhMmVmMApBdXRob3I6IEt5dW5nbWluIFBhcmsgPGttcGFya0BpbmZyYWRlYWQub3JnPgpEYXRlOglNb24gTWFyIDMxIDEwOjQwOjU0IDIwMDggKzA5MDAKCiAgICBBZGQgYXBvbGxvbiBib2FyZCBNQUlOVEFJTkVSUyBlbnRyeQoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgNzdlNDc1Y2MwZWQxODMyMTYwMDE3ZDM2NGJlMzJhMGJlOWZmMDJhOQpBdXRob3I6IEt5dW5nbWluIFBhcmsgPGttcGFya0BpbmZyYWRlYWQub3JnPgpEYXRlOglNb24gTWFyIDMxIDEwOjQwOjM2IDIwMDggKzA5MDAKCiAgICBGaXggT25lTkFORCByZWFkCgogICAgSXQgc2hvdWxkIGFjY2VzcyB3aXRoIDE2LWJpdCBpbnN0ZWFkIG9mIDgtYml0CgogICAgTm93IGl0IHVzZXMgdGhlIGdlbmVyaWMgbWVtY3B5IHdpdGggOC1iaXQgYWNjZXNzLiBJdCBtZWFucyBpdCByZWFkcyB3cm9uZyBkYXRhIGZyb20gT25lTkFORC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgoKY29tbWl0IGE5ZGEyYjQxMDc5ZDIzMGRiM2E1NjQxNjI1MzExOTgzZjg1Y2UxZmIKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxrbXBhcmtAaW5mcmFkZWFkLm9yZz4KRGF0ZToJTW9uIE1hciAzMSAxMDo0MDoxOSAyMDA4ICswOTAwCgogICAgRml4IE9uZU5BTkQgZXJhc2UgY29tbWFuZAoKICAgIEl0IG1pcy1jYWxjdWxhdGVzIHRoZSBibG9jayBhZGRyZXNzLgogICAgQWxzbyBmaXggREVDTEFSRV9HTE9CQUxfREFUQV9QVFIgaW4gZW52X29uZW5hbmQuCgogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCA2MTUyNWYyZmZhMTU2NjY1YTY2OTA4ZmRhNDdkYmYyOWQ2NWVhNTc5CkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxnLmxpYWtob3ZldHNraUBnbXguZGU+CkRhdGU6CU1vbiBNYXIgMzEgMDE6MzI6MTUgMjAwOCArMDIwMAoKICAgIFN1cHBvcnQgZm9yIExpbmtTdGF0aW9uIC8gS3Vyb0JveCBIRCBhbmQgSEcgUFBDIG1vZGVscwoKICAgIFRoaXMgcGF0Y2ggaXMgYmFzZWQgb24gdGhlIHBvcnQgYnkgTWloYWkgR2VvcmdpYW4gKHNlZSBsaW5rc3RhdGlvbi5jIGZvcgogICAgQ29weXJpZ2h0IGluZm9ybWF0aW9uKSBhbmQgaW1wbGVtZW50cyBzdXBwb3J0IGZvciBMaW5rU3RhdGlvbiAvIEt1cm9Cb3ggSEQKICAgIGFuZCBIRyBQUEMgbW9kZWxzIGZyb20gQnVmZmFsbyBUZWNobm9sb2d5LCB3aGVyZWJ5IEhEIGlzIGRlYWN0aXZhdGVkIGF0CiAgICB0aGUgbW9tZW50LCBwZW5kaW5nIG5ldHdvcmsgZHJpdmVyIGZpeGluZy4KCiAgICBOb3RpY2UgdG8gdXNlcnM6IHRoaXMgaXMgcHJldHR5IG11Y2ggYSBiYXJlYm9uZSBwb3J0LiBTdXBwb3J0IGZvciBuZXR3b3JrCiAgICBvbiBIRyBtb2RlbHMgaXMgYWxyZWFkeSBpbiB0aGUgVS1Cb290IG1haW5saW5lLCBidXQgeW91IG1pZ2h0IGFsc28gd2FudAogICAgcGF0Y2hlcyB0byBzd2l0Y2ggZmFuIC8gcGh5IG1vZGVzIGRlcGVuZGluZyBvbiB0aGUgbmVnb3RpYXRlZCBldGhlcm5ldAogICAgcGFyYW1ldGVycy4gVGhpcyBwYXRjaCBhbHNvIGRvZXNuJ3Qgc3VwcG9ydCBjb25zb2xlIHN3aXRjaGluZywgYm9vdGluZyBFTQogICAgbW9kZSwgQnVmZmFsbyBzcGVjaWZpYyBleHQyIG1hZ2ljIG51bWJlci4gU28sIGlmIHlvdSB3YW50IHRvIHVzZSBhbnkgb2YKICAgIHRob3NlLCB5b3UgbmVlZCBhZGRpdGlvbmFsIHBhdGNoZXMuIE90aGVyd2lzZSB0aGlzIHBhdGNoZSBwcm92aWRlcyBhIGZ1bGx5CiAgICBmdW5jdGlvbmFsIHUtYm9vdCB3aXRoIGEgbmV0d29yayBjb25zb2xlIG9uIHlvdXIgc3lzdGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCAwZjNiYTdlOTc4M2YzNTIzMThmMTk3YTMxNDhmNmQ1Y2MzZDc1YmVhCkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIE1hciAzMCAwMToyMjoxMyAyMDA4IC0wNTAwCgogICAgQWRkIENPTkZJR19NSUlfSU5JVCBzdXBwb3J0IHRvIHJlbGF0ZWQgYm9hcmRzCgogICAgUmVwbGFjZSBDT05GSUdfOHh4IGFuZCBDT05GSUdfTUNGNTMyeCB0byBDT05GSUdfTUlJX0lOSVQgaW4KICAgIGNtZF9pbml0LmMuIEFkZCBDT05GSUdfTUlJX0lOSVQgdG8gYm9hcmQgY29uZmlndXJhdGlvbiBmaWxlcwogICAgdGhhdCB1c2UgbWlpX2luaXQoKSBpbiBjbWRfaW5pdC5jLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBmMzNmY2EyMmU3NmYyMGU0ZTQ3OTM4MTBjYTdhMDZhNDgwNWE2Y2Y0CkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIE1hciAzMCAwMToxOTowNiAyMDA4IC0wNTAwCgogICAgVXBkYXRlIENPTkZJR19QQ0lBVVRPX1NLSVBfSE9TVF9CUklER0UgdG8gcmVsYXRlZCBib2FyZHMKCiAgICBSZW1vdmUgdGVzdCBmb3IgQ09ORklHX01QQzUyMDAgaW4gZHJpdmVycy9wY2kvcGNpX2F1dG8uYyBhbmQgZGVmaW5lCiAgICBDT05GSUdfUENJQVVUT19TS0lQX0hPU1RfQlJJREdFIGluIHJlbGF0ZWQgYm9hcmQgY29uZmlndXJhdGlvbiBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU5OWNjYjQ4ODE4MWQwMTIyNDhjNmJlMzBiMjA5M2U5NTAzMTlmYzUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgTWFyIDI3IDExOjQ2OjM4IDIwMDggLTA1MDAKCiAgICBJbnRyb2R1Y2UgcGh5c19zaXplX3QgYW5kIG1vdmUgcGh5c19hZGRyX3QgaW50byBhc20vdHlwZXMuaAoKICAgIEFsc28gYWRkIENPTkZJR19QSFlTXzY0QklUIG9uIHBvd2VycGMgdG8gZGVhbCB3aXRoIDMyLWJpdCBwcGMncwogICAgdGhhdCBoYXZlIGxhcmdlciBwaHlzaWNhbCBhZGRyZXNzZXMgbGlrZSA0NHgsIDg1eHgsIGFuZCA4Nnh4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMjBhMTRhNDJhMjVmNzJlMzc5ZjM4NDYwYjhhODQ4NDY2NzUzNjc5NQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEFwciAyIDE2OjE5OjA3IDIwMDggLTA1MDAKCiAgICBSZW5hbWUgaW5jbHVkZS9tZDUuaCB0byBpbmNsdWRlL3UtYm9vdC9tZDUuaAoKICAgIFNvbWUgc3lzdGVtcyBoYXZlIG1kNS5oIGluc3RhbGxlZCBpbiAvdXNyL2luY2x1ZGUvLiBUaGlzIGlzbid0IHRoZQogICAgZGVzaXJlZCBmaWxlICh3ZSB3YW50IHRoZSBvbmUgaW4gaW5jbHVkZS9tZDUuaCkuIFRoaXMgd2lsbCBhdm9pZCB0aGUKICAgIGNvbmZsaWN0LiBUaGlzIGZpeGVzIHRoZSBob3N0IHRvb2xzIGJ1aWxkaW5nIHByb2JsZW0gYnkgY3JlYXRpbmcgYSBuZXcKICAgIGRpcmVjdG9yeSBmb3IgVS1Cb290IHNwZWNpZmljIGhlYWRlciBmaWxlcy4KCiAgICBbUGF0Y2ggYnkgQW5keSBGbGVtaW5nLCBtb2RpZmllZCB0byB1c2Ugc2VwYXJhdGUgZGlyZWN0b3J5IGJ5IFdvbGZnYW5nCiAgICBEZW5rXQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmMjk3YjdhMWVjODc0MzNmNjYzMjBkODlkOTkzZTFiYzczOGM2NmI4CkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWFyIDI3IDE4OjUxOjE3IDIwMDggKzA4MDAKCiAgICBkcml2ZXJzOiBjb2RlIGNsZWFuIHVwCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZmY3Y2JhNGEyZTUxYzkwODI3ZjZkMjFhMGIyOGI0ZDY3MTA5NTk3CkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWFyIDI3IDE4OjUwOjQxIDIwMDggKzA4MDAKCiAgICBkcml2ZXJzOiBjbGVhbiB1cCB0aGUgYXRhX3BpaXguaAoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZThmN2JhNDA0ZjE0MDk2MDY5NjI4MTVlY2M5NTVhMDY5ODRiMDhiMwpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE1hciAyNyAxODo0OTo1NiAyMDA4ICswODAwCgogICAgZG9jOiBlbmdsaXNoIHBvbGlzaGluZyBmb3IgUkVBRE1FLnNhdGEKCiAgICBhY2NvcmRpbmcgdG8gZ3ZiJ3Mgc3VnZ2VzdGlvbiwgcG9saXNoaW5nIGZvciB0aGUgZG9jLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplcnJ5IFZhbiBCYXJlbiA8Z2VyYWxkLnZhbmJhcmVuQGdlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgM2UzZjc2NmE1Mjc0ZDIwNDc4MDQ2MGUxODc5NzIzYjU2NTI5NmQzNApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBNYXIgMjYgMTg6NTM6MjggMjAwOCAtMDUwMAoKICAgIEZpeCB3YXJuaW5ncyBpbnRyb2R1Y2VkIGJ5IEkyQyBidXMgc3BlZWQgc2V0dGluZyBwYXRjaAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgM2M3MzVlNzQzNzE1MGU4NjE1ZjI2OTMwYzc4MTlkYjg1NjM0Mjc2ZApBdXRob3I6IGVyYW4gbGliZXJ0eSA8ZXJhbi5saWJlcnR5QGdtYWlsLmNvbT4KRGF0ZToJVGh1IE1hciAyNyAwMDo1MDo0OSAyMDA4ICswMTAwCgogICAgQWx0ZXJhIFN0cmF0aXggSUkgc3VwcG9ydAoKICAgIEFkZHMgU3VwcG9ydCBmb3IgQWx0ZXJhJ3MgU3RyYXRpeCBJSS4KCiAgICBXaXRoaW4geW91ciBib2FyZCBzcGVjaWZpYyBpbml0IGZpbGUgeW91IHdpbGwgaGF2ZSB0byBjYWxsCgogICAgMS4gZnBnYV9pbml0ICgvKiByZWxvY2F0ZWQgY29kZSBvZmZzZXQuIHVzdWFsbHkgPT4gKi8gZ2QtPnJlbG9jX29mZik7CiAgICAyLiBmcGdhX2FkZCAoZnBnYV9hbHRlcmEsIChBbHRlcmFfZGVzYyopJmFsdGVyYV9kZXNjKTsKCiAgICBBbHRlcmFfZGVzYyogY29udGluZXMgKGZvciBleGFtcGxlKToKCXsKCSBBbHRlcmFfU3RyYXRpeElJLAkvKiBwYXJ0IHR5cGUgKi8KCSBwYXNzaXZlX3NlcmlhbCwJLyogaW50ZXJmYWNlIHR5cGUgKi8KCSAxLAkJCS8qIGJ5dGVzIG9mIGRhdGEgcGFydCBjYW4gYWNjZXB0ICovCgkgKHZvaWQgKikoJmZ1bmNzKSwJLyogaW50ZXJmYWNlIGZ1bmN0aW9uIHRhYmxlICovCgkgMEwsCQkJLyogYmFzZSBpbnRlcmZhY2UgYWRkcmVzcyAqLwoJIDAJCQkvKiBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYyBjb29raWUgKi8KCSB9CgogICAgZnVuY3MgaXMgdGhlIGludGVyZmFjZS4gSXQgaXMgb2YgdHlwZSBhbHRlcmFfYm9hcmRfc3BlY2lmaWNfZnVuYy4KICAgIEl0IGxvb2tzIGxpa2UgdGhpczoKICAgIGFsdGVyYV9ib2FyZF9zcGVjaWZpY19mdW5jIGZ1bmMgPSB7CglwcmVfZm4sCgljb25maWdfZm4sCglzdGF0dXNfZm4sCglkb25lX2ZuLAoJY2xrX2ZuLAoJZGF0YV9mbiwKCWFib3J0X2ZuLAoJcG9zdF9mbiwKICAgIH07CgogICAgeW91IHdpbGwgaGF2ZSB0byBpbXBsZW1lbnQgdGhlc2UgZnVuY3Rpb25zLCB3aGljaCBpcyB1c3VhbGx5IGJpdAogICAgYmFuZ2luZyBzb21lIGdwaW8uCgogICAgU2lnbmVkLW9mZi1ieTogRXJhbiBMaWJlcnR5IDxsaWJlcnR5QGV4dHJpY29tLmNvbT4KCmNvbW1pdCA1ZWNlOWVjOWY2Y2Q1Mjk1MGFiODQ4ZTJmZTQyMmRhY2YxZDNhMzM1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEFwciAxMyAxNDozMjo1NCAyMDA4IC0wNzAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNWFkODYyMTY2YWEyNGQ2MmE2OWFhOWM3MDhmNmIyZjVjMGQyOGZiNwpBdXRob3I6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KRGF0ZToJV2VkIE1hciAyNiAyMDo0MToxNyAyMDA4ICswMTAwCgogICAgUGh5dGVjIFBoeWNvcmUtaS5NWDMxIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIFBoeXRlYyBQaHljb3JlLWkuTVgzMSBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCBjYWViYzk1YmUzYjQyZTUxNDdiNWZhYzc2NzJhYzRiMjY5M2VmN2UxCkF1dGhvcjogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgpEYXRlOglXZWQgTWFyIDI2IDIwOjQxOjA5IDIwMDggKzAxMDAKCiAgICBteDMxIGxpdGVraXQgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgbXgzMSBsaXRla2l0IGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IGNkYWNlMDY2MTIwODc1NGE1MzAxOWVhMGRjN2I4MDNhMDQwZTA5MzkKQXV0aG9yOiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CkRhdGU6CVdlZCBNYXIgMjYgMjA6NDA6NDkgMjAwOCArMDEwMAoKICAgIGFkZCBhbiBpMmMgZHJpdmVyIGZvciBteDMxCgogICAgVGhpcyBwYXRjaCBhZGRzIGFuIGkyYyBkcml2ZXIgZm9yIEZyZWVzY2FsZSBpLk1YIHByb2Nlc3NvcnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgOWI1NmY0ZjAzMDZmMzk0MGIwYWFmZDgyM2VkNmVjZmMyZDc1ZDZjNgpBdXRob3I6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KRGF0ZToJV2VkIE1hciAyNiAyMDo0MDo0MiAyMDA4ICswMTAwCgogICAgY29yZSBzdXBwb3J0IGZvciBGcmVlc2NhbGUgbXgzMQoKICAgIFRoaXMgcGF0Y2ggYWRkcyB0aGUgY29yZSBzdXBwb3J0IGZvciBGcmVlc2NhbGUgbXgzMQoKICAgIFNpZ25lZC1vZmYtYnk6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCA3ZWM2ODg2MmEyN2M4ZjZmNmQ1NjYyMjhkZThmNjcyNGQ5NjRhOTM5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEFwciAxMyAxNDoxOToyMyAyMDA4IC0wNzAwCgogICAgRml4IGNvbXBpbGUgZXJyb3IKCiAgICAuLi5hcyBzdWdnZXN0ZWQgYnkgUGV0ZXIgUGVhcnNlCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1MjUyZWQ5NTIwNGJkZjU1YmVjNWE5MGVhNjk4NjBiZjJmNzhjNjQzCkF1dGhvcjogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgpEYXRlOglXZWQgTWFyIDI2IDIwOjQwOjM2IDIwMDggKzAxMDAKCiAgICBTZXBhcmF0ZSBvbWFwMjR4eCBzcGVjaWZpYyBjb2RlIGZyb20gYXJtMTEzNgoKICAgIE1vdmUgb21hcDI0eHggY29kZSB0byBjcHUvYXJtMTEzNi9vbWFwMjR4eCwgcmVuYW1lIGluY2x1ZGUvYXNtLWFybS9hcmNoLWFybTExMzYKICAgIHRvIGNwdS9hcm0xMTM2L29tYXAyNHh4LgoKICAgIFNpZ25lZC1vZmYtYnk6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCAxZjFkODhkZDQwODE1MzMyZGYzMjk4MmU3MzlmMmRkZDJkYTZmZTFhCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUdWUgSmFuIDI5IDE4OjIxOjA1IDIwMDggLTA1MDAKCiAgICBkaXNhYmxlIGNhY2hlcyBiZWZvcmUgYm9vdGluZyBhbiBhcHAgZm9yIEJsYWNrZmluIGFwcHMKCiAgICBJdCBpc24ndCBnZW5lcmFsbHkgc2F2ZSB0byBleGVjdXRlIGFwcGxpY2F0aW9ucyBvdXRzaWRlIG9mIFUtQm9vdCB3aXRoIGNhY2hlcwogICAgZW5hYmxlZCBkdWUgdG8gdGhlIHdheSB0aGUgQmxhY2tmaW4gcHJvY2Vzc29yIGhhbmRsZXMgY2FjaGVzIChyZXF1aXJlcwogICAgc29mdHdhcmUgYXNzaXN0YW5jZSkuICBUaGlzIHBhdGNoIGRpc2FibGVzIGNhY2hlcyBiZWZvcmUgYm9vdGluZyBhbiBFTEYgb3IKICAgIGp1c3QgYm9vdGluZyByYXcgY29kZS4gIFRoZSBwcmV2aW91cyBkaXNjdXNzaW9uIG9uIHRoZSBwYXRjaCB3YXMgdGhhdCB3ZQogICAgd2FudGVkIHRvIHVzZSB3ZWFrcyBpbnN0ZWFkLCBidXQgdGhhdCBwcm92ZWQgdG8gbm90IGJlIGZlYXNpYmxlIHdoZW4gbXVsdGlwbGUKICAgIHN5bWJvbHMgYXJlIGludm9sdmVkLCB3aGljaCBwdXRzIHVzIGJhY2sgYXQgdGhlIGlmZGVmIHNvbHV0aW9uLiAgSSd2ZQogICAgbWluaW1pemVkIHRoZSB1Z2xpbmVzcyBieSBtb3ZpbmcgdGhlIHNldHVwIHN0ZXAgb3V0c2lkZSBvZiB0aGUgbWFpbiBmdW5jdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgZTZkZmVkNzA1ZWZhNDRlYmYwMGQyMWJiMTU4OGM2Y2NjOGYzYWQzMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBcHIgMTMgMTA6MDM6NTQgMjAwOCAtMDcwMAoKICAgIHBwYzogR2V0IHJpZCBvZiB1bnVzZWQgbWFjaGluZSB0eXBlIGRlZmluaXRpb25zCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAxYWVlZDhkNzFhY2IzMjkwY2YyNDQ2ZjMxNmQ2YmE0MzdlNzg4MWM0CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEFwciAxMyAwOTo1OToyNiAyMDA4IC0wNzAwCgogICAgQ29kaW5nIFN0eWxlIGNsZWFudXA7IHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDc3NTRmMzNjNmZiN2EyYzA1MDM4OGQyMGJmMzg0NzAzODU1OGJkY2YKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJVGh1IEZlYiAyMSAxMzo1ODoxMSAyMDA4IC0wNTAwCgogICAgTE03MyBidWcgZml4IGZvciBuZWdhdGl2ZSB0ZW1wZXJhdHVyZXMgYW5kIGNsZWFudXAKCiAgICBXaGVuIHRoZSBMTTczIHRlbXBlcmF0dXJlIHNlbnNvciBtZWFzdXJlcyBhIHRlbXBlcmF0dXJlIGJlbG93IDAgQywgdGhlCiAgICBjdXJyZW50IGRyaXZlciBkb2VzIG5vdCBwZXJmb3JtIHNpZ24gZXh0ZW5zaW9uLCBzbyB0aGUgcmVzdWx0IHJldHVybmVkIGlzCiAgICA1MTIgQyB0b28gaGlnaC4gIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIHByb2JsZW0sIGFuZCBkb2VzIGdlbmVyYWwgY2xlYW51cAogICAgb2YgdGhlIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgOTZlZjgzMWY3MTMyODlhZmJhMTlkYTBjOGY5MDVlOTlkYTJiMjNlMApBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJVGh1IEFwciAzIDEzOjM2OjAyIDIwMDggKzAyMDAKCiAgICBjZmlfZmxhc2g6IFN1cHBvcnQgYnVmZmVyZWQgd3JpdGVzIG9uIG5vbi1zdGFuZGFyZCBTcGFuc2lvbiBOT1IgZmxhc2gKCiAgICBTb21lIE5PUiBmbGFzaCBjaGlwIGZyb20gU3BhbnNpb24sIGZvciBleGFtcGxlLCB0aGUgczI5d3MtbiBNaXJyb3JCaXQKICAgIHNlcmllcyByZXF1aXJlIGRpZmZlcmVudCBhZGRyZXNzZXMgZm9yIGJ1ZmZlcmVkIHdyaXRlIGNvbW1hbmRzLiBEZWZpbmUgYQogICAgY29uZmlndXJhdGlvbiBvcHRpb24gdG8gc3VwcG9ydCBidWZmZXJlZCB3cml0ZXMgb24gdGhvc2UgY2hpcHMuIEEgbW9yZQogICAgZWxlZ2FudCBzb2x1dGlvbiB3b3VsZCBiZSB0byBhdXRvbWF0aWNhbGx5IGRldGVjdCB0aG9zZSBjaGlwcyBieSBwYXJzaW5nCiAgICB0aGVpciBDRkkgcmVjb3JkcywgYnV0IHRoYXQgd291bGQgcmVxdWlyZSBpbnRyb2R1Y3Rpb24gb2YgYSBmaXh1cCB0YWJsZQogICAgaW50byB0aGUgY2ZpX2ZsYXNoIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgM2Y5YzU0MmQzZDY5YjFhMTBhNWUxOTNlNzc5MTMzYTA0NTRkMWY0NApBdXRob3I6IExlZSBOaXBwZXIgPGxlZS5uaXBwZXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEFwciAxMCAwOTozNTowNiAyMDA4IC0wNTAwCgogICAgbXBjODN4eDogVXBkYXRlIERJTU0gZGF0YSBidXMgd2lkdGggdGVzdCB0byBzdXBwb3J0IDQwLWJpdCB3aWR0aAoKICAgIDMyLWJpdCB3aWRlIEVDQyBtZW1vcnkgbW9kdWxlcyByZXBvcnQgNDAtYml0IHdpZHRoLgogICAgQ2hhbmdlZCB0aGUgRElNTSBkYXRhIGJ1cyB3aWR0aCB0ZXN0IHRvICdsZXNzIHRoYW4gNjQnIGluc3RlYWQgb2YgJ2VxdWFsIDMyJy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMZWUgTmlwcGVyIDxsZWUubmlwcGVyQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVmYjVhNjg5ZDgyMmNhNjFlODE0YmQ1MjNmYzkzMGFmMzM1MjQyZmEKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBNYXIgMzEgMTc6MDU6MTIgMjAwOCArMDgwMAoKICAgIG1wYzgzeHg6IEZpeCB0aGUgYnVnIG9mIHNlcmRlcyBpbml0aWFsaXphdGlvbgoKICAgIEN1cnJlbnRseSB0aGUgc2VyZGVzIHdpbGwgbm90IGJlIGluaXRpYWxpemF0ZWQgZHVlIHRvIHRoZQogICAgcGFydGlkJ3MgZXJyb3IuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjAwMDc4NDgxOGYwNDNkYjdjYTYwZTI4NDZhNzJkMDk3NzY2Yjg5NApBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEFwciAzIDE2OjI4OjI5IDIwMDggKzA4MDAKCiAgICBtcGM4M3h4OiBGaXggdGhlIFNBVEEgY2xvY2sgc2V0dGluZyBvZiA4Mzd4IHRhcmdldHMKCiAgICBDdXJyZW50bHkgdGhlIFNBVEEgY29udHJvbGxlciBjbG9jayBpcyBjb25maWd1cmVkIGFzIENTQiBjbG9jaywKICAgIHVzdWFsbHkgdGhlIENTQiBjbG9jayBpcyA0MDAvMzMzLzI2Nk1Iei4KCiAgICBIb3dldmVyLCBUaGUgU0FUQSBJUCBibG9jayBpcyBvbmx5IGd1YXJhbnRlZWQgdG8gb3BlcmF0ZSB1cCB0bwogICAgMjAwIE1IeiBhcyBzdGF0ZWQgaW4gdGhlIEhXIHNwZWMuCgogICAgVGhlIGJ1ZyBpcyByZXBvcnRlZCBieSBKb2UgRCdBYmJyYWNjaW8gPGxqZDAxNUBmcmVlc2NhbGUuY29tPgoKICAgIFRoaXMgcGF0Y2ggbWFrZXMgdGhlIFNBVEEgY2xvY2sgYXMgaGFsZiBvZiBDU0IgY2xvY2suCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWFjNGYzMjBiZjBiNTkzYWEwYTc0MWYyZDY0OWE4ZWNlODgzODY3MgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBBcHIgMiAxMzo0MToyMSAyMDA4ICswMjAwCgogICAgbXBjODM3eGVyZGI6IEZpeCB3YXJuaW5nOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnZmR0X2ZpeHVwX2RyX3VzYicKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5N2IzZWNiNTc1YTkyZmEzNGMxNzY1MjI5ZGJjMDZmMmI2NjJmMTM5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEFwciA5IDA0OjIwOjU3IDIwMDggLTA1MDAKCiAgICA4NXh4OiBGaXggZGV0ZWN0aW9uIG9mIE1QIGNwdSBzcGluIHVwCgogICAgV2Ugd2VyZSBsb29raW5nIGF0IHRoZSB3cm9uZyBtZW1vcnkgb2Zmc2V0IHRvIGRldGVybWluZSBvZiBhIHNlY29uZGFyeQogICAgY3B1IGhhZCBiZWVuIHNwdW4gdXAgb3Igbm90LiAgQWxzbyBhZGRlZCBhIHdhcm5pbmcgbWVzc2FnZSBpZiB0aGUKICAgIGFsbCB0aGUgc2Vjb25kYXJ5IGNwdXMgd2UgZXhwZWN0IGRvbid0IHNwaW4gdXAuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmM2UwNGJkYzNmMzYwYzY2ODAxYTkwNDg5NTZlNjFlNDFhMTZlZGJhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEFwciA4IDEwOjQ1OjUwIDIwMDggLTA1MDAKCiAgICA4NXh4OiBVc2UgU1ZSX1NPQ19WRVIgaW5zdGVhZCBvZiBTVlJfVkVSCgogICAgVGhlIHJlY2VudCBjaGFuZ2UgaW50cm9kdWNlZCBieSAnVXBkYXRlIFNWUiBudW1iZXJzIHRvIGV4cGFuZCBzdXBwb3J0JwogICAgbm93IHJlcXVpcmVzIHRoYXQgd2UgdXNlIFNWUl9TT0NfVkVSIGluc3RlYWQgb2YgU1ZSX1ZFUiBpZiB3ZSB3YW50CiAgICB0byBjb21wYXJlIGFnYWluc3QgYSBwYXJ0aWN1bGFyIHByb2Nlc3NvciBpZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDViMjA1MmU1ZjVmY2NlNWRiZDRkMjc1MGEyOWMwZTQ1YmNlODA2ZTcKQXV0aG9yOiBFdWdlbmUgTydCcmllbiA8ZXVnZW5lLm9icmllbkBhZHZhbnRlY2hhbXQuY29tPgpEYXRlOglGcmkgQXByIDExIDEwOjAwOjM1IDIwMDggLTA0MDAKCiAgICBwcGM0eHg6IEZpeCBwb3dlciBtZ3QgZGVmaW5pdGlvbnMgZm9yIFBQQzQ0MAoKICAgIENvcnJlY3RlZCBEQ1IgYWRkcmVzc2VzIG9mIFBQQzQ0MEVQIHBvd2VyIG1hbmFnZW1lbnQgcmVnaXN0ZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEV1Z2VuZSBPJ0JyaWVuIDxldWdlbmUub2JyaWVuQGFkdmFudGVjaGFtdC5jb20+Cgpjb21taXQgOTUwYTM5MjQ2NGU2MTZiNDU5MGJjNDUwMWJlNDZlMmQ3ZDE2MmRlYQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBBcHIgMTEgMTU6MTE6MjYgMjAwOCArMDIwMAoKICAgIFJldmVydCBtZXJnZSBvZiBnaXQ6Ly93d3cuZGVueC5kZS9naXQvdS1ib290LWFybSwgY29tbWl0IDYyNDc5YjE4OgoKICAgIFJldmVydGluZyBiZWNhbWUgbmVjZXNzYXJ5IGFmdGVyIGl0IHR1cm5lZCBvdXQgdGhhdCB0aGUgcGF0Y2hlcyBpbgogICAgdGhlIHUtYm9vdC1hcm0gcmVwbyB3ZXJlIG1vZGlmaWVkLCBhbmQgaW4gc29tZSBjYXNlcyBjb3JydXB0ZWQuCgogICAgVGhpcyByZXZlcnRzIHRoZSBmb2xsb3dpbmcgY29tbWl0czoKCgkwNjZiZWJkNjM1M2UzM2FmM2FkZWZjMzQwNDU2MDg3MTY5OWU5OTYxCgk3YTgzN2I3MzEwMTY2YWU4ZmM4YjhkNjZkN2VmMDFiNjBhODBmOWQ2CgljODhhZTIwNTgwYjJiMDE0ODdiNGNkY2M4YjJhMTEzZjU1MWFlZTM2CglhMTQ3ZTU2ZjAzODcxYmJhNGYwNTA1OGQ1ZTA0Y2U3ZGViMDEwYjA0CglkNjY3NGUwZTJhNmExZjAzMzk0NWY3ODgzODU2NjIxMGQzZjI4Yzk1Cgk4Yzg0NjNjY2U0NGQ4NDllMzc3NDQ3NDliMzJkMzhlMWRmYjEyZTUwCgljOThiNDdhZDI0YjJkOTFmNDFjMDlhM2Q2MmQ3ZjcwYWQ4NGY0YjdkCgk4YmY2OWQ4MTc4MjYxOTE4NzkzM2E2MDVmMWE5NWVlMWQwNjk0NzhkCgk4YzE2Y2IwZDNiOTcxZjQ2ZmJlNzdjMDcyNjY0YzBmMmRjZDQ0NzFkCglhNTc0YTczODUyYTUyNzc3OTIzNGU3M2UxN2U3NTk3ZmQ4MTI4ODgyCgkxMzc3YjU1ODNhNDgwMjFkOTgzZTFmZDU2NWY3ZDQwYzg5ZTg0ZDYzCgkxNzA0ZGMyMDkxN2I0ZjcxZTM3M2UyYzg4ODQ5N2VlNjY2ZDQwMzgwCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2NGU1NDFmNGMxYjQxM2RkODRjN2U0MDlmNWMyYmYzMjhkYjJhYzEzCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgQXByIDExIDA3OjAyOjI5IDIwMDggKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBLaWxhdWVhIGRlZmNvbmZpZyB0byB1c2UgZGV2aWNlLXRyZWUgYm9vdGluZyBhcyBkZWZhdWx0CgogICAgVGhpcyBwYXRjaCByZXdvcmtzIHRoZSBkZWZhdWx0IGVudmlyb25tZW50IG9uIEtpbGF1ZWEvSGFsZWFrYWxhLiBOb3cKICAgICJuZXRfbmZzIiBmb3IgZXhtYXBsZSB1c2VzIHRoZSBkZXZpY2UtdHJlZSBzdHlsZSBib290aW5nIGZvcm1lcmx5IGtub3cKICAgIGFzICJuZXRfbmZzX2ZkdCIuIEFsc28gdGhlIGFkZHJlc3NlcyBpbiBSQU0gd2VyZSBjaGFuZ2VkIGJlY2F1c2Ugb2YgdGhlCiAgICBuZXcgaW1hZ2UgYm9vdGluZyBzdXBwb3J0LCB3aGljaCBjaGVjayBmb3IgaW1hZ2Ugb3ZlcndyaXRpbmcuIFNvIHRoZQogICAgYWRkcmVzc2VzIG5lZWRlZCB0b2dlZXQgYWRqdXN0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc1NmY1ZGFjZGEzODEwYjA5NGI5NGJjY2VmZmQzY2U2YzdmZjlhMjgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgOSAxMTo1ODowMiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggQ2FueW9ubGFuZHMgZGVmYXVsdCBlbnZpcm9ubWVudCB0byB3b3JrIHdpdGggbmV3IGltYWdlIHN1cHBvcnQKCiAgICBTaW5jZSB0aGUgbmV3IGltYWdlIHN1cHBvcnQgY2hlY2tzIGZvciBpbWFnZSBvdmVyd3JpdGluZywgdGhlIGRlZmF1bHQKICAgIGVudmlyb25tZW50IG5lZWRzIHRvIGdldCBhZGp1c3RlZCB0byB1c2UgY29ycmVjdCBhZGRyZXNzZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGRmYzZjN2I2NDdkYmE3YWI4Njc0OTYxNmYwZTllNTc0MGRlZWQ0MjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgOSAxMTo1NDoxMSAyMDA4ICswMjAwCgogICAgcHBjOiBSZXZlcnQgcGF0Y2ggNzA0MzFlOGEgdGhhdCB1c2VkIF9zdGFydCBpbnN0ZWFkIG9mIENGR19NT05JVE9SX0JBU0UKCiAgICBUaGUgcGF0Y2ggNzA0MzFlOGE3MzkzYjZiNzkzZjc3OTU3Zjk1Yjk5OWZjOWEyNjliOCAoTWFrZSBNUEM4M3h4IG9uZSBzdGVwCiAgICBjbG9zZXIgdG8gZnVsbCByZWxvY2F0aW9uLikgZG9lc24ndCB1c2UgQ0ZHX01PTklUT1JfQkFTRSBhbnltb3JlLiBCdXQKICAgIG9uIDR4eCBzeXN0ZW1zIF9zdGFydCBjdXJyZW50bHkgY2Fubm90IGJlIHVzZWQgZm9yIHRoaXMgY2FsY3VsYXRpb24uCiAgICBTbyByZXZlcnQgYmFjayB0byB0aGUgb3JpZ2luYWwgdmVyc2lvbiBmb3Igbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmOTEzNzRmNjVlYWU4YjQyY2FjMzI5ZTA2YmExYzU0NzI4Mjc4ZWZiCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgTWFyIDI4IDEyOjQ5OjUyIDIwMDggKzAxMDAKCiAgICBtaWNyb2JsYXplOiBTb3J0IG1pY3JvYmxhemUgYm9hcmRzIGluIE1BS0VBTEwgc2NyaXB0Cgpjb21taXQgNjIwMzJkZWI3MjE0YzZkOWI0Mzk2Mjk3ZTJhYWE1NTliYzJmODQ5NQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIE1hciAyOCAxMTo1ODo0NSAyMDA4ICswMTAwCgogICAgbWljcm9ibGF6ZTogY2xlYW4gbWljcm9ibGF6ZV9jb25maWcubWsKCiAgICBGTEFHUyBhcmUgZ2VuZXJhdGVkIGJ5IFUtQk9PVCBnZW5lcmF0b3IuCiAgICBCb2FyZCBzcGVjaWZpYyBGTEFHUyBhcmUgaW4gYm9hcmQgZGlyZWN0b3J5CgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgoKY29tbWl0IGNmNWM2NzljYTA0YTZiNTRiZjUzYTU1YjhiOWMyOTMzNWIzODcyODcKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBNYXIgMjggMTI6NDc6MTkgMjAwOCArMDEwMAoKICAgIG1pY3JvYmxhemU6IHh1cHYycCBmaXggY29uZmlnIGZpbGUgZm9yIHN1cHBvcnRpbmcgRkRUCgpjb21taXQgMTg4ZGMxNmIxODkxNDM1NzNiMWVkOTBlNTg0YmY4NjZkNzVjZGQxMgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIE1hciAyOCAxMTo1MzowMiAyMDA4ICswMTAwCgogICAgbWljcm9ibGF6ZTogbWw0MDEgZml4IGNvbmZpZyBmaWxlIGZvciBzdXBwb3J0aW5nIEZEVAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KCmNvbW1pdCA0YzZhNmYwMmUyMzkyMzYyNjEzMzM3NTk5OTdlZWFmODZiMzBiNTRjCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgTWFyIDI4IDExOjIyOjQ4IDIwMDggKzAxMDAKCiAgICBtaWNyb2JsYXplOiBtbDQwMSAtIGFkZCBpZmRlZiBmb3IgR1BJTwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KCmNvbW1pdCBhZjdhZTFhNDExYzY3ZWU5ZDE3YTY2ZDE3Y2U1MGIzNzRmM2RkNGU3CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgTWFyIDI4IDEyOjEzOjAzIDIwMDggKzAxMDAKCiAgICBtaWNyb2JsYXplOiBjbGVhbiB1YXJ0MTY1NTAgYW5kIHVhcnRsaXRlIGhhbmRsaW5nCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgoKY29tbWl0IDBiMjBmMjUwODc3NDQxNDYwZmI3OWQ3MjE5Mjk1NGFiZTg0OTg4MzQKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBNYXIgMjggMTE6MDg6MzEgMjAwOCArMDEwMAoKICAgIG1pY3JvYmxhemU6IEFkZCBFbWFjbGl0ZSBkcml2ZXIgdG8gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+Cgpjb21taXQgODY4Y2RlNTMxMGY4ODIzNGI3NzQ4NzhlNGYwNmU3OWRmMTBhODhiMwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIE1hciAyOCAxMTowODowMSAyMDA4ICswMTAwCgogICAgbWljcm9ibGF6ZTogQWRkIEVtYWMgZHJpdmVyIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgoKY29tbWl0IDZmOTYxYjRmNDYxZjZjYmI4M2E0NjdkNDY4YTAyZTYwNzhjMmIzMjcKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBNYXIgMjggMTI6NDI6MjkgMjAwOCArMDEwMAoKICAgIG1pY3JvYmxhemU6IGFkZCBFbWFjIGV0aGVybmV0IGRyaXZlcgoKY29tbWl0IDg5YzUzODkxYjE4Y2JhZmQyOWFiODkzMWI0MGUyN2FkMjMxYjYwODUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBNYXIgMjggMTI6NDE6NTYgMjAwOCArMDEwMAoKICAgIG1pY3JvYmxhemU6IGFkZCBFbWFjbGl0ZSBldGhlcm5ldCBkcml2ZXIKCmNvbW1pdCBlNTg0NWUyMTIyNGRiZTJmZTQ3YjExZjFjZGY5NWRlN2Y4NGJlN2NiCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgTWFyIDI4IDExOjA0OjAxIDIwMDggKzAxMDAKCiAgICBtaWNyb2JsYXplOiBNTDQwMSBhbmQgWFVQVjJQIHJlbW92ZSBlbWFjIGFuZCBlbWFjbGl0ZSByZWZlcmVuY2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+Cgpjb21taXQgNmJmM2U5ODJhZWZkYjFkYWY5ZjU0NjJkNDgyYzhmOWQxY2M5MGE1NwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJRnJpIE1hciAyOCAxMDo1OTozMiAyMDA4ICswMTAwCgogICAgbWljcm9ibGF6ZTogcmVtb3ZlIG9sZCBzZXR0aW5nIGZvciBlbWFjIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KCmNvbW1pdCBjZDJiNzVlZmI5Y2MwMzdjNzRlY2VlOWIzNTg2ZjliZjllMWQ0ZTU3CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgTWFyIDI4IDEwOjU4OjE1IDIwMDggKzAxMDAKCiAgICBtaWNyb2JsYXplOiBDbGVhbiBNYWtlZmlsZSBmcm9tIGFuY2llbnQgZW1hYyBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+Cgpjb21taXQgYWI2OGY5MjFkOWM3NDE4MzBmNzIxYzNkODc5YzEzYTBjNTU5NzE4MwpBdXRob3I6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KRGF0ZToJRnJpIE1hciAyOCAxMDoyMDo0MyAyMDA4ICswMTAwCgogICAgU1BBUkMvTEVPTjI6IGFkZGVkIHN1cHBvcnQgZm9yIEdhaXNsZXIgc2ltdWxhdG9yIEdSU0lNL1RTSU0gZm9yIFNQQVJDL0xFT04yIHRhcmdldHMuIFNlZSB3d3cuZ2Fpc2xlci5jb20gZm9yIGluZm9ybWF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KCmNvbW1pdCA2ZWQ4YTQzYTE5YmIwMjc1NTAxYmMyODYwMDdkYWFmYTkyMzU1MmNmCkF1dGhvcjogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgpEYXRlOglXZWQgTWFyIDI2IDIzOjM4OjQ4IDIwMDggKzAxMDAKCiAgICBTUEFSQy9MRU9OMzogYWRkZWQgc3VwcG9ydCBmb3IgR1ItQ1BDSS1BWDIwMDAgRlBHQSBBWCBib2FyZC4gVGhlIEZQR0EgaXMgZXhjaGFuZ2VhYmxlIGJ1dCBhIHN0YW5kYXJkIExFT04zIGRlc2lnbiBpcyBhc3N1bWVkLiBTZWUgd3d3LmdhaXNsZXIuY29tIGZvciBpbmZvcm1hdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+Cgpjb21taXQgNjk0MDM4M2Q5ZWMxYmZlMmYxM2UzMzllNmY3MjNlOGQzNGFmMmIxMgpBdXRob3I6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMzozNDo0NyAyMDA4ICswMTAwCgogICAgU1BBUkMvTEVPTjM6IGFkZGVkIHN1cHBvcnQgZm9yIEFsdGVyYSBOSU9TIERldmVsb3BtZW50IGtpdCAoU1RSQVRJWCBJSSBFZGl0aW9uKSB3aXRoIEdSTElCIHRlbXBsYXRlIGRlc2lnbi4gU2VlIHd3dy5nYWlzbGVyLmNvbSBmb3IgaW5mb3JtYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgoKY29tbWl0IDgyM2VkZDhhNjZlZDUwYWY1YWFiYTBjNzk1NjdmNjcwNjFlNGQ3OWEKQXV0aG9yOiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+CkRhdGU6CUZyaSBNYXIgMjggMTA6MDY6NTIgMjAwOCArMDEwMAoKICAgIFNQQVJDL0xFT04zOiBhZGRlZCBzdXBwb3J0IGZvciBHYWlzbGVyIEdSU0lNL1RTSU0yIFNQQVJDL0xFT04zIHNpbXVsYXRvcm4uIFNlZSB3d3cuZ2Fpc2xlci5jb20gZm9yIGluZm9ybWF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KCmNvbW1pdCA3MWQ3ZTRjMDQ4OWU1ZWQ4ZmM2OTM4MjIzNmFhYTJhMWU1MTBjMTM1CkF1dGhvcjogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgpEYXRlOglXZWQgTWFyIDI2IDIzOjI2OjQ4IDIwMDggKzAxMDAKCiAgICBTUEFSQy9MRU9OMzogYWRkZWQgc3VwcG9ydCBmb3IgR1ItWEMzUy0xNTAwIGJvYXJkIHdpdGggR1JMSUIgdGVtcGxhdGUgZGVzaWduLiBTZWUgd3d3LmdhaXNsZXIuY29tIGZvciBib2FyZCBpbmZvcm1hdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+Cgpjb21taXQgYjMzMDk5MGMyZjM2ZWU0YThiYjMxODM2MGUxYzhiYTk2NTI2OWFiNgpBdXRob3I6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KRGF0ZToJRnJpIE1hciAyOCAxMDowMDozMyAyMDA4ICswMTAwCgogICAgU1BBUkM6IEFkZGVkIHN1cHBvcnQgZm9yIFNQQVJDIExFT04yIFNPQyBQcm9jZXNzb3IuCgogICAgU2lnbmVkLW9mZi1ieTogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgoKY29tbWl0IDJhMmZhNzk3ZTYzYjFlM2NkNGQ1NzAzMThjYTVmYmY4NzIzZWY1M2EKQXV0aG9yOiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+CkRhdGU6CVdlZCBNYXIgMjYgMjM6MDA6MzggMjAwOCArMDEwMAoKICAgIFNQQVJDL0xFT04zOiBBZGRlZCBBTUJBIEJ1cyBQbHVnJlBsYXkgaW5mb3JtYXRpb24gcHJpbnQgY29tbWFuZCAoYW1iYXBwKS4gSXQgY2FuIHByaW50IGF2YWlsYWJsZSBjb3JlcyAodHlwZTogQUhCIE1hc3RlciwgQUhCIFNsYXZlLCBBUEIgU2xhdmUpLCB0aGVpciBhZGRyZXNzIHJhbmdlcywgSVJRIG51bWJlciBhbmQgdmVyc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+Cgpjb21taXQgMWU5YTE2NGUyMjk3NjkzMzAwMmM1ZTRiMGI3OWIwOWZjZWRlOWNkNApBdXRob3I6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMjo1MToyOSAyMDA4ICswMTAwCgogICAgU1BBUkM6IEFkZGVkIHN1cHBvcnQgZm9yIFNQQVJDIExFT04zIFNPQyBwcm9jZXNzb3IuCgogICAgU2lnbmVkLW9mZi1ieTogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgoKY29tbWl0IGJmM2Q4YjMxMTY5NTQ2ZmNkZGI0NzM3MzkxZTE4OTNmYjEyZDAzM2EKQXV0aG9yOiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+CkRhdGU6CUZyaSBNYXIgMjggMDg6Mjk6MjYgMjAwOCArMDEwMAoKICAgIFNQQVJDOiBhZGRlZCBTUEFSQyBzdXBwb3J0IGZvciBuZXcgdWltYWdlIGluIGNvbW1vbiBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KCmNvbW1pdCAwMGFiMzJjODU0MDVhNGZlNjVmZDQxMjgyNDMwODYyMTBmYzkwYTIxCkF1dGhvcjogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgpEYXRlOglXZWQgTWFyIDI2IDIyOjM2OjAzIDIwMDggKzAxMDAKCiAgICBTUEFSQzogYWRkZWQgU1BBUkMgYm9hcmQgaW5mb3JtYXRpb24gdG8gdGhlIGNvbW1hbmQgYmRpbmZvLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KCmNvbW1pdCBjMmYwMmRhMjFhM2YzN2YwODc4NTU0ZWViYzc4NWUwNGZkYzRlMTI4CkF1dGhvcjogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgpEYXRlOglGcmkgTWFyIDI4IDA5OjQ3OjAwIDIwMDggKzAxMDAKCiAgICBTUEFSQzogQWRkZWQgZ2VuZXJpYyBzdXBwb3J0IGZvciBTUEFSQyBhcmNoaXRlY3R1cmUuCgogICAgU2lnbmVkLW9mZi1ieTogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgoKY29tbWl0IGU1NGVjMGYwMTY4MDNlNGQ5NTI0ZmY3MWY3OTcxYmRhMGM1MWIyODcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBBcHIgMyAxNDo1MDozNCAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBGaXggNHh4IGVuZXQgZHJpdmVyIHRvIHN1cHBvcnQgNDYwR1QgRU1BQzIrMwoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBwcm9ibGVtIHdpdGggdGhlIFJHTUlJIHNldHVwIG9mIHRoZSA0NjBHVC4gVGhlIDQ2MEdUCiAgICBoYXMgMiBSR01JSSBpbnN0YW5jZXMgYW5kIHdlIG5lZWQgdG8gY29uZmlndXJlIHRoZSAybmQgUkdNSUkgaW5zdGFuY2UKICAgIGZvciB0aGUgRU1BQzIrMyBjaGFubmVscy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzJhNTQ1Y2UzM2IyNmQ4MDMzN2Y4MGI1MzM4Mjg4MzkyNDlmYjFjOQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVdlZCBBcHIgMiAwODowMzo1NiAyMDA4ICswMjAwCgogICAgTVBDOHh4OiBGaXggbGliZmR0IHN1cHBvcnQgaW50cm9kdWNlZCBpbiBjb21taXQgNzdmZjdiNzQKCiAgICBmZHQuYzogSW4gZnVuY3Rpb24gJ2Z0X2NwdV9zZXR1cCc6CiAgICBmZHQuYzozMzogd2FybmluZzogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2RvX2ZpeHVwX2J5X3Byb3BfdTMyJwogICAgZmR0LmM6Mzk6IHdhcm5pbmc6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdkb19maXh1cF9ieV9jb21wYXRfdTMyJwogICAgZmR0LmM6NDM6IHdhcm5pbmc6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdmZHRfZml4dXBfZXRoZXJuZXQnCiAgICBmZHQuYzo0NTogd2FybmluZzogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2ZkdF9maXh1cF9tZW1vcnknCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA0YWJkODQ0ZDhlYjEwODczNmUxY2Y4ZmJmM2RiZjYxZjJkNWZjMTFiCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTWFyIDMxIDIwOjQ1OjU2IDIwMDggLTA1MDAKCiAgICBGaXggZmR0IHNldCBjb21tYW5kIHRvIGNvbmZvcm0gdG8gZHRzIHNwZWMKCiAgICBUaGUgZmR0IHNldCBjb21tYW5kIHdhcyB0cmVhdGluZyBwcm9wZXJ0aWVzIHNwZWNpZmllZCBhcyA8MDA+IGFuZCA8MDAxMT4KICAgIGFzIGJ5dGUgc3RyZWFtcywgcmF0aGVyIHRoYW4gYXMgYW4gYXJyYXkgb2YgY2VsbHMuCUFzIHdlIGFscmVhZHkgaGF2ZQogICAgc3ludGF4IGZvciBleHByZXNzaW5nIHRoZSBkZXNpcmUgZm9yIGEgc3RyZWFtIG9mIGJ5dGVzIChbIHh4IHh4IC4uLl0pLAogICAgd2Ugc2hvdWxkIHVzZSB0aGUgPD4gc3ludGF4IHRvIGRlc2NyaWJlIGFycmF5cyBvZiBjZWxscywgd2hpY2ggYXJlIGFsd2F5cwogICAgMzItYml0cyBwZXIgZWxlbWVudC4gIElmIHdlIGltYWdpbmUgdGhpcyBsaWtlbHkgKElNSE8pIHNjZW5hcmlvOgoKICAgID4gZmR0IHNldCAvZXRoZXJuZXQtcGh5QDEgcmVnIDwxPgoKICAgIFdpdGggdGhlIG9sZCBjb2RlLCB0aGlzIHdvdWxkIGNyZWF0ZSBhIGJhZCBmZHQsIHNpbmNlIHRoZSByZWcgY2VsbCB3b3VsZCBiZQogICAgbWFkZSB0byBiZSBvbmUgYnl0ZSBpbiBsZW5ndGguICBCdXQgdGhlIGNlbGwgbXVzdCBiZSA0IGJ5dGVzLCBzbyB0aGlzIHdvdWxkCiAgICBicmVhayBteXN0ZXJpb3VzbHkuCgogICAgQWxzbywgdGhlIGR0cyBzcGVjIGNhbGxzIGZvciBjb25zdGFudHMgaW5zaWRlIHRoZSBhbmdsZSBicmFja2V0cyAoPD4pCiAgICB0byBjb25mb3JtIHRvIEMgY29uc3RhbnQgc3RhbmRhcmRzIGFzIHRoZXkgcGVydGFpbiB0byBiYXNlLgogICAgVGFrZSB0aGlzIHNjZW5hcmlvOgoKICAgID4gZmR0IHNldCAvZXRoZXJuZXRAZjAwIHJlZyA8MHhlMjUwMDAwXCAweDEwMDA+CgogICAgVGhlIG9sZCBmZHQgY29tbWFuZCB3b3VsZCBjb21wbGFpbiB0aGF0IGl0IGNvdWxkbid0IHBhcnNlIHRoYXQuICBPciwgaWYgeW91CiAgICB3YW50ZWQgdG8gc3BlY2lmeSB0aGF0IGEgY2VydGFpbiBjbG9jayByYW4gYXQgMzMgTUh6LCB5b3UnZCBiZSByZXF1aXJlZCB0bwogICAgZG8gdGhpczoKCiAgICA+IGZkdCBzZXQgL215ZGV2IGNsb2NrIDwxZjc4YTQwPgoKICAgIFdoZXJlYXMgdGhlIG5ldyBjb2RlIHdpbGwgYWNjZXB0IGRlY2ltYWwgbnVtYmVycy4KCiAgICBXaGlsZSBJIHdhcyBpbiB0aGVyZSwgSSBleHRlbmRlZCB0aGUgZmR0IGNvbW1hbmQgcGFyc2VyIHRvIGhhbmRsZSBwcm9wZXJ0eQogICAgc3RyaW5ncyB3aGljaCBhcmUgc3BsaXQgYWNyb3NzIG11bHRpcGxlIGFyZ3VtZW50czoKCiAgICA+IGZkdCBzZXQgL2V0aGVybmV0QGYwMCBpbnRlcnJ1cHRzIDwgMzMgMiAzNCAyIDM2IDIgPgogICAgPiBmZHQgcCAvZXRoZXJuZXRAZjAwCiAgICBldGhlcm5ldEBmMDAgewoJaW50ZXJydXB0cyA9IDwweDIxIDB4MiAweDIyIDB4MiAweDI0IDB4Mj47CiAgICB9OwoKICAgIExhc3RseSwgdGhlIGZkdCBwcmludCBjb2RlIHdhcyByZWFycmFuZ2VkIHNsaWdodGx5IHRvIHByaW50IGFycmF5cyBvZiBjZWxscwogICAgaWYgdGhlIGxlbmd0aCBvZiB0aGUgcHJvcGVydHkgaXMgYSBtdWx0aXBsZSBvZiA0IGJ5dGVzLCBhbmQgdG8gbm90IHByaW50CiAgICBsZWFkaW5nIHplcm9zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxYzI5MjZhYmRkN2RiODkyOTZhOGNjN2YyMjRkZDlkNWQ0ZTM3YTU2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgQXByIDIgMDg6Mzk6MzMgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQ2FueW9ubGFuZHM6IEluaXQgU0FUQS9QQ0llIHBvcnQgY29ycmVjdGx5CgogICAgQ2FueW9ubGFuZHMgKDQ2MEVYKSBzaGFyZXMgdGhlIGZpcnN0IFBDSWUgaW50ZXJmYWNlIHdpdGggdGhlIFNvQyBTQVRBCiAgICBpbnRlcmZhY2UuIFRoaXMgdXNhZ2UgY2FuIGJlIGNvbmZpZ3VyZWQgd2l0aCB0aGUganVtcGVyIEo2LiBUaGlzIHBhdGNoCiAgICBjb3JyZWN0bHkgY29uZmlndXJlcyB0aGUgU0FUQS9QQ0llIFBIWSBmb3IgU0FUQSB1c2FnZSB3aGVuIHRoaXMganVtcGVyCiAgICBpcyBpbnN0YWxsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZmZTI5NDZmMTk4NDgxMjU0YTZlZTk2MDBkNzQ1NmI4MzE2YTQwODMKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWFyIDI4IDE3OjM3OjQ5IDIwMDggLTA1MDAKCiAgICByZW1vdmUgcmVtYWluaW5nIENPTkZJR19PRl9IQVNfe1VCT09UX0VOVixCRF9UfSBjb2RlCgogICAgZmluaXNoIG9mZiB3aGF0IGNvbW1pdCA0M2RkZDljODIwZmVjNDQ4MTYxODhmNTMzNDZiNDY0ZTIwYjMxNDJkLAogICAgIlJlbW92ZSBkZXByZWNhdGVkIENPTkZJR19PRl9IQVNfVUJPT1RfRU5WIGFuZCBDT05GSUdfT0ZfSEFTX0JEX1QiCiAgICBzdGFydGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjU4NzNmMTczMmI5MmEyNTY5MGUxNTEzYjkwZGZiMGQ2NDRmNjY5NwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVR1ZSBBcHIgMSAwNzozMDo1MSAyMDA4ICswMjAwCgogICAgZGF0YWZsYXNoOiBNb3ZlIENPTkZJR19IQVNfREFUQUZMQVNIIHRvIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAyZDkzNGVhNTFmMjc2NTIyYjUzMmY4NzBhODIwZTg0NGZmNDgwYjViCkF1dGhvcjogVG9yIEtyaWxsIDx0b3JAZXhjaXRvLmNvbT4KRGF0ZToJRnJpIE1hciAyOCAxNToyOTo0NSAyMDA4ICswMTAwCgogICAgQWRkIFZpdGVzc2UgODYwMSBzdXBwb3J0IHRvIFRTRUMgZHJpdmVyCgogICAgQWRkIHBoeV9pbmZvIGZvciBWaXRlc3NlIFZTQzg2MDEuCiAgICBBZGQgY29uZmlnIG9wdGlvbiwgQ0ZHX1ZTQzg2MDFfU0tFV0ZJWCwgdG8gZW5hYmxlIFJHTUlJIHNrZXcgdGltaW5nIGNvbXBlbnNhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUb3IgS3JpbGwgPHRvckBleGNpdG8uY29tPgogICAgUmV2aWV3ZWQtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDNlYWM2NDAyYTUwOGIwZjY4YTIxY2M5Y2JjMmNjNDkzNDdkZTBjMzEKQXV0aG9yOiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+CkRhdGU6CU1vbiBNYXIgMzEgMTQ6MjU6MDAgMjAwOCArMDAwMAoKICAgIFNQQVJDOiBhZGRlZCBTTUM5MTExMSBkcml2ZXIgaW4gYW5kIG91dCBtYWNyb3MgZm9yIExFT04gcHJvY2Vzc29ycy4KCiAgICBUaGlzIHBhdGNoIG1ha2VzIFNQQVJDL0xFT04gcHJvY2Vzc29ycyBhYmxlIHRvIHJlYWQgYW5kIHdyaXRlCiAgICB0byB0aGUgU01DOTExMTEgY2hpcCB1c2luZyB0aGUgY2hpcCBleHRlcm5hbCBJL08gYnVzIG9mIHRoZSBtZW1vcnkKICAgIGNvbnRyb2xsZXIuIFRoaXMgcGF0Y2hzIGRlZmluZXMgdGhlIHN0YW5kYXJkIGluIGFuZCBvdXQgbWFjcm9zCiAgICBleHBlY3RlZCBieSB0aGUgU01DOTExMSBkcml2ZXIuCgogICAgVG8gYWNjZXNzIHRoYXQgSS9PIGJ1cyBvbmUgbXVzdCBzZXQgdXAgdGhlIG1lbW9yeSBjb250cm9sbGVyCiAgICAoTUNUUkwgb3IgRlRNQ1RSTCkgY29ycmVjdGx5LiBJdCBpcyBhc3N1bWVkIHRoYXQgdGhlIHVzZXIgc2V0cwogICAgdXAgdGhpcyBjb3JyZWN0bHkgd2hlbiB0aGUgb3RoZXIgTUNUUkwgcGFyYW1ldGVycyBhcmUgc2V0IHVwLiBJdAogICAgY2FuIGJlIHNldCB1cCBmcm9tIHRoZSBib2FyZCBjb25maWd1cmF0aW9uIGhlYWRlciBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhbmllbCBIZWxsc3Ryb20gPGRhbmllbEBnYWlzbGVyLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgM2NhN2M1NThlYmEzNjMzMjU1NmJjNDcwZDQ1ZTJmNWQ0MmJkMGNhNgpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVdlZCBNYXIgMjYgMTg6NTI6MzQgMjAwOCArMDEwMAoKICAgIEFkZCBtYWludGFpbmVyc2hpcCBpbmZvcm1hdGlvbiBmb3IgQVQ5MUNBUDlBREsgYW5kIEFUOTFTQU05MjYwRUsgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KCmNvbW1pdCA0ZTAzZGRlODRkZDJjOTFlMzI3Y2RjMjNhZTExOWQ0MzI1NTlhN2EzCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJTW9uIE1hciAzMSAyMTozMTowNCAyMDA4ICswMjAwCgogICAgQVQ5MVNBTTkyNjBFSzogTW92ZSBDT05GSUdfQ01EX05BTkQgdG8gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDAxNzZkNDNlNzU5YTZlMDBjYWNjODVlZmYyNmZkNjBmNzRiNGY2YjcKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglXZWQgTWFyIDI2IDE4OjUyOjMzIDIwMDggKzAxMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgQVQ5MVNBTTkyNjBFSwoKICAgIFN1cHBvcnQgZm9yIGJvb3RpbmcgZnJvbSBpbnRlcm5hbCBEYXRhRmxhc2gsIGV4dGVybmFsIERhdGFGbGFzaCBjYXJkCiAgICBvciBOQU5EIGZsYXNoIGlzIGF2YWlsYWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IDE3NjJmMTNiNGFhYjg4YjY4NWIxNzIyZjE3ZGFkYTI0Nzk0NTYyNGIKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglNb24gTWFyIDMxIDIxOjIwOjQ5IDIwMDggKzAyMDAKCiAgICBBVDkxU0FNOTogTW92ZSBDT05GSUdfSEFTX0RBVEFGTEFTSCB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNzYxNzEyMTg4YjM1MzQ5NGRlZmIyYjY0NDQ5MWZmNzNkMGRhYWE2ZgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBNYXIgMzEgMjE6MTI6MTcgMjAwOCArMDIwMAoKICAgIEFUOTFDQVA5QURLOiBNb3ZlIENPTkZJR19DTURfTkFORCB0byBNYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOTgzYzFkYjA0YzFkZDBmOTJlMDJmMDZkMjlmMGM2NWEzZDlhMjY4NwpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVdlZCBNYXIgMjYgMjA6NTI6MzIgMjAwOCArMDEwMAoKICAgIFBvcnQgQVQ5MUNBUDkgdG8gdGhlIG5ldyBoZWFkZXJzCgogICAgQWRhcHQgdGhlIGV4aXN0aW5nIEFUOTFDQVA5IGNvZGUgdG8gdGhlIG5ldyBoZWFkZXJzIGFuZCBBUElzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+Cgpjb21taXQgMTc3ZThhNWFjODFiYmM1MzFhMWQ1NGFiZGI0N2YyODYwMjY2YzNhYQpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVdlZCBNYXIgMjYgMTk6NTI6MzEgMjAwOCArMDEwMAoKICAgIEZpbmlzaCBoZWFkZXIgZmlsZXMgcmV3b3JraW5nCgogICAgUmVwbGFjZSBBVDkxQ0FQOS5oIGZpbGUgd2l0aCBzZXZlcmFsIHNwbGl0dGVkIGhlYWRlciBmaWxlcyBjb21pbmcKICAgIGZyb20gdGhlIExpbnV4IGtlcm5lbC4KCiAgICBUaGlzIGlzIHBhcnQgMiBvZiB0aGUgcmVwbGFjZW1lbnQ6IG1vcmUgaGVhZGVyIGltcG9ydHMgYW5kIGVkaXRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+Cgpjb21taXQgNmQxZGJiYmY5ZmRmNzI3Mzg0MDAyZTU1M2U2MTVjMTVkOGI5NjdmNApBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVdlZCBNYXIgMjYgMTk6NTI6MzAgMjAwOCArMDEwMAoKICAgIEltcG9ydCBzZXZlcmFsIGhlYWRlciBmaWxlcyBmcm9tIExpbnV4CgogICAgUmVwbGFjZSBBVDkxQ0FQOS5oIGZpbGUgd2l0aCBzZXZlcmFsIHNwbGl0dGVkIGhlYWRlciBmaWxlcyBjb21pbmcKICAgIGZyb20gdGhlIExpbnV4IGtlcm5lbC4KCiAgICBUaGlzIGlzIHBhcnQgMSBvZiB0aGUgcmVwbGFjZW1lbnQ6IHByaXN0aW5lIGhlYWRlciBmaWxlcyBpbXBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KCmNvbW1pdCBhOGE3OGYyZDk5ZGMxYmQzMGRjMzU5NWRhMTE4NTM5YjUwNmM2MTE4CkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJV2VkIE1hciAyNiAyMDo1MjoyOCAyMDA4ICswMTAwCgogICAgTW92ZSBhdDkxY2FwOSBzcGVjaWZpYyBmaWxlcyB0byBhdDkxc2FtOSBkaXJlY3RvcnkKCiAgICBBVDkxQ0FQOSBhbmQgQVQ5MVNBTTkgU29DcyBhcmUgdmVyeSBjbG9zZSBoYXJkd2FyZSB3aXNlLCBzbyBhCiAgICBjb21tb24gaW5mcmFzdHJ1Y3R1cmUgY2FuIGJlIHVzZWQuIExldCB0aGlzIGluZnJhc3RydWN0dXJlIGJlCiAgICBuYW1lZCBhZnRlciB0aGUgQVQ5MVNBTTkgZmFtaWx5LCBhbmQgbW92ZSB0aGUgZXhpc3RpbmcgQVQ5MUNBUDkKICAgIGZpbGVzIHRvIHRoZSBuZXcgcGxhY2UuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KCmNvbW1pdCA2MTEwNmE1NjU4NzBmZjUwM2Y5MmIyNTFiOTRiZDdhZmVmODg5YTA0CkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJV2VkIE1hciAyNiAyMTo1MjoyNyAyMDA4ICswMTAwCgogICAgVXNlIHRpbWVyX2luaXQoKSBpbnN0ZWFkIG9mIGJvYXJkIHN1cHBsaWVkIGludGVycnVwdF9pbml0KCkKCiAgICBUaGUgdGltZXIgb24gQVQ5MUNBUDkvQVQ5MVNBTTkgaXMgc3VwcGxpZWQgYnkgdGhlIFNvQywgYW5kIG5vdCBieQogICAgdGhlIGJvYXJkLCBzbyB1c2UgdGltZXJfaW5pdCgpIGluc3RlYWQgb2YgaW50ZXJydXB0X2luaXQoKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IDU2MDRlMjE3OGM1MjE4ZmJmZGJhMmU0MjkzY2E3NjUyZTgyOWFjMjUKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglXZWQgTWFyIDI2IDIxOjUyOjM2IDIwMDggKzAxMDAKCiAgICBDbGVhbnVwIERhdGFGbGFzaCBwYXJ0aXRpb24gaGFuZGxpbmcKCiAgICBEYXRhRmxhc2ggcGFydGl0aW9uIGluZm9ybWF0aW9uIGhhcyBiZWNvbWUgYSBtZXNzLiBUaGlzIHBhdGNoCiAgICBkZWZpbmVzIGEgc2luZ2xlIHBhcnRpdGlvbiBzY2hlbWUgZm9yIEF0bWVsIERhdGFGbGFzaGVzLiBUaGlzIHBhcnRpdGlvbgogICAgc2NoZW1lIHdpbGwgYmUgdXNlZCBieSBhbGwgQVQ5MUNBUDkgYW5kIEFUOTFTQU05IGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IDliNDY0MzJmYzY1Y2UwZjA4MjZiMzJlNGYxNWMxNWIzM2NjYjhkNDIKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWFyIDI4IDA4OjQ3OjQ1IDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogRml4IGFsaWdubWVudCBpc3N1ZSBhZnRlciBDT05GSUdfSURFTlRfU1RSSU5HIGluIHN0YXJ0LlMKCiAgICBXaGVuIHRoZSB2ZXJzaW9uX3N0cmluZyBmdW5jdGlvbiBpbiBzdGFydC5TIGlzIG5vdCA0LWJ5dGUgYWxpZ24sCiAgICBpdCB3aWxsIGNhdXNlIHRoZSBjb21waWxlciBnZW5lcmF0ZXMgInVuYWxpZ25lZCBvcGNvZGVzIGRldGVjdGVkCiAgICBpbiBleGVjdXRhYmxlIHNlZ21lbnQiLiBUaGlzIGlzc3VlIGFmZmVjdHMgYWxsIENvbGRGaXJlIENQVXMuCiAgICBCeSBhZGRpbmcgLmFsaWduIDQgYWZ0ZXIgQ09ORklHX0lERU5UX1NUUklORywgaXQgd2lsbCBwYWQgMCdzIGlmCiAgICBpdCBpcyBub3QgYWxpZ25lZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJhZTYxZWVmZTE1YjRkNDU0MDYwYTcxNDBlNDlhZTU4MzIyYmU4MDMKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWFyIDI1IDE1OjQxOjE1IDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogQWRkIGRzcGkgYW5kIHNlcmlhbCBmbGFzaCBzdXBwb3J0IGZvciBNQ0Y1NDQ1eAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDhlYWQ3YTdhOTIyZmNlYWY0OTRlMzUyYWJmYWI4MjE2YTQxYjQxNwpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXIgMTggMTc6Mzc6MDEgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBSZW1vdmUgUjUyMDAgYm9hcmQKCiAgICBUaGlzIGJvYXJkIG5ldmVyIHdlbnQgaW50byBwcm9kdWN0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogWmFjaGFyeSBQLiBMYW5kYXUgPHphY2hhcnkubGFuZGF1QGxhYnh0ZWNobm9sb2dpZXMuY29tPgogICAgQWNrZWQtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTQ1YzhlMGE3Y2QzY2E5ZDM4NDY2NjhmNjliMGQyMDEyNTBhYmVhOApBdXRob3I6IE1hdHRoZXcgRmV0dGtlIDxbbWF0dGhldy5mZXR0a2VAZ21haWwuY29tXT4KRGF0ZToJVGh1IEphbiAyNCAxNDowMjozMiAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IEFkZGVkIE01Mjc1RVZCIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhldyBGZXR0a2UgPG1mZXR0a2VAdmlkZW9uLWNlbnRyYWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNzFkOWQ5MWEyY2Q5YzMwYjJiNjM2OWYxNWMxYTQ2YzExNTM3YzJiCkF1dGhvcjogTWF0dGhldyBGZXR0a2UgPFttYXR0aGV3LmZldHRrZUBnbWFpbC5jb21dPgpEYXRlOglNb24gRmViIDQgMTU6Mzg6MjAgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBBZGRlZCBNQ0Y1Mjc1IGNwdSBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgRmV0dGtlIDxtZmV0dGtlQHZpZGVvbi1jZW50cmFsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDRlNWI5ZWRhYjA3N2FiYTZlOWI4NDlhZmE0YjdmYmQ4ZmQ3YjAyYgpBdXRob3I6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBNYXIgMTcgMTI6MTQ6MTEgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBEZWZpbmUgYm9vdGRlbGF5IGluIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgTTUyMjc3RVZCCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dCBXYWRlbCA8TWF0dC5XYWRkZWxAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc3ODc4ZjE2Y2VkZWUxNzE2MWZmMjMzNjk5MDk3MGZmZmM2Y2VhMzUKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTWFyIDE3IDEyOjA5OjA3IDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogRml4IHNlY29uZCBtZW1vcnkgQ2hpcHNlbGVjdCBmb3IgTTU0NzVFVkIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQzZDYwNjQyMzk1YTU1MDk1NmNiMjFkMjg3YzhjZmE1NjM5MTNkMjgKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWFyIDEzIDE0OjI2OjMyIDIwMDggLTA1MDAKCiAgICBDb2xkRmlyZTogVXBkYXRlIGNvcnJlY3QgRkxBU0hCQVIgYW5kIFJBTUJBUjEgZm9yIE1DRjUyODIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGViMTRlYmU4MTNhMGNiNWQ0NzkwNTIyOGRhNDQ2YTVhZDY5MjQ3M2IKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJU3VuIE1hciAzMCAyMDozMzowNCAyMDA4IC0wNTAwCgogICAgcHBjNHh4OiBBZGQgQ0ZHX01FTV9UT1BfSElERSB0byBEZW5hbGkgU1BELWJhc2VkIFNEUkFNIHNldHVwCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgMDJlMzg5MjAyMTExMmYyMTA2N2Q5ZWQxZDA0YWU0MTgyNzI1YmE1MgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE1hciAzMSAxMjoyMDo0OCAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBTbWFsbCB3aGl0ZXNwYWNlIGZpeCBvZiBlc2QgcGF0Y2hlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwMzQzOTRhYmI1MjQ3ODUwNDdjODE1ZjAwZGRlOGNkYmRjMTU5M2M1CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVN1biBNYXIgMzAgMTg6NTI6NDQgMjAwOCArMDIwMAoKICAgIHBwYzR4eDogQ2xlYW51cCBQTUM0NDAgYm9hcmQgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGE2Y2M2YzM3MTg4ZDg1YzI1ZDE2N2E0NTE1ZGE4NmY0OGQ5YTU4M2UKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJU3VuIE1hciAzMCAxODo1MjowNiAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBBZGQgcHRtIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZvciBQTUM0NDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIHB0bTFsYSwgcHRtMW1zLCBwdG0ybGEgYW5kIHB0bTJtcwogICAgZW52aXJvbm1lbnQgdmFyaWFibGVzLgoKICAgIENsZWFudXAgcGNpX3RhcmdldF9pbml0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDdjOTFmNTFhMmZlMjk2OTA5MTQ3ZjE2NDZhMTQxMjcyOWRkMTBiMWQKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJU3VuIE1hciAzMCAxODowMToxNSAyMDA4ICswMjAwCgogICAgcHBjNHh4OiBNaW5vciB1cGRhdGVzIGZvciBEVTQ0MCBib2FyZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBkNWJmZmViODY4ZDZiNGQ0NjJmNTU4ZGFjNDMwMTEwMjdiNjY0NGI3CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUdWUgRmViIDE5IDAwOjU0OjIwIDIwMDggLTA1MDAKCiAgICBCbGFja2ZpbjogY2xlYW51cCBhbmQgb3ZlcmhhdWwgY29tbW9uIGJvYXJkIGluaXQgZnVuY3Rpb25zCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGI4NmIzNDE2Zjg3NDM1OGFjYWYwNzUxOWU3NjIwY2RiMjE0NWY3NWIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBGZWIgMTkgMDA6NTA6NTggMjAwOCAtMDUwMAoKICAgIEJsYWNrZmluOiBjbGVhbnVwIGxpYl9ibGFja2Zpbi9jYWNoZS5jCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDkxNzFmYzgxNzIyYzIwZmRiNWE4MjlhNThiMTdjOWVhYWRkNWZiNDQKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVN1biBNYXIgMzAgMTU6NDY6MTMgMjAwOCAtMDQwMAoKICAgIEJsYWNrZmluOiB1bmlmeSBjcHUgYW5kIGJvb3QgbW9kZXMKCiAgICBBbGwgb2YgdGhlIGR1cGxpY2F0ZWQgY29kZSBmb3IgQmxhY2tmaW4gcHJvY2Vzc29ycyBhbmQgYm9vdCBtb2RlcyBoYXZlIGJlZW4KICAgIHVuaWZpZWQuICBBZnRlciBhbGwsIHRoZSBjb3JlIGlzIHRoZSBzYW1lIGZvciBhbGwgcHJvY2Vzc29ycywganVzdCB0aGUKICAgIHBlcmlwaGVyYWwgc2V0IGRpZmZlcnMgKHdoaWNoIGdldHMgaGFuZGxlZCBpbiB0aGUgZHJpdmVycykuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDg4MGNjNDM4MWVhODM2MDI0OGNkZGNkZjg3YTY0NTY2NzQ1YTU3MjQKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglXZWQgTWFyIDI2IDIyOjUyOjM1IDIwMDggKzAxMDAKCiAgICBGaXggQ0ZHX05PX0ZMQVNIIGNvbXBpbGF0aW9uLgoKICAgIE1hbnkgQXRtZWwgYm9hcmRzIGhhdmUgbm8gInJlYWwiIChOT1IpIGZsYXNoIG9uIGJvYXJkLCBhbmQgcmVseSBvbmx5CiAgICBvbiBEYXRhRmxhc2ggYW5kIE5BTkQgbWVtb3JpZXMuIFRoaXMgcGF0Y2ggZW5hYmxlcyBDRkdfTk9fRkxBU0ggdG8KICAgIGJlIHByZXNlbnQgaW4gYSBib2FyZCBjb25maWd1cmF0aW9uIGZpbGUsIHdoaWxlIHN0aWxsIGVuYWJsaW5nIGZsYXNoCiAgICBjb21tYW5kcyBsaWtlICdmbGluZm8nLCAncHJvdGVjdCcsIGV0Yy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IDljZTdlNTNhYmQwMzlkZWNlYTFhZjY3YWVjODFiYmQ1ZGY3YTI1OTMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBGZWIgMTkgMDA6NTg6MTMgMjAwOCAtMDUwMAoKICAgIEJsYWNrZmluOiBCRjUzNy1zdGFtcDogY2xlYW51cCBzcGkgZmxhc2ggZHJpdmVyCgogICAgVGhpcyBwdW50cyB0aGUgb2xkIHNwaSBmbGFzaCBkcml2ZXIgZm9yIGEgbmV3L2dlbmVyYWxpemVkIG9uZSB1bnRpbCB0aGUKICAgIGNvbW1vbiBvbmUgY2FuIGJlIGludGVncmF0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGJiOGUzY2YyNWJjMGIwNDkzNmMwYzFhMDc1OTg1ZGQ4NzAwYTI0NGIKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglTdW4gTWFyIDMwIDExOjM0OjM0IDIwMDggLTA0MDAKCiAgICBGaXggbWFjcm8gdHlwbyBpbiBjb21tb24vY21kX21paS5jCgogICAgVGhpcyB0eXBvIHdhcyBpbnRyb2R1Y2VkIGluIGNvbW1pdCAyMzNhOGJjZDk0OTk3ZjNmMzQ1ODMzYTNiODJlODM2MjIyZjJhMjA2LiAgSQogICAgYWN0dWFsbHkgYXBwbGllZCB0aGUgd3JvbmcgcGF0Y2guCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBmMWI5ODVmMmQ3MjRjY2FhNGQzZGVmMDc5MTdmMGNhYWYxOGZhNzdkCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE1hciAzMCAxNjozOTo1MyAyMDA4ICswMjAwCgogICAgdXNlIGNvcnJlY3QgYXQ5MXJtOTIwMCByZWdpc3RlciBuYW1lIGluIG01MDFzayBib2FyZAoKICAgIFRoaXMgZml4ZXMgYSBuYW1pbmcgYnVnIGZvciBhdDkxcm05MjAwIGxvd2xldmVsIGluaXQgY29kZToKICAgIE5PUiBib290IGZsYXNoIGlzIG9uIGNoaXBzZWxlY3QgMCwgbm90IGNoaXBzZWxlY3QgMi4gIFRoaXMKICAgIG1ha2VzIGNvZGUgdXNlIHRoZSByZWdpc3RlciBuYW1lIGZyb20gY2hpcCBkYXRhc2hlZXRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNDgwZWQxZGVhMTAzYTFjOGY0NTkxYWZjNzdkMmRlM2M3ODY4ZDk4MwpBdXRob3I6IERhdmlkIEJyb3duZWxsIDxkYXZpZC1iQHBhY2JlbGwubmV0PgpEYXRlOglGcmkgSmFuIDE4IDEyOjU1OjAwIDIwMDggLTA4MDAKCiAgICB1c2UgY29ycmVjdCBhdDkxcm05MjAwIHJlZ2lzdGVyIG5hbWUKCiAgICBUaGlzIGZpeGVzIGEgbmFtaW5nIGJ1ZyBmb3IgYXQ5MXJtOTIwMCBsb3dsZXZlbCBpbml0IGNvZGU6CiAgICBOT1IgYm9vdCBmbGFzaCBpcyBvbiBjaGlwc2VsZWN0IDAsIG5vdCBjaGlwc2VsZWN0IDIuICBUaGlzCiAgICBtYWtlcyBjb2RlIHVzZSB0aGUgcmVnaXN0ZXIgbmFtZSBmcm9tIGNoaXAgZGF0YXNoZWV0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBCcm93bmVsbCA8ZGJyb3duZWxsQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCBhMzU0M2Q2ZGM1MmIwYmE5YzY0MDE2Njg3Y2YzMmQ2MDBiMzFhNDc2CkF1dGhvcjogRGF2aWQgQnJvd25lbGwgPGRhdmlkLWJAcGFjYmVsbC5uZXQ+CkRhdGU6CUZyaSBKYW4gMTggMTI6NDU6NDUgMjAwOCAtMDgwMAoKICAgIGFkZCBtaXNzaW5nIEFSTSBib2FyZHMgdG8gTUFLRUFMTAoKICAgIEFkZCBzb21lIG1pc3NpbmcgQVJNIGJvYXJkcyB0byBNQUtFQUxMLiAgVGhlc2UgYnVpbGQgY29ycmVjdGx5LAogICAgdW5saWtlIHNldmVyYWwgb2YgdGhlIGJvYXJkcyBhbHJlYWR5IGxpc3RlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBCcm93bmVsbCA8ZGJyb3duZWxsQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCAwNjZiZWJkNjM1M2UzM2FmM2FkZWZjMzQwNDU2MDg3MTY5OWU5OTYxCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJU3VuIE1hciAzMCAxMTozNDowOSAyMDA4ICswMTAwCgogICAgQnJhY2tldCBSRUFEX1RJTUVSIG1hY3JvIGluIGNwdS9hcm0xMTM2L29tYXAyNHh4L2ludGVycnVwdHMuYwogICAgdG8gcHJldmVudCBjb21waWxhdGlvbiBlcnJvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgoKY29tbWl0IDdhODM3YjczMTAxNjZhZThmYzhiOGQ2NmQ3ZWYwMWI2MGE4MGY5ZDYKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPFtsZ0BkZW54LmRlXT4KRGF0ZToJU3VuIE1hciAzMCAxMTozMjozMCAyMDA4ICswMTAwCgogICAgU3VwcG9ydCBmb3IgdGhlIE1YMzFBRFMgZXZhbHVhdGlvbiBib2FyZCBmcm9tIEZyZWVzY2FsZQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgTVgzMUFEUyBldmFsdWF0aW9uIGJvYXJkIGZyb20gRnJlZXNjYWxlLAogICAgaW5pdGlhbGl6YXRpb24gY29kZSBpcyBjb3BpZWQgZnJvbSBSZWRCb290IHNvdXJjZXMsIGFsc28gcHJvdmlkZWQgYnkgRnJlZXNjYWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCBjODhhZTIwNTgwYjJiMDE0ODdiNGNkY2M4YjJhMTEzZjU1MWFlZTM2CkF1dGhvcjogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgpEYXRlOglTdW4gTWFyIDMwIDExOjMyOjI3IDIwMDggKzAxMDAKCiAgICBQaHl0ZWMgUGh5Y29yZS1pLk1YMzEgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgUGh5dGVjIFBoeWNvcmUtaS5NWDMxIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IGExNDdlNTZmMDM4NzFiYmE0ZjA1MDU4ZDVlMDRjZTdkZWIwMTBiMDQKQXV0aG9yOiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CkRhdGU6CVN1biBNYXIgMzAgMTE6MzI6MjQgMjAwOCArMDEwMAoKICAgIG14MzEgbGl0ZWtpdCBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBteDMxIGxpdGVraXQgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgZDY2NzRlMGUyYTZhMWYwMzM5NDVmNzg4Mzg1NjYyMTBkM2YyOGM5NQpBdXRob3I6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KRGF0ZToJU3VuIE1hciAzMCAxMTozMjoyMSAyMDA4ICswMTAwCgogICAgYWRkIFNNU0MgTEFOOXgxeCBOZXR3b3JrIGRyaXZlcgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBhIGRyaXZlciBmb3IgdGhlIGZvbGxvd2luZyBzbXNjIG5ldHdvcmsgY29udHJvbGxlcnM6CiAgICBMQU45MTE1CiAgICBMQU45MTE2CiAgICBMQU45MTE3CiAgICBMQU45MjE1CiAgICBMQU45MjE2CiAgICBMQU45MjE3CgogICAgU2lnbmVkLW9mZi1ieTogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDhjODQ2M2NjZTQ0ZDg0OWUzNzc0NDc0OWIzMmQzOGUxZGZiMTJlNTAKQXV0aG9yOiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CkRhdGU6CVN1biBNYXIgMzAgMTE6MzI6MTYgMjAwOCArMDEwMAoKICAgIGFkZCBhbiBpMmMgZHJpdmVyIGZvciBteDMxCgogICAgVGhpcyBwYXRjaCBhZGRzIGFuIGkyYyBkcml2ZXIgZm9yIEZyZWVzY2FsZSBpLk1YIHByb2Nlc3NvcnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTYXNjaGEgSGF1ZXIgPHMuaGF1ZXJAcGVuZ3V0cm9uaXguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgYzk4YjQ3YWQyNGIyZDkxZjQxYzA5YTNkNjJkN2Y3MGFkODRmNGI3ZApBdXRob3I6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KRGF0ZToJU3VuIE1hciAzMCAxMTozMDo0MyAyMDA4ICswMTAwCgogICAgY29yZSBzdXBwb3J0IGZvciBGcmVlc2NhbGUgbXgzMQoKICAgIFRoaXMgcGF0Y2ggYWRkcyB0aGUgY29yZSBzdXBwb3J0IGZvciBGcmVlc2NhbGUgbXgzMQoKICAgIFNpZ25lZC1vZmYtYnk6IFNhc2NoYSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCA4YmY2OWQ4MTc4MjYxOTE4NzkzM2E2MDVmMWE5NWVlMWQwNjk0NzhkCkF1dGhvcjogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgpEYXRlOglTdW4gTWFyIDMwIDExOjI4OjQ2IDIwMDggKzAxMDAKCiAgICBTZXBhcmF0ZSBvbWFwMjR4eCBzcGVjaWZpYyBjb2RlIGZyb20gYXJtMTEzNgoKICAgIE1vdmUgb21hcDI0eHggY29kZSB0byBjcHUvYXJtMTEzNi9vbWFwMjR4eCwgcmVuYW1lIGluY2x1ZGUvYXNtLWFybS9hcmNoLWFybTExMzYgdG8gY3B1L2FybTExMzYvb21hcDI0eHguCgogICAgU2lnbmVkLW9mZi1ieTogU2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPgogICAgU2lnbmVkLW9mZi1ieTogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgoKY29tbWl0IDhjMTZjYjBkM2I5NzFmNDZmYmU3N2MwNzI2NjRjMGYyZGNkNDQ3MWQKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglTdW4gTWFyIDMwIDExOjIzOjA1IDIwMDggKzAxMDAKCiAgICBBZGQgcG1kcmEgaW50byBNQUtFQUxMCgogICAgU2lnbmVkLW9mZi1ieTogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KCmNvbW1pdCBhNTc0YTczODUyYTUyNzc3OTIzNGU3M2UxN2U3NTk3ZmQ4MTI4ODgyCkF1dGhvcjogUGlldGVyIFZvb3J0aHVpanNlbiA8W3BpZXRlci52b29ydGh1aWpzZW5AUHJvZHJpdmUubmxdPgpEYXRlOglTdW4gTWFyIDMwIDExOjIxOjU4IDIwMDggKzAxMDAKCiAgICBBZGRzIHN1cHBvcnQgZm9yIHRoZSBQcm9kcml2ZSBQTURSQSBib2FyZCwgYmFzZWQgb24gYSBETTY0NDEKCiAgICBTaWduZWQtb2ZmLWJ5OiBQaWV0ZXIgVm9vcnRodWlqc2VuIDxwdkBwcm9kcml2ZS5ubD4KCmNvbW1pdCAxMzc3YjU1ODNhNDgwMjFkOTgzZTFmZDU2NWY3ZDQwYzg5ZTg0ZDYzCkF1dGhvcjogUGlldGVyIFZvb3J0aHVpanNlbiA8W3BpZXRlci52b29ydGh1aWpzZW5AUHJvZHJpdmUubmxdPgpEYXRlOglTdW4gTWFyIDMwIDExOjExOjM0IDIwMDggKzAxMDAKCiAgICBSZW1vdmVzIGFsbCBib2FyZCBzcGVjaWZpYyBjb2RlIGZyb20gdGhlIGFyY2guIHBhcnQgZm9yIERNNjQ0eCAoRGFWaW5jaSkgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogUGlldGVyIFZvb3J0aHVpanNlbiA8cHZAcHJvZHJpdmUubmw+Cgpjb21taXQgMTcwNGRjMjA5MTdiNGY3MWUzNzNlMmM4ODg0OTdlZTY2NmQ0MDM4MApBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ21haWwuY29tPgpEYXRlOglTdW4gTWFyIDMwIDExOjA5OjAxIDIwMDggKzAxMDAKCiAgICAtIFJlbW92ZSAqX21hc2tlZCgpIGZ1bmN0aW9ucyBhcyBub3RlZCBieSBXb2xmZ2FuZwogICAgLSBBZGFwdCByZWdpc3RlciBuYW1pbmcgdG8gcmVjZW50IFRJIHNwZWMgKHNwcnVlMjYsIE1hcmNoIDIwMDcpCiAgICAtIEZpeCByZXNldF90aW1lcigpIGhhbmRsaW5nCiAgICAtIEFzIHJlcG9ydGVkIGJ5IFBpZXRlciBbMV0gdGhlIG92ZXJmbG93IGZpeCBpbnRyb2R1Y2VkIGEKICAgIGRlbGF5IG9mIGZhY3RvciAxNiAoZS5nIDIgc2Vjb25kcyBiZWNhbWUgMzIpLiBXaGlsZSB0aGUKICAgIG92ZXJmbG93IGZpeCBpcyBiYXNpY2FsbHkgb2theSwgaXQgbWlzc2VkIHRvIGRpdmlkZSB1ZGVsYXkgYnkKICAgIDE2LCB0b28uIEZpeCB0aGlzLgogICAgWzFdIGh0dHA6Ly9hcnRpY2xlLmdtYW5lLm9yZy9nbWFuZS5jb21wLmJvb3QtbG9hZGVycy51LWJvb3QvMzgxNzkKICAgIC0gUmVtb3ZlIHNvZnR3YXJlIGRpdmlzaW9uIG9mIHRpbWVyIGNvdW50IHZhbHVlIChESVYoeCkKICAgIG1hY3JvKSBhbmQgZG8gaXQgaW4gaGFyZHdhcmUgKFRJTV9DTEtfRElWKS4KICAgIE1hbnkgdGhhbmtzIHRvIFRyb3kgS2lza3kgPHRyb3kua2lza3lAYm91bmRhcnlkZXZpY2VzLmNvbT4KICAgIGFuZCBQaWV0ZXIgVm9vcnRodWlqc2VuIDxwaWV0ZXIudm9vcnRodWlqc2VuQFByb2RyaXZlLm5sPiBmb3IKICAgIHRoZSBoaW50cyAmIHRlc3RpbmchCgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnbWFpbC5jb20+CgogICAgQWNrZWQtYnk6IFBpZXRlciBWb29ydGh1aWpzZW4gPHBpZXRlci52b29ydGh1aWpzZW5AUHJvZHJpdmUubmw+Cgpjb21taXQgYWMzMzE1YzI2ZTE0M2MzMTY4MDc1MGM5YzEzZjAyN2VmYmNjODg3ZQpBdXRob3I6IEFuZHJlIFNjaHdhcnogPGFuZHJlLnNjaHdhcnpAbWF0cml4LXZpc2lvbi5kZT4KRGF0ZToJVGh1IE1hciA2IDE2OjQ1OjQ0IDIwMDggKzAxMDAKCiAgICBuZXcgUEhZIEAgZTEwMDAgLSAybmQgdHJ5CgogICAgQWRkIDgyNTQxRVIgZGV2aWNlIHdpdGggbGF0ZXN0IGludGVncmF0ZWQgSUdQMiBQSFkuCiAgICBJbnRyb2R1Y2VkIENPTkZJR19FMTAwMF9GQUxMQkFDS19NQUMgZm9yIE5JQyBicmluZy11cCB3aXRoIGVtcHR5IGVlcHJvbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZSBTY2h3YXJ6IDxhbmRyZS5zY2h3YXJ6QG1hdHJpeC12aXNpb24uZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGMyYjdkYTU1MjI5M2I1MGM5YzllNDZlZDcxMjY3YjAyYzJkZTllYTgKQXV0aG9yOiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+CkRhdGU6CUZyaSBNYXIgMjggMjA6MjI6NTMgMjAwOCArMDEwMAoKICAgIFNQQVJDL0xFT04zOiBBZGRlZCBHUkVUSCBFdGhlcm5ldCAxMC8xMDAvMTAwMCBkcml2ZXIuCgogICAgR1JFVEggaXMgYW4gRXRoZXJuZXQgMTAvMTAwIG9yIDEwLzEwMC8xMDAwIE1BQyB3aXRoIG91dCB3aXRob3V0CiAgICBhIGRlYnVnIGxpbmsgKEVEQ0wpLiBUaGUgR1JFVEggY29yZSBpcyBkb2N1bWVudGVkIGluIEdSSVAucGRmCiAgICBhdmFpbGFibGUgYXQgd3d3LmdhaXNsZXIuY29tLgoKICAgIElmIHRoZSBHUkVUSCBoYXMgR2lnYUJpdCBzdXBwb3J0IChHQklULCBTY2F0dGVyIGdhdGhlciwgY2hlY2tzdW0KICAgIG9mZmxvYWRpbmcgZXRjLikgY2FuIGJlIGRldGVybWluZWQgYnkgYSBiaXQgaW4gdGhlIGNvbnRyb2wgcmVnaXN0ZXIuCiAgICBUaGUgR0JJVCBNQUMgaXMgc3VwcG9ydGVkIGJ5IG9wZXJhdGluZyBpbiBHUlRFSCAxMC8xMDAgbGVnYWN5IG1vZGUuCgogICAgU2lnbmVkLW9mZi1ieTogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCAyMzNhOGJjZDk0OTk3ZjNmMzQ1ODMzYTNiODJlODM2MjIyZjJhMjA2CkF1dGhvcjogVHNpLUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBNYXIgMTcgMTc6MDg6MjIgMjAwOCAtMDUwMAoKICAgIEFkZCBDT05GSUdfTUlJX0lOSVQgaW4gY21kX21paS5jCgogICAgUHJvdmlkZSBjb21tb24gY29uZmlndXJhdGlvbiBpbiBkb19taWkoKSB0byBleGVjdXRlIG1paV9pbml0KCkKICAgIGZvciBhbGwgY3B1IGFyY2hpdGVjdHVyZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBmNjA1NDc5ZGUyZGViMTFlODM0ZjMxZGZkYjBhZjEwN2M4NmFjZWQ2CkF1dGhvcjogVHNpLUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBNYXIgMTcgMTc6MDg6MTYgMjAwOCAtMDUwMAoKICAgIENvbGRGaXJlOiBGaXggRkVDIHRyYW5zbWl0IGlzc3VlIGZvciBNQ0Y1Mjc1CgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgZDlhMmY0MTZkNmFjNjA1OGNkNzg0NTAzM2FlNGRjMzJlZjFjMDc0NgpBdXRob3I6IEFyYXMgVmFpY2hhcyA8YXJhc3ZAbWFndGVjaC5jb20uYXU+CkRhdGU6CVdlZCBNYXIgMjYgMDk6NDM6NTcgMjAwOCArMTEwMAoKICAgIERIQ1AgcmVxdWVzdCBmaXggZm9yIFdpbmRvd3MgU2VydmVyIDIwMDMKCiAgICBBZGRlZCBvcHRpb24gQ09ORklHX0JPT1RQX0RIQ1BfUkVRVUVTVF9ERUxBWS4gVGhpcyBwcm92aWRlcyBhbiBvcHRpb25hbAogICAgZGVsYXkgYmVmb3JlIHNlbmRpbmcgIkRIQ1AgUmVxdWVzdCIgaW4gbmV0L2Jvb3RwLmMuIFJlcXVpcmVkIHRvIG92ZXJjb21lCiAgICBpbnRlcm9wZXJhYmlsaXR5IHByb2JsZW1zIHdpdGggV2luZG93cyBTZXJ2ZXIgMjAweCBESENQIHNlcnZlciB3aGVuIFUtQm9vdAogICAgY2xpZW50IHJlc3BvbmRzIHRvbyBmYXN0IGZvciBzZXJ2ZXIgdG8gaGFuZGxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFyYXMgVmFpY2hhcyA8YXJhc3ZAbWFndGVjaC5jb20uYXU+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDk3YmY4NWQ3ODRmYmVkNDg1ZTY1MmViOTA3NTg5YWQwZDVjYjcyNjIKQXV0aG9yOiBEYW5pZWwgSGVsbHN0cm9tIDxkYW5pZWxAZ2Fpc2xlci5jb20+CkRhdGU6CUZyaSBNYXIgMjggMjA6NDA6MTkgMjAwOCArMDEwMAoKICAgIE1URC9DRkk6IGZsYXNoX3JlYWQ2NCBpcyBkZWZpbmVkIGEgd2VhayBmdW5jdGlvbiAoZm9yIFNQQVJDKQoKICAgIFNQQVJDIGhhcyBpbXBsZW1lbnRlZCBfX3Jhd19yZWFkcSwgaXQgcmVhZHMgNjQtYml0IGZyb20gYW55IDMyLWJpdCBhZGRyZXNzLgogICAgU1BBUkMgQ1BVcyBpbXBsZW1lbnQgZmxhc2hfcmVhZDY0IHdoaWNoIGNhbGxzIF9fcmF3X3JlYWRxLgoKICAgIEZvciBjdXJyZW50IFNQQVJDIGFyY2hpdGVjdHVyZXMgKExFT04yIGFuZCBMRU9OMykgZWFjaCByZWFkIGZyb20gdGhlCiAgICBGTEFTSCBtdXN0IGxlYWQgdG8gYSBjYWNoZSBtaXNzLiBUaGlzIGlzIGJlY2F1c2UgRkxBU0ggY2FuIG5vdCBiZSBzZXQKICAgIG5vbi1jYWNoZWFibGUgc2luY2UgcHJvZ3JhbSBjb2RlIHJlc2lkZXMgdGhlcmUsIGFuZCBhbHRlcm5hdGl2ZWx5IGRpc2FibGluZwogICAgY2FjaGUgaXMgcG9vciBmcm9tIHBlcmZvcm1hbmNlIHZpZXcsIG9yIGRvaW5nIGEgY2FjaGUgZmx1c2ggYmV0d2VlbiBlYWNoCiAgICByZWFkIGlzIGV2ZW4gcG9vcmVyLgoKICAgIEZvcmNpbmcgYSBjYWNoZSBtaXNzIG9uIGEgU1BBUkMgaXMgZG9uZSBieSBhIHNwZWNpYWwgaW5zdHJ1Y3Rpb24gImxkYSIgLQogICAgbG9hZCBhbHRlcm5hdGl2ZSBzcGFjZSwgdGhlIGFsdGVybmF0aXZlIHNwYWNlIG51bWJlciAoQVNJKSBpcyBwcm9jZXNzb3IKICAgIGltcGxlbWVudGF0aW9uIHNwY2lmaWMgYW5kIGNhbiBiZSBmb3VuZCBieSBpbmNsdWRpbmcgPGFzbS9wcm9jZXNzb3IuaD4uCgogICAgU2lnbmVkLW9mZi1ieTogRGFuaWVsIEhlbGxzdHJvbSA8ZGFuaWVsQGdhaXNsZXIuY29tPgoKY29tbWl0IDcwNDMxZThhNzM5M2I2Yjc5M2Y3Nzk1N2Y5NWI5OTlmYzlhMjY5YjgKQXV0aG9yOiBKb2FraW0gVGplcm5sdW5kIDxKb2FraW0uVGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KRGF0ZToJRnJpIE1hciAyOCAxNTo0MToyNSAyMDA4ICswMTAwCgogICAgTWFrZSBNUEM4M3h4IG9uZSBzdGVwIGNsb3NlciB0byBmdWxsIHJlbG9jYXRpb24uCgogICAgUmVtb3ZlIGEgZmV3IGFic29sdXRlIHJlZmVyZW5jZXMgdG8gQ0ZHX01PTklUT1JfQkFTRSBmb3IgcHBjL21wYzgzeHgKICAgIGFuZCB1c2UgR09UIHJlbGF0aXZlIHJlZmVyZW5jZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2FraW0gVGplcm5sdW5kIDxKb2FraW0uVGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWIyNzkzYTNmM2RlMzRkNDM5MjMyYjA1YWNjOGFmNjdhMDI4ZmQzNQpBdXRob3I6IE1pY2hhZWwgQmFya293c2tpIDxtaWNoYWVsLmJhcmtvd3NraUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWFyIDI3IDE0OjM0OjQzIDIwMDggLTA0MDAKCiAgICBtcGM4MzIzZXJkYjogZml4IEVFUFJPTSBwYWdlIHNpemUgYW5kIGdldCBNQUMgZnJvbSBFRVBST00KCiAgICBUaGlzIHBhdGNoIGZpeGVzIGVlcHJvbSBwYWdlIHNpemUgc28gdGhhdCB5b3UgY2FuIG5vdyB3cml0ZSBtb3JlIHRoYW4KICAgIDY0IGJ5dGVzIGF0IGEgdGltZS4KCiAgICBJdCBhbHNvIG1ha2VzIHRoZSBib2FyZCB0YWtlIE1BQyBhZGRyZXNzZXMsIGlmIGZvdW5kLCBmcm9tIEVFUFJPTS4KCiAgICBVc2VyIHNob3VsZCBwbGFjZSB1cCB0byA0IGFkZHJlc3NlcyBhdCBvZmZzZXQgMHg3ZjAwLCBmb3IKICAgIGV0aHssMSwyLDN9YWRkci4gIEFueSB1bnVzZWQgYWRkcmVzc2VzIHNob3VsZCBiZSB6ZXJvLiAgVGhpcyBncm91cCBvZgogICAgZm91ciBzaXgtYnl0ZSB2YWx1ZXMgc2hvdWxkIGhhdmUgaXQncyBDUkMgYXQgdGhlIGVuZC4gIGNyYzMyIGFuZAogICAgZWVwcm9tIGNvbW1hbmRzIGNhbiBiZSB1c2VkIHRvIGFjY29tcGxpc2ggdGhpcy4KCiAgICBJZiBDUkMgZmFpbHMsIE1BQyBhZGRyZXNzZXMgY29tZSBmcm9tIHRoZSBlbnZpcm9ubWVudC4gIElmIENSQwogICAgc3VjY2VlZHMsIHRoZSBlbnZpcm9ubWVudCBpcyBvdmVyd3JpdHRlbiBhdCBzdGFydHVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgQmFya293c2tpIDxtaWNoYWVsLmJhcmtvd3NraUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4ZjMyNWNmZjMxZjZlNzQ1ZTY1NDAwMTRiMTMxYjlhOTdmNjE5NDRjCkF1dGhvcjogTWljaGFlbCBCYXJrb3dza2kgPG1pY2hhZWwuYmFya293c2tpQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBNYXIgMjggMTU6MTU6MzggMjAwOCAtMDQwMAoKICAgIG1wYzgzMjNlcmRiOiBkZWZpbmUgQ09ORklHX1BDSV9TS0lQX0hPU1RfQlJJREdFCgogICAgQ29tbWl0IDU1Nzc0YjUxMmZkZjYzYzA1MTZkNDQxY2M1ZGE3YzU0YmJmZmI3ZjIgYnJva2UgdGhlIG9uYm9hcmQgVVNCCiAgICBjb250cm9sbGVyIG9uIHRoZSBQQ0kgYnVzIGluIExpbnV4IG9uIHRoZSBNUEM4MzIzRVJEQi4KCiAgICBUaGlzIGZpeGVzIGl0IGJ5IGRlZmluaW5nIENPTkZJR19QQ0lfU0tJUF9IT1NUX0JSSURHRSBpbiB0aGUgYm9hcmQncwogICAgY29uZmlnIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBCYXJrb3dza2kgPG1pY2hhZWwuYmFya293c2tpQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU1YzRhZGU0ZGIxZTE2ZDNlNWQ0YTc4ODdmMzRlMTBlNTE2ZWQzYTkKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWFyIDI4IDEwOjE5OjA3IDIwMDggLTA1MDAKCiAgICBtcGM4M3h4OiBjbGVhbnVwIFN5c3RlbSBQYXJ0IGFuZCBSZXZpc2lvbiBJRCBSZWdpc3RlciAoU1BSSURSKSBjb2RlCgogICAgaW4gdGhlIHNwaXJpdCBvZiBjb21taXQgMWNlZDEyMTYwMGIyMDYwYWIyZmY5ZjBmZGRkOTQyMWZkNzBhMGRjNiwKICAgIDg1eHgncyAiVXBkYXRlIFNWUiBudW1iZXJzIHRvIGV4cGFuZCBzdXBwb3J0Iiwgc2ltcGxpZnkgU1BSSURSIHByb2Nlc3NpbmcKICAgIGFuZCBwcm9jZXNzb3IgSUQgZGlzcGxheS4gIEFkZCBSRVZJRF97TUFKLE1JTn1PUiBtYWNyb3MgdG8gbWFrZQogICAgUkVWSUQgZGVwZW5kZW50IGNvZGUgc2ltcGxlci4gIEFsc28gYWRkZWQgUEFSVElEX05PX0UgYW5kIElTX0VfUFJPQ0VTU09SCiAgICBjb252ZW5pZW5jZSBtYWNyb3MuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4MWZkNTJjNmM4ZmQxOWYwYjc4NTZiOTgyMTdjZTM3YzQ2YzUyMWFmCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE1hciAyOCAxMDoxODo1MyAyMDA4IC0wNTAwCgogICAgbXBjODN4eDogZGlzcGxheSBkZHIgZnJlcXVlbmN5IGluIGJvYXJkX2FkZF9yYW1faW5mbyBiYW5uZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM1Y2YxNTVjNWVjMWNlYWIyODQ5ZmE1YjZhYTNkOWEzZTllNmY0ODIKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWFyIDI4IDEwOjE4OjQwIDIwMDggLTA1MDAKCiAgICBtcGM4M3h4OiB1bnJlaW52ZW50IG1lbV9jbGsKCiAgICBkZWxldGUgZGRyX2NsayBhbmQgdXNlIG1lbV9jbGsgaW5zdGVhZC4gIFJlbmFtZSBvdGhlciBkZHJfKl9jbGsgdG8KICAgIG1lbV8qX2NsayBmb3IgY29uc2lzdGVuY3kncyBzYWtlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzMwZTc5MjkyNmNhM2ZlNGRkMWI3MzRhM2JmNDRlNTVhZmE2ZjUzNgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBNYXIgMjggMTQ6MzE6MjMgMjAwOCAtMDUwMAoKICAgIG1wYzgzeHg6IGVuYWJsZSB0aGUgU0FUQSBpbnRlcmZhY2Ugb24gbXBjODMxNSByZGIgYW5kIG1wYzgzN3ggcmRiIGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmVlYjNlNGZjNTRlZjJmNWQ1NzRkYWZkNDJjNmNlOTNhZmEzMDM5MwpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMjo1NzoxOSAyMDA4ICswODAwCgogICAgbXBjODN4eDogZW5hYmxlIHRoZSBTQVRBIGludGVyZmFjZSBvbiBtcGM4Mzd4ZW1kcyBib2FyZAoKICAgIEVuYWJsZSB0aGUgZmlyc3QgdHdvIFNBVEEgaW50ZXJmYWNlcyBvbiBNUEM4Mzd4RU1EUyBib2FyZCwKICAgIFRoZSB0d28gU0FUQSBwb3J0cyBhcmUgb24gTFlOWDEuIChTQVRBMC8xIG9uIEo0LzUpCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmY4Yzg1ZThkMTg2NTczMGMxNThkOWVmNWEwNmM3MGMzYTEwNjAwYQpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMjo1NjozNiAyMDA4ICswODAwCgogICAgbXBjODN4eDogaW5pdGlhbGl6ZSBzZXJkZXMgZm9yIE1QQzgzN3hFTURTIGJvYXJkcwoKICAgIFRoaXMgcGF0Y2ggaXMgc3RvbGVuIGZyb20gQW50b24gVm9yb250c292J3MgcGF0Y2gKICAgIGZvciBtcGM4Mzd4ZXJkYiBib2FyZHMuCgogICAgVGhlIHJlZmVyZW5jZSBjbGsgYW5kIHhjb3JldmRkIHZvbHRhZ2Ugb2Ygc2VyZGVzMS8yCiAgICBpcyBzYW1lIGJldHdlZW4gbXBjODM3eGVtZHMgYW5kIG1wYzgzN3hlcmRiLgoKICAgIDgzNzdFOiBMWU5YMS0gMiBTQVRBCUxZTlgyLSAyIFBDSUUKICAgIDgzNzhFOiBMWU5YMS0gMiBTR01JSQlMWU5YMi0gMiBQQ0lFCiAgICA4Mzc5RTogTFlOWDEtIDIgU0FUQQlMWU5YMi0gMiBTQVRBCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2M4ZTgzOWFiYzgwODg3YWU4MzI3NjdiNTkzMGQ0MGVkZDZkN2ViNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE1hciAyOCAxNDowOTowNCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBDYW55b25sYW5kczogUHJpbnQgU0FUQS9QQ0llIGNvbmZpZ3VyYXRpb24gYW5kIGJvYXJkIHJldmlzaW9uCgogICAgQ2FueW9ubGFuZHMgKDQ2MEVYKSBzaGFyZXMgdGhlIGZpcnN0IFBDSWUgaW50ZXJmYWNlIHdpdGggdGhlIFNvQyBTQVRBCiAgICBpbnRlcmZhY2UuIFRoaXMgdXNhZ2UgY2FuIGJlIGNvbmZpZ3VyZWQgd2l0aCB0aGUganVtcGVyIEo2LiBUaGlzIHBhdGNoCiAgICBkaXNwbGF5cyB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIHVwb24gYm9vdHVwIGFuZCBjaGFuZ2VzIHRoZSBQQ0llCiAgICBpbml0IGxvb3AsIHRvIG9ubHkgaW5pdGlhbGl6ZSB0aGUgYXZhaWxhYmVsIFBDSWUgc2xvdHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDkwNDQ3ZWNiYmFjODU3MjQ1N2I2ZDg5MDMwNzNhYzNmMTIwOTk1YmEKQXV0aG9yOiBUb3IgS3JpbGwgPHRvckBleGNpdG8uY29tPgpEYXRlOglGcmkgTWFyIDI4IDExOjI5OjEwIDIwMDggKzAxMDAKCiAgICBNVEQvQ0ZJOiBBZGQgc3VwcG9ydCBmb3IgMTZiaXQgbGVnYWN5IEFNRCBmbGFzaAoKICAgIEFkZCBlbnRyeSBmb3IgNTEyS3gxNiBBTUQgZmxhc2ggdG8gamVkZWNfdGFibGUuCiAgICBSZWFkIG91dCAxNmJpdCBkZXZpY2UgaWQgaWYgY2hpcHdpZHRoIGlzIDE2Yml0LgogICAgRml4ZWQgY29kaW5nIHN0eWxlIGFmdGVyIFN0ZWZhbnMgZmVlZGJhY2sKCiAgICBTaWduZWQtb2ZmLWJ5OiBUb3IgS3JpbGwgPHRvckBleGNpdG8uY29tPgoKY29tbWl0IDVlMTJlNzVkMTdjNGIxNWEzMTBhNDVjZDc4ZmU3MWI3Njk4YThhOGUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBNYXIgMjggMTE6MDI6NTMgMjAwOCArMDEwMAoKICAgIHBwYzogU21hbGwgY2hhbmdlIHRvIENGR19NRU1fVE9QX0hJREUgZGVzY3JpcHRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjgwZGY1OWE4ZDYyYzZlNzRjMjgxYjFjYjdlMjA1MmRmNGQ2Y2IwMApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJVGh1IE1hciAyNyAxNTo0NDoxMiAyMDA4ICswOTAwCgogICAgc2g6IEFkZCBzdXBwb3J0IHN0YXQgc3RydWN0dXJlIGFuZCBzdGF0LmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNGJlOWViNzg5ZTcyYjg0NWQ2NjkzY2MzNmI3MGEwYjM1MjliM2YwOQpBdXRob3I6IE1hcmsgSm9uYXMgPHRvZXJ0ZWxAZ21haWwuY29tPgpEYXRlOglTYXQgTWFyIDIyIDE5OjI3OjUyIDIwMDggKzAxMDAKCiAgICBzaDogUmVtb3ZlZCB3YXJuaW5nIHdoZW4gY29tcGlsaW5nIGRyaXZlcnMvc2VyaWFsL3NlcmlhbF9zaC5jLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmsgSm9uYXMgPG1hcmsuam9uYXNAZGUuYm9zY2guY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGYzMDlmYTM4OTI5ZmZiYTcxMjMwYzAyMzMwZmZhNDJmNGJiYTYzMzMKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVdlZCBNYXIgMTIgMTg6MDI6NTcgMjAwOCArMDkwMAoKICAgIHNoOiBSZW1vdmUgZGlzYWJsZV9jdHJsYyBmdW5jdGlvbiBmcm9tIFI3NzgwTVAKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNmY0YjI2NmZmMmE0ZmNjMmJmZjk4NWQ2YTIxNzg1MjQ2OWFmZGRiMwpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJV2VkIE1hciAxMiAxNzo1NToxNSAyMDA4ICswOTAwCgogICAgc2g6IEFkZCBtYWludGFpbmVyIG9mIFI3NzgwTVAgdG8gTUFJTlRBSU5FUiBmaWxlCgogICAgVXBkYXRlIE1BSU5UQUlORVIgZW50cnkgZm9yIFI3NzgwTVAuIEFuZCBmaXggbWFpbnRhaW5lcidzIG5hbWUuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGY1ZTI0NjZmN2JhYTg4N2E3ZGYwYzUzNjMzM2VlYTgyMzEzMzM0OTcKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVR1ZSBNYXIgMjUgMTc6MTE6MjQgMjAwOCArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBSZW5lc2FzIFNvbHV0aW9ucyBSMkQgcGx1cyBib2FyZAoKICAgIFIyRCBwbHVzIGlzIFNIIHJlZmVyZW5jZSBib2FyZCB1c2VkIHdpdGggU0g3NzUxUi4KICAgIFRoaXMgYm9hcmQgaGFzIDI2Nk1oeiBDUFUsIDY0TUIgU0RSQU0sIENhcmRidXMsIENGIGludGVyZmFjZSwKICAgIG9uZSBQQ0kgYnVzLCBWR0EsIGFuZCB0d28gRXRoZXJuZXQgY29udHJvbGxlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgZTkyYzk1MTgwYmI1YmM1ZmQ0MDUxNTk4YTlkNjBiZWFiYTQ4OTg4ZApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJV2VkIE1hciAxMiAxMjoxNToyOSAyMDA4ICswOTAwCgogICAgc2g6IEFkZCBzdXBwb3J0IFNINCBjYWNoZSBjb250cm9sCgogICAgQWRkIHN1cHBvcnQgU0g0IGNhY2hlIGNvbnRyb2wgYW5kIGZsYXNoX2NhY2hlIGZ1bmN0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDI4ZTVlZmRlNGQ5MjVmY2IzNDkwMWQwMDMwZDA2NDhkZTJkYTdlODkKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CU1vbiBNYXIgMjQgMDE6NTM6MDEgMjAwOCArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBQQ0kgaG9zdCBkcml2ZXIgZm9yIFNINzc1MS9TSDc3NTFSCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGFiOGY0ZDQwZDA2OWNkM2NiZTc1NjNkZGZlM2U1ZjAzYjBjN2M3MjEKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CU1vbiBNYXIgMjQgMDI6MTE6MjYgMjAwOCArMDkwMAoKICAgIHNoOiBNb3ZlIFN1cGVySCBQQ0kgZHJpdmVyIGZyb20gY3B1L3NoNCB0byBkcml2ZXJzL3BjaQoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA1NjY5MzMyNzgxMDFjMTQ0ZDc1MzYxZWE2ODI2NzhhMzI2YzEyOTBkCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglXZWQgTWFyIDEyIDEyOjEwOjI4IDIwMDggKzA5MDAKCiAgICBzaDogQWRkIHN1cHBvcnQgU3VwZXJIIFNINzc1MS9TSDc3NTFSCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDMzMTNlMGUyNjIyNGZjOWEwYzQ0NTEyNGYzNDU1MDU4YzY5NmRmODQKQXV0aG9yOiBNYXJrIEpvbmFzIDx0b2VydGVsQGdtYWlsLmNvbT4KRGF0ZToJTW9uIE1hciAxMCAxMTozNzoxMCAyMDA4ICswMTAwCgogICAgc2g6IEFkZGVkIHN1cHBvcnQgZm9yIFNINzcyMCBiYXNlZCBib2FyZCBNUFIyLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmsgSm9uYXMgPG1hcmsuam9uYXNAZGUuYm9zY2guY29tPgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDNlY2ZmMWQ3MGFlOTNlNjI4ZmU2NWIzZmUxZmM3YzljNzZjZGY5OWYKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVRodSBNYXIgNiAxNDowNTo1MyAyMDA4ICswOTAwCgogICAgc2g6IEZpeCByZWNlaXZlIEZJRk8gbGV2ZWwgcmVnaXN0ZXIgb2YgU0g0QQoKICAgIFJlY2VpdmUgRklGTyBsZXZlbCByZWdpc3RlciBpcyBkaWZmZXJlbnQgaW4gU0g0QS4KICAgIEJlY2F1c2UgcmVnaXN0ZXIgaXMgZGlmZmVyZW50LCBjYW5ub3Qgb2NjYXNpb25hbGx5IHJlY2VpdmUgZGF0YS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgYzEzM2MxZmIwYjU5MDY2MjIwNmIwZWJhNzBmNDQ3OGVlMDMwMGE5YQpBdXRob3I6IFl1c3VrZSBHb2RhIDxnb2RhLnl1c3VrZUByZW5lc2FzLmNvbT4KRGF0ZToJVHVlIE1hciAxMSAxMjo1NToxMiAyMDA4ICswOTAwCgogICAgc2g6IEFkZCBzdXBwb3J0IFJlbmVzYXMgU29sdXRpb25zIFI3NzgwTVAKCiAgICBSZW5lc2FzIFNvbHV0aW9ucyBSNzc4ME1QIGlzIGEgcmVmZXJlbmNlIGJvYXJkIG9uIFNINzc4MC4KICAgIFRoaXMgYm9hcmQgaGFzIHNlcmlhbCwgMTAvMTAwIGJhc2UgRXRoZXJuZXQgZGVpdmljZSwgQ0Ygc2xvdAogICAgYW5kIFZHQSBkZXZpY2VzLiBUaGlzIGJvYXJkIGNhbiBzZXQgZXh0ZW5zaW9uIGJvYXJkLgogICAgRXh0ZW5zaW9uIGJvYXJkIGhhcyAxMC8xMDAvMTAwMCBiYXNlIEV0aGVybmV0IGRldmljZSwgUENJIHNsb3QsCiAgICBTLUFUQSwgaURWUiBzbG90LgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1c3VrZSBHb2RhIDxnb2RhLnl1c3VrZUByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAxYTIzMzRhNGViNjM4NmQ3Y2QzNWQ5ZGU1ZmEzOWFmMmM3NjRhZDI4CkF1dGhvcjogWXVzdWtlIEdvZGEgPGdvZGEueXVzdWtlQHJlbmVzYXMuY29tPgpEYXRlOglXZWQgTWFyIDUgMTQ6MzA6MDIgMjAwOCArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBQQ0kgb2YgU3VwZXJIIGFuZCBTSDc3ODAKCiAgICBUaGlzIHBhdGNoIGFkZCBzdXBwb3J0IFBDSSBvZiBTdXBlckggYmFzZSBjb2RlIGFuZCBTSDc3ODAgc3BlY2lmaWMgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXN1a2UgR29kYSA8Z29kYS55dXN1a2VAcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgYjU1NTIzZWZmZjJhZTExZjBiOWFlM2NjNDA1ODkzYzMyZWI3ODE1NgpBdXRob3I6IFl1c3VrZSBHb2RhIDxnb2RhLnl1c3VrZUByZW5lc2FzLmNvbT4KRGF0ZToJV2VkIE1hciA1IDE0OjIzOjI2IDIwMDggKzA5MDAKCiAgICBzaDogQWRkIHN1cHBvcnQgU0g3NzgwCgogICAgU0g3NzgwIGlzIENQVSBvZiBSZW5lc2FzIFRlY2hub2xvZ3kuCiAgICBUaGlzIENQVSBoYXMKICAgICAtIENQVSBjbG9jayA0MDBNSHoKICAgICAtIFBDSSBzdXBwb3J0CiAgICAgLSBERFItU0RSQU0gY29udHJvbGxlcgogICAgIC0gZXRjIC4uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1c3VrZSBHb2RhIDxnb2RhLnl1c3VrZUByZW5lc2FzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBjMjA0MmY1OTUyYTY4NmM0MTQwMzEzMDliOGYyNDQ1MTNiZjU3OGYwCkF1dGhvcjogZ29kYS55dXN1a2UgPGdvZGEueXVzdWtlQHJlbmVzYXMuY29tPgpEYXRlOglGcmkgSmFuIDI1IDIwOjQ2OjM2IDIwMDggKzA5MDAKCiAgICBzaDogQWRkIHN1cHBvcnQgUmVuZXNhcyBTb2x1dGlvbnMgTWlnby1SIGJvYXJkCgogICAgTWlnby1SIGlzIGEgYm9hcmQgYmFzZWQgb24gU0g3NzIyIGFuZCBoYXMgbWF5IGRldmljZXMuCiAgICBJbiB0aGlzIHBhdGNoLCBzdXBwb3J0ZWQgU0NJRiwgTk9SIGZsYXNoIGFuZCBFdGhlcm5ldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXN1a2UgR29kYSA8Z29kYS55dXN1a2VAcmVuZXNhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNzRkMWU2NmQyMmRhYzkxMzg4YmM1MzhiMmZlMTlmNzM1ZWRjNWI4MgpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBNYXIgMjcgMTU6MDY6NDAgMjAwOCArMDEwMAoKICAgIEZpeCBob3N0IHRvb2wgYnVpbGQgYnJlYWthZ2UsIHRha2UgdHdvCgogICAgUmV2ZXJ0IGNvbW1pdCA4N2M4NDMxZiBhbmQgZml4IGJ1aWxkIGJyZWFrYWdlIHNvIHRoYXQgdGhlIGJ1aWxkIGNvbnRpbnVlcwogICAgdG8gd29yayBvbiBGQyBzeXN0ZW1zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgN2U0YTBkMjVlZDE4ZjY0MzdiZGY1OWViZmE0OWJiMGVkYzJmMjRlNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAxOSAwOTozNjo0NyAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBFbmFibGUgRUNDIG9uIExXTU9ONQoKICAgIFNpbmNlIGFsbCBFQ0MgcmVsYXRlZCBwcm9ibGVtcyBzZWVtIHRvIGJlIHJlc29sdmVkIG9uIExXTU9ONSwgdGhpcyBwYXRjaAogICAgbm93IGVuYWJsZXMgRUNDIHN1cHBvcnQuCgogICAgV2UgaGF2ZSB0byB3cml0ZSB0aGUgRUNDIGJ5dGVzIGJ5IHplcm9pbmcgYW5kIGZsdXNoaW5nIGluIHNtYWxsZXIKICAgIHN0ZXBzLCBzaW5jZSB0aGUgd2hvbGUgMjU2TUJ5dGUgdGFrZXMgdG9vIGxvbmcgZm9yIHRoZSBleHRlcm5hbAogICAgd2F0Y2hkb2cuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDY0MzNmYTIwMmE5MWE2NTk0ZGQ0OGYwNjgwN2FjMzhiYTI3ZmEwYmIKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJTW9uIE1hciAxNyAxMToxMDozNSAyMDA4IC0wNTAwCgogICAgcHBjNHh4OiBVcGRhdGVzIHRvIEtvcmF0LXNwZWNpZmljIGNvZGUKCiAgICBUaGlzIHBhdGNoIGNvbnRhaW5zIHVwZGF0ZXMgZm9yIGNoYW5nZXMgZm9yIHRoZSBLb3JhdCBQUEM0NDBFUHggYm9hcmQuCiAgICBUaGVzZSBjaGFuZ2VzIGluY2x1ZGU6CgogICAgKDEpIFN1cHBvcnQgZm9yICJwZXJtYW5lbnQiIGFuZCAidXBncmFkYWJsZSIgY29waWVzIG9mIFUtQm9vdCwgYXMKICAgIGRlc2NyaWJlZCBpbiB0aGUgbmV3ICJkb2MvUkVBRE1FLmtvcmF0IiBmaWxlOwoKICAgICgyKSBhIG5ldyBtZW1vcnkgbWFwIGZvciB0aGUgcmVnaXN0ZXJzIGluIHRoZSBib2FyZCdzIENQTEQ7CgogICAgKDMpIGEgcmV2aXNlZCBmb3JtYXQgZm9yIG1hbnVmYWN0dXJlcidzIGRhdGEgaW4gc2VyaWFsIEVFUFJPTTsgYW5kCgogICAgKDQpIGNoYW5nZXMgdG8gdHJhY2sgdXBkYXRlcyB0byBVLUJvb3QgZm9yIHRoZSBTZXF1b2lhIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IGY3NjZjZGY4OWIzYTJhNzYzNGI4YzU4NjlmNjA2MTUwZTMzMjAzNmMKQXV0aG9yOiBNYXJrdXMgQnJ1bm5lciA8c3VwZXIuZmlyZXR3aXN0ZXJAZ21haWwuY29tPgpEYXRlOglUaHUgTWFyIDI3IDEwOjQ2OjI1IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IFBQQzQwNUVQIFNldCBFTUFDIG5vaXNlIGZpbHRlciBiaXRzCgogICAgVGhpcyBidWcgd2FzIGludHJvZHVjZWQgd2l0aCBjb21taXQgYWVlNzQ3ZjE5YjQ2MGEwZTlkYTIwZmYyMWU5MGZkYWFjMWNlYzM1OQogICAgd2hpY2ggZW5hYmxlZCBDRkdfNHh4X0dQSU9fVEFCTEUgZm9yIFBQQzQwNSBhbmQgdW5pbnRlbnRpb25hbGx5CiAgICBkaXNhYmxlZCB0aGUgc2V0dGluZyBvZiB0aGUgZW1hYyBub2lzZSBmaWx0ZXIgYml0cyBmb3IgUFBDNDA1RVAgd2hlbiBDRkdfNHh4X0dQSU9fVEFCTEUgaXMgc2V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBCcnVubmVyIDxzdXBlci5maXJldHdpc3RlckBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjY2ZTJjOGIyNWMwNGI3OWU1ZmIzODViYzg5ODljMmRlN2Y2Mzk5MQpBdXRob3I6IE1pa2UgTnVzcyA8bWlrZUB0ZXJhc2NhbGEuY29tPgpEYXRlOglXZWQgRmViIDIwIDExOjU0OjIwIDIwMDggLTA1MDAKCiAgICBwcGM0eHg6IFJlY29uZmlndXJlIFBMTCBmb3IgNjY3TUh6IHByb2Nlc3NvciBmb3IgUFBDNDQwRVB4CgogICAgT24gUFBDNDQwRVB4IHdpdGhvdXQgYSBib290c3RyYXAgSTJDIEVFUFJPTSwgdGhlIFBMTCBjYW4gYmUgcmVjb25maWd1cmVkCiAgICBhZnRlciBzdGFydHVwIHRvIGNoYW5nZSB0aGUgc3BlZWQgb2YgdGhlIGNsb2Nrcy4gVGhpcyBwYXRjaCBhZGRzIHRoZQogICAgb3B0aW9uIENGR19QTExfUkVDT05GSUcuIElmIHRoaXMgb3B0aW9uIGlzIHNldCB0byA2NjcsIHRoZSBDUFUKICAgIGluaXRpYWxpemF0aW9uIGNvZGUgd2lsbCByZWNvbmZpZ3VyZSB0aGUgUExMIHRvIHJ1biB0aGUgc3lzdGVtIHdpdGggYSBDUFUKICAgIGZyZXF1ZW5jeSBvZiA2NjdNSHogYW5kIFBMQiBmcmVxdWVuY3kgb2YgMTY2TUh6LCB3aXRob3V0IHRoZSBuZWVkIGZvciBhbgogICAgZXh0ZXJuYWwgRUVQUk9NLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgTnVzcyA8bWlrZUB0ZXJhc2NhbGEuY29tPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4N2M4NDMxZmUyNGQ0ODEyMWYwNTNmZTY3Y2ZmNGNjZmUwOTdkNGQxCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoYWF2YXJkLnNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgTWFyIDI3IDA5OjEyOjQwIDIwMDggKzAxMDAKCiAgICBuZXctaW1hZ2U6IEZpeCBob3N0IHRvb2wgYnVpbGQgYnJlYWthZ2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhhYXZhcmQuc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNmZiNGI2NDA1NjJhMTBkYWZmMGRiZTUzNzYzOGQ1MTFiNWI0ODY1MApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAyNyAxMDoyNDowMyAyMDA4ICswMTAwCgogICAgcHBjOiBTZXQgQ0ZHX01FTV9UT1BfSElERSB0byAwIGlmIG5vdCBhbHJlYWR5IGRlZmluZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOTQ2MjczMmEzZWM1NTFjMTE4NjI0NTA5MDJjZDhlZTFiZWRlYTZkOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAxOSAxMDoyMzo0MyAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgZmR0IHN1cHBvcnQgdG8gUHJvZHJpdmUgYWxwcgoKICAgIFNpbmNlIHRoaXMgYm9hcmQgd2lsbCBwcm9iYWJseSBiZSBwb3J0ZWQgdG8gYXJjaC9wb3dlcnBjIGluIHRoZQogICAgbmVhciBmdXR1cmUsIHdlIGFkZCBkZXZpY2UgdHJlZSBzdXBwb3J0IG5vdy4gVGhpcyB3YXkgd2UgYXJlCiAgICAicmVhZHkiIGZvciBhcmNoL3Bvd2VycGMgZnJvbSBub3cgb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDUxMWU0ZjllN2Y3YjY3MTllNGQ5MWQ3ZjBmYzg5NDEyYjEzYjUxNTAKQXV0aG9yOiBQaWV0ZXIgVm9vcnRodWlqc2VuIDxwaWV0ZXIudm9vcnRodWlqc2VuQHByb2RyaXZlLm5sPgpEYXRlOglNb24gTWFyIDE3IDA5OjI3OjU2IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEVuYWJsZSBjYWNoZSBzdXBwb3J0IG9uIHRoZSBBTFBSIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogUGlldGVyIFZvb3J0aHVpanNlbiA8cHZAcHJvZHJpdmUubmw+Cgpjb21taXQgMTRmNzNjYTY3OWY2ZmRiNDRjZmYwYjczMDRkNDE5ZGI0MWEwYWI2OQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyNiAxMDoxNDoxMSAyMDA4ICswMTAwCgogICAgcHBjOiBBZGQgQ0ZHX01FTV9UT1BfSElERSBvcHRpb24gdG8gaGlkZSBtZW1vcnkgYXJlYSB0aGF0IGRvZXNuJ3QgZ2V0ICJ0b3VjaGVkIgoKICAgIElmIENGR19NRU1fVE9QX0hJREUgaXMgZGVmaW5lZCBpbiB0aGUgYm9hcmQgY29uZmlnIGhlYWRlciwgdGhpcyBzcGVjaWZpZWQKICAgIG1lbW9yeSBhcmVhIHdpbGwgZ2V0IHN1YnRyYWN0ZWQgZnJvbSB0aGUgdG9wIChlbmQpIG9mIHJhbSBhbmQgd29uJ3QgZ2V0CiAgICAidG91Y2hlZCIgYXQgYWxsIGJ5IFUtQm9vdC4gQnkgZml4aW5nIHVwIGdkLT5yYW1fc2l6ZSB0aGUgTGludXgga2VybmVsCiAgICBzaG91bGQgZ2V0cyBwYXNzZWQgdGhlIG5vdyAiY29ycmVjdGVkIiBtZW1vcnkgc2l6ZSBhbmQgd29uJ3QgdG91Y2ggaXQKICAgIGVpdGhlci4gVGhpcyBzaG91bGQgd29yayBmb3IgYXJjaC9wcGMgYW5kIGFyY2gvcG93ZXJwYy4gT25seSBMaW51eCBib2FyZAogICAgcG9ydHMgaW4gYXJjaC9wb3dlcnBjIHdpdGggYm9vdHdyYXBwZXIgc3VwcG9ydCwgd2hpY2ggcmVjYWxjdWxhdGUgdGhlCiAgICBtZW1vcnkgc2l6ZSBmcm9tIHRoZSBTRFJBTSBjb250cm9sbGVyIHNldHVwLCB3aWxsIGhhdmUgdG8gZ2V0IGZpeGVkCiAgICBpbiBMaW51eCBhZGRpdGlvbmFsbHkuCgogICAgVGhpcyBwYXRjaCBlbmFibGVzIHRoaXMgY29uZmlnIG9wdGlvbiBvbiBzb21lIFBQQzQ0MEVQeCBib2FyZHMgYXMgYSB3b3JrYXJvdW5kCiAgICBmb3IgdGhlIENISVAgMTEgZXJyYXRhLiBIZXJlIHRoZSBkZXNjcmlwdGlvbiBmcm9tIHRoZSBBTUNDIGRvY3VtZW50YXRpb246CgogICAgQ0hJUF8xMTogRW5kIG9mIG1lbW9yeSByYW5nZSBhcmVhIHJlc3RyaWN0ZWQgYWNjZXNzLgogICAgQ2F0ZWdvcnk6IDMKCiAgICBPdmVydmlldzoKICAgIFRoZSA0NDBFUHggRERSIGNvbnRyb2xsZXIgZG9lcyBub3QgYWNrbm93bGVkZ2UgYW55CiAgICB0cmFuc2FjdGlvbiB3aGljaCBpcyBkZXRlcm1pbmVkIHRvIGJlIGNyb3NzaW5nIG92ZXIgdGhlCiAgICBlbmQtb2YtbWVtb3J5LXJhbmdlIGJvdW5kYXJ5LCBldmVuIGlmIHRoZSBzdGFydGluZyBhZGRyZXNzIGlzCiAgICB3aXRoaW4gdmFsaWQgbWVtb3J5IHNwYWNlLiBBbnkgc3VjaCB0cmFuc2FjdGlvbiBmcm9tIGFueSBQTEI0CiAgICBtYXN0ZXIgd2lsbCByZXN1bHQgaW4gYSBQTEIgdGltZS1vdXQgb24gUExCNCBidXMuCgogICAgSW1wYWN0OgogICAgSW4gY2FzZSBvZiBzdWNoIG1pc2FsaWduZWQgYnVyc3RzLCBQTEI0IG1hc3RlcnMgd2lsbCBub3QKICAgIHJldHJpZXZlIGFueSBkYXRhIGF0IGFsbCwganVzdCB0aGUgYXZhaWxhYmxlIGRhdGEgdXAgdG8gdGhlCiAgICBlbmQgb2YgbWVtb3J5LCBlc3BlY2lhbGx5IHRoZSA0NDAgQ1BVLiBGb3IgZXhhbXBsZSwgaWYgYSBDUFUKICAgIGluc3RydWN0aW9uIHJlcXVpcmVkIGFuIG9wZXJhbmQgbG9jYXRlZCBpbiBtZW1vcnkgd2l0aGluIHRoZQogICAgbGFzdCA3IHdvcmRzIG9mIG1lbW9yeSwgdGhlIERDVSBtYXN0ZXIgd291bGQgYnVyc3QgcmVhZCA4CiAgICB3b3JkcyB0byB1cGRhdGUgdGhlIGRhdGEgY2FjaGUgYW5kIGNyb3NzIG92ZXIgdGhlCiAgICBlbmQtb2YtbWVtb3J5LXJhbmdlIGJvdW5kYXJ5LiBTdWNoIGEgRENVIHJlYWQgd291bGQgbm90IGJlCiAgICBhbnN3ZXJlZCBieSB0aGUgRERSIGNvbnRyb2xsZXIsIHJlc3VsdGluZyBpbiBhIFBMQjQgdGltZS1vdXQKICAgIGFuZCB1bHRpbWF0ZWx5IGluIGEgTWFjaGluZSBDaGVjayBpbnRlcnJ1cHQuIFRoZSBkYXRhIHdvdWxkCiAgICBiZSBpbmFjY2Vzc2libGUgdG8gdGhlIENQVS4KCiAgICBXb3JrYXJvdW5kOgogICAgRm9yYmlkIGFueSBhcHBsaWNhdGlvbiB0byBhY2Nlc3MgdGhlIGxhc3QgMjU2IGJ5dGVzIG9mIEREUgogICAgbWVtb3J5LiBGb3IgZXhhbXBsZSwgbWFrZSB5b3VyIG9wZXJhdGluZyBzeXN0ZW0gYmVsaWV2ZSB0aGF0CiAgICB0aGUgbGFzdCAyNTYgYnl0ZXMgb2YgRERSIG1lbW9yeSBhcmUgYWJzZW50LiBBTUNDIGhhcyBhIHBhdGNoCiAgICB0aGF0IGRvZXMgdGhpcywgYXZhaWxhYmxlIGZvciBMaW51eC4KCiAgICBUaGlzIHBhdGNoIHNldHMgQ0ZHX01FTV9UT1BfSElERSBmb3IgdGhlIGZvbGxvd2luZyA0NDBFUHggYm9hcmRzOgogICAgbHdtb241LCBrb3JhdCwgc2VxdW9pYQoKICAgIFRoZSBvdGhlciByZW1haW5pbmcgNDQwRVB4IGJvYXJkIHdlcmUgaW50ZW50aW9uYWxseSBub3QgaW5jbHVkZWQKICAgIHNpbmNlIGl0IGlzIG5vdCBjbGVhciB0byBtZSwgaWYgdGhleSB1c2UgdGhlIGVuZCBvZiByYW0gZm9yIHNvbWUKICAgIG90aGVyIHB1cnBvc2UuIFRoaXMgaXMgdW5jbGVhciwgc2luY2UgdGhlc2UgYm9hcmRzIGhhdmUgQ09ORklHX1BSQU0KICAgIGRlZmluZWQgYW5kIGV2ZW4gY29tbWVudHMgbGlrZSB0aGlzOgoKICAgIFBNQzQ0MC5oOgogICAgLyogZXNkIGV4cGVjdHMgcHJhbSBhdCBlbmQgb2YgcGh5c2ljYWwgbWVtb3J5LgogICAgICogU28gbm8gbG9nYnVmZmVyIGF0IHRoZSBtb21lbnQuCiAgICAgKi8KCiAgICBJdCBpcyBzdHJvbmdseSByZWNvbW1lbmRlZCB0byBub3QgdXNlIHRoZSBsYXN0IDI1NiBieXRlcyBvbiB0aG9zZQogICAgYm9hcmRzIHRvby4gUGF0Y2hlcyBmcm9tIHRoZSBib2FyZCBtYWludGFpbmVycyBhcmUgd2VsY29tZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzY2NGJmOGMzYzliYjllMjM2ODkxZjBkOGRmZGE4ODNlODZkMTU5YgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAyNyAxMDowOTowNSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBGaXggQ2FueW9ubGFuZHMgbGlua2VyIHNjcmlwdCAocmVtb3ZlIGJvZ3VzIEFTU0VSVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDU2YTNjZTE3OTY4OGNkZTYxMDczYTM2OTBlMjE3MDNkNjhmYWZkNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1hciAyNSAxNzo1MToxMyAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBDb3JyZWN0bHkgcGFzcyBwaHlpc2NhbCBGTEFTSCBiYXNlIGFkZHJlc3MgaW50byBkdGIKCiAgICBUaGUgcm91dGluZSBmdF9ib2FyZF9zZXR1cCgpIGNvbmZpZ3VyZXMgdGhlIEVCQyBOT1IgbWFwcGluZ3MgZm9yIHRoZQogICAgTGludXggcGh5c21hcF9vZiBkcml2ZXIuIFNpbmNlIG9uIDQ2MEVYL0dUIHdlIHJlbWFwIHRoZSBGTEFTSCBmcm9tCiAgICAweDQuZmMwMC4wMDAwIHRvIDB4NC5jYzAwLjAwMDAgYmVjYXVzZSBvZiB0aGUgbWF4LiAxNk1CeXRlIGJvb3QtQ1MKICAgIHByb2JsZW0sIHdlIG5lZWQgdG8gcGFzcyB0aGUgY29ycmVjdGVkIGFkZHJlc3MgaGVyZSB0b28uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDlhZDMxOTg5ZGUxMmNlNWM2N2IwN2M0ODY3ZWFkNDc0NjU2NTVjNGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMTkgMTY6MzU6MTIgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogRml4IGNvbXBpbGF0aW9uIHdhcm5pbmcgaW4gNHh4X2VuZXQuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0YzllODU1NzM0YzUyMzkwMDMyMmE3YzNjZGQ5MDk5YjRmNTFiNTFkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDE5IDE2OjIwOjQ5IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBBTUNDIEdsYWNpZXIgNDA2R1QgZXZhbCBib2FyZCBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBBTUNDIEdsYWNpZXIgNDYwR1QgZXZhbCBib2FyZC4KICAgIFRoZSBtYWluIGRpZmZlcmVuY2UgdG8gdGhlIENhbnlvbmxhbmRzIGJvYXJkIGFyZSBsaXN0ZWQgaGVyZToKCiAgICAtIDQgZXRoZXJuZXQgcG9ydHMgaW5zdGVhZCBvZiAyCiAgICAtIG5vIFNBVEEgcG9ydAogICAgLSBubyBVU0IgcG9ydAoKICAgIEN1cnJlbnRseSBFTUFDMiszIGFyZSBub3Qgd29ya2luZy4gVGhpcyB3aWxsIGJlIGZpeGVkIGluIGEgbGF0ZXIKICAgIHJlbGVhc2UuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQ4YmQ2NDMxNDFhZjQ3MTBkN2YxYjY5YmJhYjZiNzYwZGUwYWYwYTEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgMjcgMDg6NDc6MjYgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogTWFzayAndmVjJyB3aXRoIDB4MWYgaW4gdWljX2ludGVycnVwdCgpIGZvciBiaXQgc2V0L2NsZWFyCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGI5NjcwZGQ4NWJlNmUwNDk2ZWYyZTIzMTA0M2MyM2NhZDliMWQ5MDMKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjYgMjE6MDU6NDMgMjAwOCArMDEwMAoKICAgIEZpeCBvdXQgb2YgdHJlZSBidWlsZGluZyBpc3N1ZQoKICAgIEN1cnJlbnRseSBVLUJvb3QgYnVpbGRpbmcgaW4gc29tZSBleHRlcm5hbCBkaXJlY3RvcnkKICAgIGRvZXNuJ3Qgd29yay4gVGhpcyBwYXRjaCB0cmllcyB0byBmaXggdGhlIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IGQ0ZWU3MTFkOGE1YzM2NmVlM2Y4NTdjMjZiOTI3ZDEyZTY2NjE0ZmYKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjYgMTg6MTM6MzMgMjAwOCArMDEwMAoKICAgIFJFQURNRTogdXBkYXRlIGRvY3VtZW50YXRpb24gKGF2YWlsYWJpbGl0eSwgbGlua3MsIGV0Yy4pCgogICAgRml4IHR5cG8gaW4gUkVBRE1FCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IGU4MTNlYWUzYmZlYmE5YzBiZGE5ZDFiZjlmYzNkMDgxZjc5MDk3MmYKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjYgMTc6NDc6NDQgMjAwOCArMDEwMAoKICAgIEZpeCBjb21waWxhdGlvbiBlcnJvciBpbiBjbWRfdXNiLmMKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGNvbXBpbGF0aW9uIGVycm9yCiAgICBjbWRfdXNiLmM6IEluIGZ1bmN0aW9uICdkb191c2InOgogICAgY21kX3VzYi5jOjU1MjogZXJyb3I6IHZvaWQgdmFsdWUgbm90IGlnbm9yZWQgYXMgaXQgb3VnaHQgdG8gYmUKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgZDhjODJkYjQ4MmQ2YjUzNWQxMmI0MTlkNjQ0MGI4OGJmNzA5MWM5YgpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBNYXIgMTQgMTc6NDU6MjkgMjAwOCAtMDUwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBzZXR0aW5nIHRoZSBJMkMgYnVzIHNwZWVkIGluIGZzbF9pMmMuYwoKICAgIEFkZCBzdXBwb3J0IHRvIHRoZSBGcmVlc2NhbGUgSTJDIGRyaXZlciAoZnNsX2kyYy5jKSBmb3Igc2V0dGluZyBhbmQgcXVlcnlpbmcKICAgIHRoZSBJMkMgYnVzIHNwZWVkLglDdXJyZW50IDhbMzU2XXh4IGJvYXJkcyBkZWZpbmUgdGhlIENGR19JMkNfU1BFRUQgbWFjcm8sCiAgICBidXQgZnNsX2kyYy5jIGlnbm9yZXMgaXQgYW5kIHVzZXMgY29uc2VydmF0aXZlIHZhbHVlIHdoZW4gcHJvZ3JhbW1pbmcgdGhlCiAgICBJMkMgYnVzIHNwZWVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQwNDljYzdmNzFjMGQ4NzVlOGY1MDk5ZDFlZDIzNjY2YTgyYjhmOGUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDI3IDAwOjAzOjU3IDIwMDggKzAxMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cCwgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZmQwYjFmZTNjMzg4YTc3ZThmZTAwY2RkOTMwY2EzMTdhOTExOThkNApBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMjo1NTozMiAyMDA4ICswODAwCgogICAgZHJpdmVyczogYWRkIHRoZSBzdXBwb3J0IGZvciBGcmVlc2NhbGUgU0FUQSBjb250cm9sbGVyCgogICAgQWRkIHRoZSBGcmVlc2NhbGUgb24tY2hpcCBTQVRBIGNvbnRyb2xsZXIgZHJpdmVyIHRvIHUtYm9vdCwKICAgIFRoZSBTQVRBIGNvbnRyb2xsZXIgaXMgdXNlZCBvbiB0aGUgODM3eCBhbmQgODMxNSB0YXJnZXRzLAogICAgVGhlIGRyaXZlciBjYW4gYmUgdXNlZCB0byBsb2FkIGtlcm5lbCwgZnMgYW5kIGR0Yi4KCiAgICBUaGUgZmVhdHVyZXMgbGlzdDoKICAgIC0gMS41LzMgR2JwcyBsaW5rIHNwZWVkCiAgICAtIExCQTQ4LCBMQkEyOCBzdXBwb3J0CiAgICAtIERNQSBhbmQgRlBETUEgc3VwcG9ydAogICAgLSBUd28gcG9ydHMgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmVkZTg3ZjRjODdjM2NjZDg2OGNjNjBlYmY3OTJlMDU2MGM2ZDAyNApBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMjo1NDo0NCAyMDA4ICswODAwCgogICAgYXRhOiBhZGQgdGhlIHJlYWRtZSBmb3IgU0FUQSBjb21tYW5kIGxpbmUKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNkNTQwODFjZDQ3OWU1NDJmYzM5OWI4YTQwNjUxZmYxMWExYWQ4NDkKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgMjYgMjI6NTM6MjQgMjAwOCArMDgwMAoKICAgIGF0YTogZW5hYmxlIHRoZSBzYXRhIGluaXRpYWxpemUgb24gYm9vdCB1cAoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjkzODYzODNjNWMyYjMyM2M2NjQ5NWIwYjBjZWY2YTk3MTRkODNiZgpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1hciAyNiAyMjo1MjozNiAyMDA4ICswODAwCgogICAgYXRhOiBhZGQgdGhlIGZpcyBzdHJ1Y3QgZm9yIFNBVEEKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGZmYzY2NGU4MGRmYjJlMTdkZTBkZjVhZDM5ZTkxYTAyZTljMzYxYmMKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgMjYgMjI6NTE6NDQgMjAwOCArMDgwMAoKICAgIGF0YTogYWRkIHRoZSBsaWJhdGEgc3VwcG9ydAoKICAgIGFkZCBzaW1wbGUgbGliYXRhIHN1cHBvcnQgaW4gdS1ib290CgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4ZTliYjQzNDI5ZTUwZGY1NWZhNDE5MzJjYmU2NTg0MWZmNTc5MjIwCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWFyIDI2IDIyOjUwOjQ1IDIwMDggKzA4MDAKCiAgICBhdGE6IG1ha2UgdGhlIGF0YV9waWl4IGRyaXZlciB1c2luZyBuZXcgU0FUQSBmcmFtZXdvcmsKCiAgICBvcmlnaW5hbCBhdGFfcGlpeCBkcml2ZXIgaXMgdXNpbmcgSURFIGZyYW1ld29yaywgbm90IHJlYWwKICAgIFNBVEEgZnJhbWV3b3JrLiBGb3Igbm93LCB0aGUgYXRhX3BpaXggZHJpdmVyIGlzIG9ubHkgdXNlZAogICAgYnkgeDg2IHNjNTIwX2NkcCBib2FyZC4gVGhpcyBwYXRjaCBtYWtlcyB0aGUgYXRhX3BpaXggZHJpdmVyCiAgICB1c2UgdGhlIG5ldyBTQVRBIGZyYW1ld29yaywgc28KCiAgICAtIHJlbW92ZSB0aGUgZHVwbGljYXRlZCBjb21tYW5kIHN0dWZmCiAgICAtIHJlbW92ZSB0aGUgQ09ORklHX0NNRF9JREUgZGVmaW5lIGluIHRoZSBzYzUyMF9jZHAuaAogICAgLSBhZGQgdGhlIENPTkZJR19DTURfU0FUQSBkZWZpbmUgdG8gc2M1MjBfY2RwLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM3MDU3YjUyOWMzYzNjYjljMGFjOTA2MDY4NmE0MDY4ZjE0OTFiYmUKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgMjYgMjI6NDk6NDQgMjAwOCArMDgwMAoKICAgIGF0YTogYWRkIHRoZSBzdXBwb3J0IGZvciBTQVRBIGZyYW1ld29yawoKICAgIC0gYWRkIHRoZSBTQVRBIGZyYW1ld29yawogICAgLSBhZGQgdGhlIFNBVEEgY29tbWFuZCBsaW5lCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4M2M3ZjQ3MGE0Y2U5NGYzMzYwMGYxMWFlODVjZTRkY2YwMGFhOTBjCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWFyIDI2IDIyOjQ4OjE4IDIwMDggKzA4MDAKCiAgICBhdGE6IG1lcmdlIHRoZSBoZWFkZXIgb2YgYXRhX3BpaXggZHJpdmVyCgogICAgbW92ZSB0aGUgc2F0YS5oIGZyb20gaW5jbHVkZS8gdG8gZHJpdmVycy9ibG9jay9hdGFfcGlpeC5oCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5ZWVmNjI4MDRkOTY5NTQyNWIyNGM4N2I0NmE2MWE3ZmE3NGFmZWUwCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWFyIDI2IDIyOjQ3OjA2IDIwMDggKzA4MDAKCiAgICBhdGE6IG1lcmdlIHRoZSBhdGFfcGlpeCBkcml2ZXIKCiAgICBtb3ZlIHRoZSBjbWRfc2F0YS5jIGZyb20gY29tbW9uLyB0byBkcml2ZXJzL2F0YV9waWl4LmMsCiAgICB0aGUgY21kX3NhdGEuYyBoYXZlIHNvbWUgcGFydCBvZiBhdGFfcGlpeCBjb250cm9sbGVyIGRyaXZlcnMuCiAgICBjb25zb2xpZGF0ZSB0aGUgZHJpdmVyIHRvIGhhdmUgYmV0dGVyIGZyYW1ld29yay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI5ZTc0OWU5NTM1NGYzM2ViNWRjNjY1M2M2ZGI3ZDUwMmFkYjk1ZmUKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglXZWQgTWFyIDI2IDE4OjI2OjQzIDIwMDggKzAxMDAKCiAgICBVU0IsIFN0b3JhZ2U6IGZpeCBhIGJ1ZyBpbnRyb2R1Y2VkIGluIGNvbW1pdAogICAgZjZiNDRlMGU0ZDE4ZmU1MDc4MzNhMGY3NmQyNGE5YWE3MmMxMjNmMSB0aGF0IHdpbGwgY2F1c2UgdXNiX3N0b3JfaW5mbwogICAgdG8gb25seSBwcmludCBvbmx5IGluZm9ybWF0aW9uIG9uIG9uZSBzdG9yYWdlIGRldmljZSwgYnV0IG5vdCBmb3IKICAgIG11bHRpcGxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgODQxZTVlZGQxNjIzZjNmZWNiNmJmZmM1YzJmOTM4ZWQ3YTk0NzM2MApBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyNiAxNzo0Nzo0NCAyMDA4ICswMTAwCgogICAgRml4IGNvbXBpbGF0aW9uIGVycm9yIGluIGNtZF91c2IuYwoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgY29tcGlsYXRpb24gZXJyb3IKICAgIGNtZF91c2IuYzogSW4gZnVuY3Rpb24gJ2RvX3VzYic6CiAgICBjbWRfdXNiLmM6NTUyOiBlcnJvcjogdm9pZCB2YWx1ZSBub3QgaWdub3JlZCBhcyBpdCBvdWdodCB0byBiZQoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgZGQ2YzkxMGFhZGYyN2M4MjJmMTdiODdlYWUxYTliZDBiMmUzYWExNQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBNYXIgMjYgMDg6NTM6NTMgMjAwOCAtMDUwMAoKICAgIDg1eHg6IEFkZCBjcHVfbXBfbG1iX3Jlc2VydmUgaGVscGVyIHRvIHJlc2VydmUgYm9vdCBwYWdlCgogICAgUHJvdmlkZSBhIGJvYXJkX2xtYl9yZXNlcnZlIGhlbHBlciBmdW5jdGlvbiB0byBlbnN1cmUgd2UgcmVzZXJ2ZQogICAgdGhlIHBhZ2Ugb2YgbWVtb3J5IHdlIGFyZSB1c2luZyBmb3IgdGhlIGJvb3QgcGFnZSB0cmFuc2xhdGlvbiBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNzk2NzlkODAwMjFhYjA5NWU2MzllMjUwY2E0NzJmZTUyNmRhMDJlMgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBNYXIgMjYgMDg6MzQ6MjUgMjAwOCAtMDUwMAoKICAgIDg1eHg6IFVwZGF0ZSBtdWx0aWNvcmUgYm9vdCBtZWNoYW5pc20gdG8gZVBBUFIgdjAuODEgc3BlYwoKICAgIFRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhcmUgbmVlZGVkIHRvIGJlIGlubGluZSB3aXRoIGVQQVBSIHYwLjgxOgoKICAgICogcjQsIHI1IGFuZCBub3cgYWx3YXlzIHNldCB0byAwIG9uIGJvb3QgcmVsZWFzZQogICAgKiByNyBpcyB1c2VkIHRvIHBhc3MgdGhlIHNpemUgb2YgdGhlIGluaXRpYWwgbWFwIGFyZWEgKElNQSkKICAgICogRVBBUFJfTUFHSUMgdmFsdWUgY2hhbmdlZCBmb3IgYm9vay1lIHByb2Nlc3NvcnMKICAgICogY2hhbmdlcyBpbiB0aGUgc3BpbiB0YWJsZSBsYXlvdXQKICAgICogc3BpbiB0YWJsZSBzdXBwb3J0cyBhIDY0LWJpdCBwaHlzaWNhbCByZWxlYXNlIGFkZHJlc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDI1ZWVkYjJjMTk1OGExMzExMGM3ZGUxZmM4MDliNjI0MDUzY2M2OWMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWFyIDE5IDE1OjAyOjA3IDIwMDggLTA1MDAKCiAgICBGU0w6IENsZWFuIHVwIGJvYXJkL2ZyZWVzY2FsZS9jb21tb24vTWFrZWZpbGUKCiAgICBFYWNoIGZpbGUgdGhhdCBjYW4gYmUgYnVpbHQgaGVyZSBub3cgZm9sbG93cyBzb21lCiAgICBDT05GSUdfIG9wdGlvbiBzbyB0aGF0IHRoZXkgYXJlIGFwcHJvcHJpYXRlbHkgYnVpbHQKICAgIG9yIG5vdCwgYXMgbmVlZGVkLglBbmQgQ09ORklHXyBkZWZpbmVzIHdlcmUgYWRkZWQKICAgIHRvIHZhcmlvdXMgYm9hcmQgY29uZmlnIGZpbGVzIHRvIG1ha2Ugc3VyZSB0aGF0IGhhcHBlbnMuCgogICAgVGhlIG90aGVyIGJvYXJkL2ZyZWVzY2FsZS8qL01ha2VmaWxlcyBubyBsb25nZXIgbmVlZAogICAgdG8gcmVhY2ggdXAgYW5kIG92ZXIgaW50byAuLi9jb21tb24gdG8gYnVpbGQgdGhlaXIKICAgIGluZGl2aWR1YWxseSBuZWVkZWQgZmlsZXMgYW55IG1vcmUuCgogICAgQm9hcmRzIHRoYXQgYXJlIENEUyBzcGVjaWZpYyB3ZXJlIHJlbmFtZWQgd2l0aCBjZHNfIHByZWZpeC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE1YWY0YjM1OGE3Y2FhOWMwYWEzNzRkNGQ4OTRiZjc2MmVjMzc2NjkKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgRmViIDI3IDIyOjAwOjI3IDIwMDggLTA2MDAKCiAgICA4NXh4OiBGaXggbWVyZ2UgZHVwbGljYXRpb24KCiAgICBmdF9maXh1cF9jcHUoKSBnb3QgZHVwbGljYXRlZCBpbiBzb21lIG1lcmdlIHNuYWZ1LglSZW1vdmUgdGhlIGR1cGxpY2F0ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDU4OTNiM2QwYTQwODRmODdhMDZhNWQzZGMwM2RiOTEyMDY4MTg5NDEKQXV0aG9yOiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBGZWIgMTIgMTY6MzU6MDcgMjAwOCAtMDYwMAoKICAgIDg1eHg6IEV4cGFuZCBDQ1NSIHNwYWNlIHdpdGggbW9yZSBERFIgY29udHJvbGxlciByZWdpc3RlcnMuCgogICAgU2lnbmVkLW9mZi1ieTogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYTNlNzdmYTUzNTliM2Y5ZjU5ZTRlOTQ2YjQ2ZDU3YTUzMDU3Y2M4NQpBdXRob3I6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiA4IDE4OjA1OjA4IDIwMDggLTA2MDAKCiAgICA4NXh4OiBTcGVlZCB1cCBnZXRfZGRyX2ZyZXEoKSBhbmQgZ2V0X2J1c19mcmVxKCkKCiAgICBnZXRfZGRyX2ZyZXEoKSBhbmQgZ2V0X2J1c19mcmVxKCkgdXNlZCBnZXRfc3lzX2luZm8oKSBlYWNoIHRpbWUgdGhleSB3ZXJlCiAgICBjYWxsZWQuICBIb3dldmVyLCBnZXRfc3lzX2luZm8oKSByZWNhbGN1bGF0ZXMgZXh0cmFuZW91cyBpbmZvcm1hdGlvbiB3aGVuCiAgICBjYWxsZWQgZWFjaCB0aW1lLiAgSGF2ZSBnZXRfZGRyX2ZyZXEoKSBhbmQgZ2V0X2J1c19mcmVxKCkgcmV0dXJuIG1lbW9pemVkCiAgICB2YWx1ZXMgZnJvbSBnbG9iYWxfZGF0YSBpbnN0ZWFkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZTllYTY3OTkxOGZiYzlhNTNmYTJmMmE5MDRhYWM4NzRlYTczNjAzNgpBdXRob3I6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiA4IDE2OjQ2OjI3IDIwMDggLTA2MDAKCiAgICA4NXh4OiBTaG93IEREUiBtZW1vcnkgZGF0YSByYXRlIGluIGFkZGl0aW9uIHRvIHRoZSBtZW1vcnkgY2xvY2sgZnJlcXVlbmN5LgoKICAgIFNob3cgdGhlIEREUiBtZW1vcnkgZGF0YSByYXRlIGluIGFkZGl0aW9uIHRvIHRoZSBtZW1vcnkgY2xvY2sKICAgIGZyZXF1ZW5jeS4JRm9yIEREUi9ERFIyIG1lbW9yaWVzIHRoZSBtZW1vcnkgZGF0YSByYXRlIGlzIDJ4IHRoZQogICAgbWVtb3J5IGNsb2NrLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNTkxOTMzY2E2ZWFiYzQ0MGU2ZWQ2OTY3MjMzYWFmNTZmY2U0NjRhMwpBdXRob3I6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiA4IDE2OjQ0OjUzIDIwMDggLTA2MDAKCiAgICA4NXh4OiBnZXRfdGJjbGsoKSBzcGVlZCB1cCBhbmQgcm91bmRpbmcgZml4CgogICAgU3BlZWQgdXAgZ2V0X3RiY2xrKCkgYnkgcmVmZXJlbmNpbmcgcHJlLWNvbXB1dGVkIGJ1cyBjbG9jawogICAgZnJlcXVlbmN5IHZhbHVlIGZyb20gZ2xvYmFsIGRhdGEgaW5zdGVhZCBvZiBzeXNfaW5mb190LiAgRml4CiAgICByb3VuZGluZyBvZiByZXN1bHQgdG8gbmVhcmVzdDsgcHJldmlvdXNseSBpdCB3YXMgcm91bmRpbmcKICAgIHVwd2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAxY2VkMTIxNjAwYjIwNjBhYjJmZjlmMGZkZGQ5NDIxZmQ3MGEwZGM2CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDYgMDE6MTk6NDAgMjAwOCAtMDYwMAoKICAgIFVwZGF0ZSBTVlIgbnVtYmVycyB0byBleHBhbmQgc3VwcG9ydAoKICAgIEZTTCBoYXMgdGFrZW4gdG8gdXNpbmcgU1ZSWzE2OjIzXSBhcyBhbiBTT0Mgc3ViLXZlcnNpb24gZmllbGQuICBUaGlzCiAgICBpcyB1c2VkIHRvIGRpc3Rpbmd1aXNoIGNlcnRhaW4gdmFyaWFudHMgd2l0aGluIGFuIFNPQyBmYW1pbHkuICBUbwogICAgYWNjb3VudCBmb3IgdGhpcywgd2UgYWRkIHRoZSBTVlJfU09DX1ZFUigpIG1hY3JvLCBhbmQgdXBkYXRlIHRoZSBTVlJfKgogICAgY29uc3RhbnRzIHRvIHJlZmxlY3QgdGhlIGxhcmdlciB2YWx1ZS4gIFdlIGFsc28gYWRkIFNWUiBudW1iZXJzIGZvciBhbGwKICAgIG9mIHRoZSBjdXJyZW50IHZhcmlhbnRzLiAgRmluYWxseSwgdG8gbWFrZSB0aGluZ3MgbmVhdGVyLCByYXRoZXIgdGhhbgogICAgdXNlIGFuIGVub3Jtb3VzIHN3aXRjaCBzdGF0ZW1lbnQgdG8gcHJpbnQgb3V0IHRoZSBDUFUgdHlwZSwgd2UgY3JlYXRlCiAgICBhbmQgYXJyYXkgb2YgU1ZSL25hbWUgcGFpcnMgKHVzaW5nIGEgbWFjcm8pLCBhbmQgcHJpbnQgb3V0IHRoZSBDUFUgbmFtZQogICAgdGhhdCBtYXRjaGVzIHRoZSBTVlIgU09DIHZlcnNpb24uCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI4M2VlZjQ0MGNmM2NlZjgxNjE3MmNjYmI1ODk3Y2NkOGU0MDNjZjMKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgNiAwMToxMjo1NyAyMDA4IC0wNjAwCgogICAgQWRkIHRoZSBGcmVlc2NhbGUgUENJIGRldmljZSBJRHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2FmZjBjMDUxYWQwNjEzMTcxY2YyYjk5NDFlZTQ4Njc1YzYyZTdjZApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBGZWIgMTQgMTE6MDQ6MjMgMjAwOCAtMDYwMAoKICAgIDg1eHg6IEFkZGVkIHN1cHBvcnQgZm9yIG11bHRpY29yZSBib290IG1lY2hhbmlzbQoKICAgIEFkZGVkIHRoZSBjcHUgY29tbWFuZCB0aGF0IHByb3ZpZGVzIGEgZ2VuZXJpYyBtZWNoYW5pc20gdG8gZ2V0IHN0YXR1cywKICAgIHJlc2V0LCBhbmQgcmVsZWFzZSBzZWNvbmRhcnkgY29yZXMgaW4gbXVsdGljb3JlIHByb2Nlc3NvcnMuCgogICAgQWRkZWQgc3VwcG9ydCBmb3IgdXNpbmcgdGhlIGVQQVBSIGRlZmluZWQgc3Bpbi10YWJsZSBtZWNoYW5pc20gb24gODV4eC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVjMmI3NGZmZDM2ZjAyYzYxMjM3MjVlN2MyNTMzZGQyZGVhZjRiNjQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDE3IDE2OjQ4OjMzIDIwMDggLTA2MDAKCiAgICA4NXh4OiBBZGRlZCBzdXBwb3J0IGZvciBtdWx0aWNvcmUgYm9vdCBtZWNoYW5pc20KCiAgICBBZGRlZCB0aGUgY3B1IGNvbW1hbmQgdGhhdCBwcm92aWRlcyBhIGdlbmVyaWMgbWVjaGFuaXNtIHRvIGdldCBzdGF0dXMsCiAgICByZXNldCwgYW5kIHJlbGVhc2Ugc2Vjb25kYXJ5IGNvcmVzIGluIG11bHRpY29yZSBwcm9jZXNzb3JzLgoKICAgIEFkZGVkIHN1cHBvcnQgZm9yIHVzaW5nIHRoZSBlUEFQUiBkZWZpbmVkIHNwaW4tdGFibGUgbWVjaGFuaXNtIG9uIDg1eHguCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmNjk3NjZlNGI1ZDQ3ZWNkM2FhNTg2NzdhOGRhODc1Njk0ZjM2NGYyCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEphbiAzMCAxNDo1NToxNCAyMDA4IC0wNjAwCgogICAgODV4eDogQWRkIHRoZSBjb25jZXB0IG9mIENGR19DQ1NSQkFSX1BIWVMKCiAgICBXaGVuIHdlIGdvIHRvIDM2LWJpdCBwaHlzaWNhbCBhZGRyZXNzZXMgd2UgbmVlZCB0byBrZWVwIHRoZSBjb25jZXB0IG9mCiAgICB0aGUgcGh5c2ljYWwgQ0NTUkJBUiBhZGRyZXNzIHNlcGVyYXRlIGZyb20gdGhlIHZpcnR1YWwgb25lLgoKICAgIEZvciB0aGUgbWFqb3JpdHkgb2YgYm9hcmRzIENGR19DQ1NCQVJfUEhZUyA9PSBDRkdfQ0NTUkJBUgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNWI1ZWI5Y2E1Yjc3OGY3NjNiY2YzMzI2OTdiMzVjYzFlNzQ3NjI2ZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjYgMTU6Mzg6NDcgMjAwOCArMDEwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZGE4ODA4ZGY3YTljZWY1YTNkMmVlMjg2ZWY5ZWJmOWRlMTc4MDY2MApBdXRob3I6IEpvYWtpbSBUamVybmx1bmQgPEpvYWtpbS5UamVybmx1bmRAdHJhbnNtb2RlLnNlPgpEYXRlOglXZWQgTWFyIDI2IDEzOjAyOjEzIDIwMDggKzAxMDAKCiAgICBBZGQgQ0ZHX1JUQ19EUzEzMzdfTk9PU0MgdG8gdHVybiBvZmYgT1NDIG91dHB1dAoKICAgIFRoZSBkZWZhdWx0IHNldHRpbmdzIGZvciBSVEMgRFMxMzM3IGtlZXBzIHRoZSBPU0MKICAgIG91dHB1dCwgMzIsNzY4IEh6LCBvbi4gVGhpcyBhZGQgQ0ZHX1JUQ19EUzEzMzdfTk9PU0MgdG8KICAgIHR1cm4gaXQgb2ZmLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvYWtpbSBUamVybmx1bmQgPEpvYWtpbS5UamVybmx1bmRAdHJhbnNtb2RlLnNlPgoKY29tbWl0IDQzOGE0YzExMjYwYjRlYTk4MDUwMzliMGI0ZjkyZjlkZjUzMDZiMDIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDI2IDExOjQ4OjQ2IDIwMDggKzAxMDAKCiAgICBDbGVhbnVwIGNvZGluZyBzdHlsZSwgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMjE4Y2E3MjRjMDhjYThhNjQ5ZjA5MTdjZjIwMWNmMjNkNGIzM2YzOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjYgMTA6NDA6MTIgMjAwOCArMDEwMAoKICAgIFJFQURNRTogdXBkYXRlIGRvY3VtZW50YXRpb24gKGF2YWlsYWJpbGl0eSwgbGlua3MsIGV0Yy4pCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmNmI0NGUwZTRkMThmZTUwNzgzM2EwZjc2ZDI0YTlhYTcyYzEyM2YxCkF1dGhvcjogQXJhcyBWYWljaGFzIDxhcmFzdkBtYWd0ZWNoLmNvbS5hdT4KRGF0ZToJVHVlIE1hciAyNSAxMjowOTowNyAyMDA4ICsxMTAwCgogICAgVVNCIFN0b3JhZ2UsIGFkZCBtZWFuaW5nZnVsIHJldHVybiB2YWx1ZQoKICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgInVzYiBzdG9yYWdlIiBjb21tYW5kIHRvIHJldHVybiBzdWNjZXNzIGlmIGl0CiAgICBmaW5kcyBhIFVTQiBzdG9yYWdlIGRldmljZSwgb3RoZXJ3aXNlIGl0IHJldHVybnMgZXJyb3IuCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCAxOGU2OWEzNWVmYmIwNzg0MDNkYjBjMDA2Mzk4NjQ3MGRhZDdkMDgyCkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CUZyaSBNYXIgMTQgMjM6MjA6MTggMjAwOCArMDMwMAoKICAgIDgzeHgvZmR0X3N1cHBvcnQ6IGxldCB1c2VyIHNwZWNpZml5IEZTTCBVU0IgRHVhbC1Sb2xlIGNvbnRyb2xsZXIgcm9sZQoKICAgIExpbnV4IHVuZGVyc3RhbmRzICJob3N0IiAoZGVmYXVsdCksICJwZXJpcGhlcmFsIiBhbmQgIm90ZyIgKGJyb2tlbikuCiAgICBUaG91Z2gsIFUtQm9vdCBkb2Vzbid0IHJlc3RyaWN0IGRyX21vZGUgdmFyaWFibGUgdG8gdGhlc2UgdmFsdWVzICh0aGluawogICAgb2YgcmVuYW1lcyBpbiBmdXR1cmUpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNzYwNDc4M2IyMzZlMzY4ZjIyNWVmYjdiM2VmYjQxOGZlMjBiNDA0CkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CUZyaSBNYXIgMTQgMjM6MjA6MzAgMjAwOCArMDMwMAoKICAgIHRzZWM6IGZpeCBsaW5rIGRldGVjdGlvbiBmb3IgdGhlIFJUTDgyMTFCIFBIWQoKICAgIFJUTDgyMTFCIHNldHMgbGluayBzdGF0ZSByZWdpc3RlciBhZnRlciBhdXRvbmVnb3RpYXRpb24gY29tcGxldGUsCiAgICBzbyB3aXRoIGJvb3RkZWxheT0wIFJUTDgyMTFCIHdpbGwgcmVwb3J0IGxhY2sgb2YgdGhlIGxpbmsuCgogICAgVG8gZml4IHRoaXMsIHdlIHNob3VsZCB3YWl0IGZvciBhbmVnIHRvIGNvbXBsZXRlLCBldmVuIGlmIHRoZQogICAgbGluayBpcyBjdXJyZW50bHkgZG93bi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2ZhOWNiYjAwZGM4M2ZjZjE3NTA0MmI2ZjIwYzJjOWJjZTlhMTVmNApBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gTWFyIDI0IDIwOjQ3OjA5IDIwMDggKzAzMDAKCiAgICBtcGM4M3h4OiBhZGQgImZzbCxzb2MiIGFuZCAiZnNsLGltbXIiIGNvbXBhdGlibGUgZml4dXBzCgogICAgZGV2aWNlX3R5cGUgPSAic29jIiBpcyBiZWluZyBkZXByZWNhdGVkLCBuZXdlciBkZXZpY2UgdHJlZXMgd2lsbCB1c2UKICAgICJmc2wsc29jIiBhbmQvb3IgImZzbCxpbW1yIiBmb3IgdGhlIHNvYyBub2Rlcy4KCiAgICBUaGlzIHBhdGNoIGFsc28gYWRkcyBjbG9jay1mcmVxdWVuY3kgcHJvcGVydHkgZm9yIHNvYyBub2RlcyAodGhlIHNhbWUKICAgIHZhbHVlIGFzIGJ1cy1mcmVxdWVuY3kpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IDUwN2UyZDc5YzkxNDQxYTBiYjJjZDNkMGMzMWM4YmZlM2Y4Y2VjMDcKQXV0aG9yOiBKb2UgRCdBYmJyYWNjaW8gPGxqZDAxNUBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTWFyIDI0IDEzOjAwOjU5IDIwMDggLTA0MDAKCiAgICBNb2RpZmllZCB0aGUgRERSIFNEUkFNIGNsb2NrIGNvbnRyb2wgcmVnaXN0ZXIgdG8gZGVsYXkgTUNLL01DS19CIDMvNCBjbG9jawoKICAgIFdpdGggdGhlIG9yaWdpbmFsIHZhbHVlIG9mIDEvMiBjbG9jayBjeWNsZSBkZWxheSwgdGhlIHN5c3RlbSByYW4gcmVsYXRpdmVseQogICAgc3RhYmxlIGV4Y2VwdCB3aGVuIHdlIHJ1biBiZW5jaG1hcmtzIHRoYXQgYXJlIGludGVuc2l2ZSB1c2VycyBvZiBtZW1vcnkuCiAgICBXaGVuIEkgcnVuIHNhbWJhIGNvbm5lY3RlZCBkaXNrIHdpdGggYSBIREJFTkNIIHRlc3QsIHRoZSBzeXN0ZW0gbG9ja3MtdXAKICAgIG9yIHJlYm9vdHMgc3BvcmFkaWNhbGx5LgoKICAgIFNpZ25lZC1vZmYgYnk6IEpvZSBEJ0FiYnJhY2NpbyA8Sm9lLkQnYWJicmFjY2lvQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTdiYTMyZDQ4MGE4NmRiNWRiOGRjZDhjYTY2YjIxYjRjYWRkYTkyMwpBdXRob3I6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTWFyIDI0IDEyOjQ0OjEzIDIwMDggLTA1MDAKCiAgICBtcGM4M3h4OiBTZXQgUENJIEkvTyBidXMtYWRkcmVzcyBiYXNlIHRvIHplcm8uCgogICAgVGhlIGRldmljZSB0cmVlcyBmb3IgdGhlc2UgYm9hcmRzIGRlc2NyaWJlIFBDSSBJL08gYXMgc3RhcnRpbmcgZnJvbQogICAgYWRkcmVzcyB6ZXJvIGZyb20gdGhlIGRldmljZSdzIHBlcnNwZWN0aXZlLgoKICAgIFBsYWNpbmcgSS9PIGVsc2V3aGVyZSBtYXkgY2F1c2UgcHJvYmxlbXMgd2l0aCBjZXJ0YWluIFBDSSBib2FyZHMsIGFuZCBtYXkKICAgIGNhdXNlIHByb2JsZW1zIHdpdGggTGludXguCgogICAgU2lnbmVkLW9mZi1ieTogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjcwMGU3ZGY3ZmVjZjJkMzc2NWFlNTY4Y2U3N2NlNzg4Y2RlNGYzZQpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gTWFyIDI0IDIwOjQ3OjA1IDIwMDggKzAzMDAKCiAgICBtcGM4M3h4OiBNUEM4MzYwRS1SREs6IHVzZSAzMy4zKDMpTUh6IENMS0lOL1NZU19DTEsKCiAgICBBdCBsZWFzdCBvbiB0aGUgIjMzTUh6IFBpbG90IiBib2FyZCBjcnlzdGFsIGlzIGFjdHVhbGx5IDMzLjNNSHouCiAgICBUaGlzIHBhdGNoIGZpeGVzICJzeXN0ZW0gdGltZSBkcmlmdGluZyIgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCAzYTBjZmRkNTc2ZGM5YjE2ZDE0NjhkMzczMzkxODI2MDdjNjk3ZmI3CkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBNYXIgMjQgMjA6NDc6MDIgMjAwOCArMDMwMAoKICAgIG1wYzgzeHg6IE1QQzgzNjBFLVJESzogZGVmaW5lIENPTkZJR19PRl9TVERPVVRfVklBX0FMSUFTCgogICAgVGhpcyBpcyBuZWVkZWQgdG8gdXBkYXRlIC9jaG9vc2VuL2xpbnV4LHN0ZG91dC1wYXRoIHByb3Blcmx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IDM0MTllYjYyZjA4OGQ3YTIyZjFkMmEzY2ViZjc2Yjc3ZTQwOGI1YjkKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE1hciAyNCAyMDo0NzowMCAyMDA4ICswMzAwCgogICAgbXBjODN4eDogTVBDODM2MEUtUkRLOiBhZGQgZGhjcCBjb21tYW5kCgogICAgUGx1cyBtb2RpZnkgZW52aXJvbm1lbnQgdG8gdXNlIGl0IGFuZCByZW1vdmUgYm9vdGZpbGUgZW52IHZhcmlhYmxlLAogICAgaXQgaXMgaW50ZXJuYWwgYW5kIENPTkZJR19CT09URklMRSBpcyB1c2VkIGZvciB0aGVzZSBwdXJwb3Nlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCBkODkyYjJkYmI0MDg3YTI2Nzc4YmZkNDI0NzBjM2VhN2QwZTJiNmFhCkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBNYXIgMjQgMjA6NDY6NTcgMjAwOCArMDMwMAoKICAgIG1wYzgzeHg6IE1QQzgzNjBFLVJESzogcmV3b3JrIGRkciBzZXR1cCwgZW5hYmxlIGVjYwoKICAgIEN1cnJlbnQgRERSIHNldHVwIGVhc2lseSBjYXVzZXMgbWVtb3J5IGNvcnJ1cHRpb24sIHRoaXMgcGF0Y2ggZml4ZXMgaXQuCgogICAgQWxzbyBmaXggVElNSU5HX0NGRzBfTVJTX0NZQyBkZWZpbml0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IGQ0N2Q0OWNjMzdhMzhmMjcxOWEzZTFiOWJiZTA4YWM4MTBjZjJkOWEKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE1hciAyNCAyMDo0Njo1MyAyMDA4ICswMzAwCgogICAgbXBjODN4eDogTVBDODM2MEUtUkRLOiBjb25maWd1cmUgcGFyaW8gcGlucyBmb3IgQUQ3ODQzIGFuZCBGSENJCgogICAgVGhpcyBwYXRjaCBhZGRzIHFlIHBhcmlvIHBpbnMgY29uZmlndXJhdGlvbiBmb3IgQUQ3ODQzIEFEQy9Ub3VjaHNjcmVlbgogICAgY29udHJvbGxlciBhbmQgRkhDSSAoUUUgVVNCKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCA3YWQ5NTk0OTA5NjJlNjg0MjY0OGQ4N2Q0YmQ3OTVlYTZjZGNjZTY3CkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBNYXIgMjQgMjA6NDY6NTEgMjAwOCArMDMwMAoKICAgIG1wYzgzeHg6IE1QQzgzNjBFLVJESzogYWRkIHN1cHBvcnQgZm9yIE5BTkQKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCA5YTNlODMyYWViNDkxODYxZDAyOTk5MTI0MTU3MmViZGY0YjViNjFiCkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBNYXIgMjQgMjA6NDY6NDYgMjAwOCArMDMwMAoKICAgIG1wYzgzeHg6IE1QQzgzNjBFLVJESzogdXNlIFJHTUlJX1JYSUQgaW50ZXJmYWNlIG1vZGUKCiAgICBUaGlzIGlzIG5lZWRlZCBmb3IgQkNNIFBIWXMgdG8gd29yayBvbiB0aGlzIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IDMwMDYxNWRjNWQ5YjBhMjAyMmZiYzZhZjBjMTMxNTllMzNmZDc1MmUKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE1hciAyNCAyMDo0NjozNCAyMDA4ICswMzAwCgogICAgdWVjOiBhZGQgc3VwcG9ydCBmb3IgQnJvYWRjb20gQkNNNTQ4MSBHaWdhYml0IFBIWQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBzdXBwb3J0IGZvciBCcm9hZGNvbSBCQ001NDgxIFBIWS4KCiAgICBSWEQtUlhDIGRlbGF5IHF1aXJrIGNvbWVzIGZyb20gTVBDODM2MEUtUkRLIEJTUCBzb3VyY2UsIGF1dGhvciBpcwogICAgUGV0ZXIgQmFyYWRhIDxwZXRlcmJAbG9naWNwZC5jb20+LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IDZhNjAwYzNhMTg3NmJjMjAzNDQ1ZGY0ZjBmZDZiMTI2NDgyNTk2NjYKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE1hciAyNCAyMDo0NjoyOCAyMDA4ICswMzAwCgogICAgdWVjOiBhZGQgc3VwcG9ydCBmb3IgUkdNSUlfUlhJRCBpbnRlcmZhY2UgbW9kZQoKICAgIFBIWSBkcml2ZXJzIHdpbGwgdXNlIGl0IHRvIHNldHVwIHNvZnR3YXJlIGRlbGF5IGJldHdlZW4gUlhEIGFuZCBSWEMKICAgIHNpZ25hbHMuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+Cgpjb21taXQgOTFjZGFhM2E5ZDc1NjJiODY5ZDk2Nzc0ZTljOWRkZjE0MmMwODQ4ZApBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gTWFyIDI0IDIwOjQ2OjI0IDIwMDggKzAzMDAKCiAgICB1ZWM6IGFkZCBzdXBwb3J0IGZvciBnYml0IG1paSBzdGF0dXMgcmVhZGluZ3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KCmNvbW1pdCBhYWJjZTdmYjUwNWZmZTU1ZWJmM2JmNGRjYWZkYWU5N2E1ODE1NThkCkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBNYXIgMjQgMTc6NDA6NDcgMjAwOCArMDMwMAoKICAgIDgzeHg6IGRlZmluZSBDT05GSUdfT0ZfU1RET1VUX1ZJQV9BTElBUyBmb3IgdGhlIE1QQzgzN1hFUkRCIGJvYXJkcwoKICAgIFRoaXMgaXMgcHJpbWFyaWx5IGZvciB0aGUgZWFybHkgY29uc29sZSBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IDJiZDc0NjBlOTI4M2VjOTg1NjUxODliM2NkYmNmYjJiY2RjZGQ2MzUKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE1hciAyNCAxNzo0MDo0MyAyMDA4ICswMzAwCgogICAgODN4eDogaW5pdGlhbGl6ZSBzZXJkZXMgZm9yIE1QQzgzN1hSREIgYm9hcmRzCgogICAgT24gdGhlIE1QQzgzNzdFUkRCOiAyIFNBVEEgYW5kIDIgUENJLUUuCiAgICBPbiB0aGUgTVBDODM3OEVSREI6IDIgUENJLUUKICAgIE9uIHRoZSBNUEM4Mzc5RVJEQjogNCBTQVRBCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+Cgpjb21taXQgNDUzMzE2YTJhMTk2NDJkOGFmY2JjYTc0NTJlNDBhNmI0NGExOTdiMQpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gTWFyIDI0IDE3OjQwOjMyIDIwMDggKzAzMDAKCiAgICA4M3h4OiBzZXJkZXMgc2V0dXAgcm91dGluZXMKCiAgICBUaGlzIHBhdGNoIGFkZHMgZmV3IHJvdXRpbmVzIHRvIGNvbmZpZ3VyZSBzZXJkZXMgb24gODM3eCB0YXJnZXRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IGE3OTZjZGY5YzM3N2NiNGU1ZDYxZDEwNzlhMjk2NjA4ZjhmYmQ5MDMKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE1hciAyNCAxNzo0MDoyNyAyMDA4ICswMzAwCgogICAgODN4eDogc3BsaXQgQ09CSlMgb250byBzZXBhcmF0ZSBsaW5lcwoKICAgIC4ucGx1cyBnZXQgcmlkIG9mIHNvbWUgI2lmZGVmcyBpbiB0aGUgLmMgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+Cgpjb21taXQgNDZhM2FlZWE3M2MxM2FiMDRlYmY3YTg3MzlhZmI4N2FjNWRhOTRhMwpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglNb24gTWFyIDI0IDE3OjQwOjIzIDIwMDggKzAzMDAKCiAgICA4M3h4OiBuYW5kIHN1cHBvcnQgZm9yIE1QQzgzN1hSREIgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+Cgpjb21taXQgODJlNDVhMjA0MTkwNTkzZTg2MTMxNDVhOTI4Zjk5OGZiOGM5MDljNApBdXRob3I6IEplcnJ5IFZhbiBCYXJlbiA8Z3ZiLnVib290QGdtYWlsLmNvbT4KRGF0ZToJVHVlIE1hciAxOCAyMTo0NDo0MSAyMDA4IC0wNDAwCgogICAgRW5hYmxlIENPTkZJR19GTEFTSF9TSE9XX1BST0dSRVNTIG9uIHRoZSBNUEM4MzYwRU1EUy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZmE3YTFiNDcxOWUzMjVmY2UzMzI2ODlmYjg3NTRlYzE2NjE5MWZmCkF1dGhvcjogTWljaGFlbCBCYXJrb3dza2kgPG1pY2hhZWwuYmFya293c2tpQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBNYXIgMjAgMTM6MTU6MzkgMjAwOCAtMDQwMAoKICAgIG1wYzgzMjNlcmRiOiByZW1vdmUgUlRDIGFuZCBhZGQgRUVQUk9NCgogICAgVGhlcmUncyBubyBvbi1ib2FyZCBSVEMgb24gdGhlIE1QQzgzMjNFUkRCLCBidXQgdGhlcmUgaXMgYW4gRUVQUk9NLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgQmFya293c2tpIDxtaWNoYWVsLmJhcmtvd3NraUBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWJiZWVhODZlYjZhZmI4NzIzNzRjZDIzMjE3Y2IzYzEwMTg0NDNlZApBdXRob3I6IE1pY2hhZWwgQmFya293c2tpIDxtaWNoYWVsLmJhcmtvd3NraUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWFyIDIwIDEzOjE1OjM0IDIwMDggLTA0MDAKCiAgICBtcGM4MzIzZXJkYjogSW1wcm92ZSB0aGUgc3lzdGVtIHBlcmZvcm1hbmNlCgogICAgVGhlIGZvbGxvd2luZyBjaGFuZ2VzIGFyZSBiYXNlZCBvbiBrZXJuZWwgVUNDIGV0aGVybmV0IHBlcmZvcm1hbmNlOgoKICAgIDEuCU1ha2UgdGhlIENTQiBidXMgcGlwZWxpbmUgZGVwdGggYXMgNCwgYW5kIGVuYWJsZSB0aGUgcmVwZWF0IG1vZGUKICAgIDIuCU9wdGltaXplIHRyYW5zYWN0aW9ucyBiZXR3ZWVuIFFFIGFuZCBDU0IuICBBZGRlZCBDRkdfU1BDUl9PUFQKCXN3aXRjaCB0byBlbmFibGUgdGhpcyBzZXR0aW5nLgoKICAgIFRoZSBmb2xsb3dpbmcgY2hhbmdlcyBhcmUgYmFzZWQgb24gdGhlIEFwcCBOb3RlIEFOMzM2OSBhbmQKICAgIHZlcmlmaWVkIHRvIGltcHJvdmUgbWVtb3J5IGxhdGVuY3kgdXNpbmcgTE1iZW5jaDoKCiAgICAzLglDUzBfQ09ORklHW0FQX25fRU5dIGlzIGNoYW5nZWQgZnJvbSAxIHRvIDAKICAgIDQuCUNTMF9DT05GSUdbT0RUX1dSX0NPTkZJR10gc2V0IHRvIDEuICBXYXMgYSByZXNlcnZlZCBzZXR0aW5nCglwcmV2aW91c2x5LgogICAgNS4JVElNSU5HX0NGR18xW1dSUkVDXSBpcyBjaGFuZ2VkIGZyb20gM2Nsa3MgdG8gMmNsa3MgIChiYXNlZCBvbgoJVHdyPTE1bnMsIGFuZCB0aGlzIHdhcyBhbHJlYWR5IHRoZSBzZXR0aW5nIGluIEREUl9NT0RFKQogICAgNi4JVElNSU5HX0NGR18xW1BSRVRPQUNUXSBpcyBjaGFuZ2VkIGZyb20gM2Nsa3MgdG8gMmNsa3MuIChiYXNlZCBvbgoJVHJwPTE1bnMpCiAgICA3LglUSU1JTkdfQ0ZHXzFbQUNUVE9QUkVdIGlzIGNoYW5nZWQgZnJvbSA5Y2xrcyB0byA2Y2xrcy4gKGJhc2VkIG9uCglUcmFzPTQwbnMpCiAgICA4LglUSU1JTkdfQ0ZHXzFbQUNUVE9SV10gaXMgY2hhbmdlZCBmcm9tIDNjbGtzIHRvIDJjbGtzLiAoYmFzZWQgb24KCVRyY2Q9MTVucykKICAgIDkuCVRJTUlOR19DRkdfMVtSRUZSRUNdIGNoYW5nZWQgZnJvbSAyMSBjbGtzIHRvIDExY2xrcy4gIChiYXNlZCBvbgoJVHJmYz03NW5zKQogICAgMTAuIFRJTUlOR19DRkdfMltGT1VSX0FDVF0gaXMgY2hhbmdlZCBmcm9tIDEwIGNsa3MgdG8gN2Nsa3MuICAoYmFzZWQKCW9uIFRmYXc9NTBucykKICAgIDExLiBUSU1JTkdfQ0ZHXzJbQUREX0xBVF0gYW5kIEREUl9NT0RFW0FMXSBjaGFuZ2VkIGZyb20gMCB0byAxIChiYXNlZAoJb24gQ0w9MyBhbmQgV0w9MikuCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBCYXJrb3dza2kgPG1pY2hhZWwuYmFya293c2tpQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmYzU0OWM4NzFmNDM5MzMzOTZhNWIzZTIxZDg5NzAyM2Q0YjMxYjhkCkF1dGhvcjogTWljaGFlbCBCYXJrb3dza2kgPG1pY2hhZWwuYmFya293c2tpQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBNYXIgMjAgMTM6MTU6MjggMjAwOCAtMDQwMAoKICAgIG1wYzgzMjNlcmRiOiB1c2UgcmVhZGFibGUgRERSIGNvbmZpZyBtYWNyb3MKCiAgICBVc2UgYXZhaWxhYmxlIHNoaWZ0L21hc2sgbWFjcm9zIHRvIGRlZmluZSBERFIgY29uZmlndXJhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEJhcmtvd3NraSA8bWljaGFlbC5iYXJrb3dza2lAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg5Yzc3ODRlZDkwYmE1MDMwMWVlYzUyMTE0NGY5NTExMWU0NzI5MDYKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgRmViIDggMTM6MTU6NTUgMjAwOCAtMDYwMAoKICAgIDgzeHg6IEFkZCBWaXRlc3NlIFZTQzczODUgZmlybXdhcmUgdXBsb2FkaW5nCgogICAgVXBkYXRlIHRoZSBNUEM4MzQ5RS1tSVRYLCBNUEM4MzEzRS1SREIsIGFuZCBNUEM4MzdYRS1SREIgYm9hcmQgZmlsZXMgdG8gdXBsb2FkCiAgICB0aGUgVml0ZXNzZSBWU0M3Mzg1IGZpcm13YXJlLiAgQ2hhbmdlZCBDT05GSUdfVlNDNzM4NSB0byBDT05GSUdfVlNDNzM4NV9FTkVULgogICAgQ2xlYW5lZCB1cCB0aGUgYm9hcmQgaGVhZGVyIGZpbGVzIHRvIG1ha2Ugc2VsZWN0aW5nIHRoZSBWU0M3Mzg1IGVhc2llciB0bwogICAgY29udHJvbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNTVkOThjNmQ1Yjg2OTRlNTYwYTBlNzI3YjE0Y2I2OTIxZDdjZmNjCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiA4IDEzOjE1OjU0IDIwMDggLTA2MDAKCiAgICBORVQ6IEFkZCBWaXRlc3NlIFZTQzczODUgZmlybXdhcmUgdXBsb2FkaW5nCgogICAgVGhlIFZpdGVzc2UgVlNDNzM4NSBpcyBhIDUtcG9ydCBzd2l0Y2ggZm91bmQgb24gdGhlIEZyZWVzY2FsZSBNUEM4MzQ5RS1tSVRYCiAgICBhbmQgb3RoZXIgYm9hcmRzLiAgQSBzbWFsbCBmaXJ3bWFyZSBtdXN0IGJlIHVwbG9hZGVkIHRvIGl0cyBvbi1ib2FyZCBtZW1vcnkKICAgIGJlZm9yZSBpdCBjYW4gYmUgZW5hYmxlZC4gIFRoaXMgcGF0Y2ggYWRkcyB0aGUgY29kZSB3aGljaCB1cGxvYWRzIGZpcm13YXJlCiAgICAoYnV0IG5vdCB0aGUgZmlybXdhcmUgaXRzZWxmKS4KCiAgICBQcmV2aW91c2x5LCB0aGlzIGZlYXR1cmUgd2FzIHByb3ZpZGVkIGJ5IGEgVS1Cb290IGFwcGxpY2F0aW9uIHRoYXQgd2FzCiAgICBtYWRlIGF2YWlsYWJsZSBvbmx5IG9uIEZyZWVzY2FsZSBCU1BzLiAgVGhlIFZTQzczODUgZmlybXdhcmUgbXVzdCBzdGlsbAogICAgYmUgb2J0YWluZWQgc2VwYXJhdGVseSwgYnV0IGF0IGxlYXN0IHRoZXJlIGlzIG5vIGxvbmdlciBhIG5lZWQgZm9yIGEgc2VwYXJhdGUKICAgIGFwcGxpY2F0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBhYTZmNmQxNzFhMWY5ZjQ2ZWU0ZjAzYWQ2YWNiOTdhNmJmYjcxODU1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyNiAwMDo1MjoxMCAyMDA4ICswMTAwCgogICAgQ29kaW5nIFN0eWxlIGNsZWFueXA7IHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDQzZGRkOWM4MjBmZWM0NDgxNjE4OGY1MzM0NmI0NjRlMjBiMzE0MmQKQXV0aG9yOiBKZXJyeSBWYW4gQmFyZW4gPGd2Yi51Ym9vdEBnbWFpbC5jb20+CkRhdGU6CVNhdCBNYXIgMjIgMTQ6MjM6NDkgMjAwOCAtMDQwMAoKICAgIFJlbW92ZSBkZXByZWNhdGVkIENPTkZJR19PRl9IQVNfVUJPT1RfRU5WIGFuZCBDT05GSUdfT0ZfSEFTX0JEX1QKCiAgICBUaGVzZSBkZWZpbmVzIGVtYmVkZGVkIHRoZSB1LWJvb3QgZW52IHZhcmlhYmxlcyBhbmQvb3IgdGhlIGJkX3Qgc3RydWN0dXJlCiAgICBpbiB0aGUgZmR0IGJsb2IuICBUaGUgY29uY2x1c2lvbiBvZiBkaXNjdXNzaW9uIG9uIHRoZSB1LWJvb3QgZW1haWwgbGlzdAogICAgd2FzIHRoYXQgZW1iZWRkaW5nIHRoZXNlIGluIHRoZSBmZHQgYmxvYiBpcyBub3QgdXNlZnVsOiB0aGVyZSBhcmUgYmV0dGVyCiAgICB3YXlzIG9mIHBhc3NpbmcgdGhlIGRhdGEgKGluIGZhY3QsIHRoZSBmZHQgYmxvYiBpdHNlbGYgcmVwbGFjZXMgdGhlCiAgICBiZF90IHN0cnVjdCkuCgogICAgVGhlIG9ubHkgYm9hcmQgdGhhdCBlbmFibGVzIHRoZXNlIGlzIHRoZSBzdHh4dGMgYW5kIHRoZXkgZG9uJ3QgYXBwZWFyCiAgICB0byBiZSB1c2VkIGJ5IGxpbnV4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CiAgICBBY2tlZC1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyMmVkMjI4NTc0MzM1OWZkMWZlNzNlNDExZGZmOTE0YjIyNTZlNjhmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTWFyIDE3IDEwOjQ5OjI1IDIwMDggKzAxMDAKCiAgICBydGM6IFJlbW92ZSAybmQgcmVmZXJlbmNlIHRvIG1heDY5MDAubyBpbiBkcml2ZXJzL3J0Yy9NYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxYmI3MDdjMzlhMDgzM2U5MWQ5Zjc5N2RkODYyYWFhYWY0YWYyNjRkCkF1dGhvcjogS3l1bmdtaW4gUGFyayA8a21wYXJrQGluZnJhZGVhZC5vcmc+CkRhdGU6CU1vbiBNYXIgMTcgMDg6NTQ6MDYgMjAwOCArMDkwMAoKICAgIEFkZCBGbGV4LU9uZU5BTkQgYm9vdGluZyBzdXBwb3J0CgogICAgRmxleC1PbmVOQU5EIGlzIGEgbW9ub2xpdGhpYyBpbnRlZ3JhdGVkIGNpcmN1aXQgd2l0aCBhIE5BTkQgRmxhc2ggYXJyYXkKICAgIHVzaW5nIGEgTk9SIEZsYXNoIGludGVyZmFjZS4gVGhpcyBvbi1jaGlwIGludGVncmF0aW9uIGVuYWJsZXMgc3lzdGVtIGRlc2lnbmVycwogICAgdG8gcmVkdWNlIGV4dGVybmFsIHN5c3RlbSBsb2dpYyBhbmQgdXNlIGhpZ2gtZGVuc2l0eSBOQU5EIEZsYXNoCiAgICBpbiBhcHBsaWNhdGlvbnMgdGhhdCB3b3VsZCBvdGhlcndpc2UgaGF2ZSB0byB1c2UgbW9yZSBOT1IgY29tcG9uZW50cy4KCiAgICBGbGV4LU9uZU5BTkQgZW5hYmxlcyB1c2VycyB0byBjb25maWd1cmUgdG8gcGFydGl0aW9uIGl0IGludG8gU0xDIGFuZCBNTEMgYXJlYXMKICAgIGluIG1vcmUgZmxleGlibGUgd2F5LiBXaGlsZSBNTEMgYXJlYSBvZiBGbGV4LU9uZU5BTkQgY2FuIGJlIHVzZWQgdG8gc3RvcmUgZGF0YQogICAgdGhhdCByZXF1aXJlIGxvdyByZWxpYWJpbGl0eSBhbmQgaGlnaCBkZW5zaXR5LCBTTEMgYXJlYSBvZiBGbGV4LU9uZU5BTkQKICAgIHRvIHN0b3JlIGRhdGEgdGhhdCBuZWVkIGhpZ2ggcmVsaWFiaWxpdHkgYW5kIGhpZ2ggcGVyZm9ybWFuY2UuIEZsZXgtT25lTkFORAogICAgY2FuIGxldCB1c2VycyB0YWtlIGFkdmFudGFnZSBvZiBzdG9yaW5nIHRoZXNlIHR3byBkaWZmZXJlbnQgdHlwZXMgb2YgZGF0YQogICAgaW50byBvbmUgY2hpcCwgd2hpY2ggaXMgbWFraW5nIEZsZXgtT25lTkFORCBtb3JlIGNvc3QtIGFuZCBzcGFjZS1lZmZlY3RpdmUuCgogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCBjNTEyMzg5Y2M0YTEwMjUzMjQ5MjcxZmY2Yzg4N2M2ZGFiMWYwZGIyCkF1dGhvcjogQW5kcsOpIFNjaHdhcnogPGFuZHJlLnNjaHdhcnpAbWF0cml4LXZpc2lvbi5kZT4KRGF0ZToJVGh1IE1hciAxMyAxMzo1MDo1MiAyMDA4ICswMTAwCgogICAgTVBDNTIwMDogc3VwcG9ydCBzZXR1cCB3aXRob3V0IEZFQwoKICAgIEluY2x1ZGUgRkVDIHNwZWNpZmljIG5vZGVzIGluIGZ0X2NwdV9zZXR1cCBvbmx5IGlmIENPTkZJR19NUEM1eHh4X0ZFQyBpcwogICAgZGVmaW5lZC4gU3lzdGVtcyB3aXRob3V0IEZFQywgaS5lLiBubyBGRUMgbm9kZSBpbiBEVEIsIHNob3VsZCBiZSBwb3NzaWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZSBTY2h3YXJ6IDxhbmRyZS5zY2h3YXJ6QG1hdHJpeC12aXNpb24uZGU+CiAgICBBY2tlZC1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGFhMzUxMWU0MjI5NDYwNDFlZjYyNmY4MGEwNWFlNWU4YmZjNzAwZTYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWFyIDUgMTg6MDU6NDYgMjAwOCAtMDYwMAoKICAgIEZTTDogTW92ZSBib2FyZC9tcGM4MjY2YWRzIHVuZGVyIGJvYXJkL2ZyZWVzY2FsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2YxZDg0NmU1YzU3NTQ0NDljMjg2NTg3ZDA5OWQ4NTI0NjA2Mjc3MgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgNSAxODowNTo0NyAyMDA4IC0wNjAwCgogICAgRlNMOiBNb3ZlIGJvYXJkL21wYzc0NDhocGMyIHVuZGVyIGJvYXJkL2ZyZWVzY2FsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjdlMjRkMjgzZTM0NzI3YzJhNmNkZmRhYzJlMDlhNDI2YzU3OWI3MwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgNSAxODowNTo0NSAyMDA4IC0wNjAwCgogICAgRlNMOiBNb3ZlIGJvYXJkL21wYzgyNjBhZHMgdW5kZXIgYm9hcmQvZnJlZXNjYWxlCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2YThhNWRjNDc1OTg2N2M0NWFhOTU1ODBkZWI4YmYyNjY2OWE1ZDk3CkF1dGhvcjogZ29kYS55dXN1a2UgPGdvZGEueXVzdWtlQHJlbmVzYXMuY29tPgpEYXRlOglXZWQgTWFyIDUgMTc6MDg6MzMgMjAwOCArMDkwMAoKICAgIG5ldDogQWRkIHN1cHBvcnQgQVg4ODc5NkwgZXRoZXJuZXQgZGV2aWNlCgogICAgQVg4ODc5NkwgaXMgZGV2aWNlIG9mIE5FMjAwMCBjb21wYXRpYmxlLgogICAgVGhpcyBwYXRjaCBzdXBwb3J0IEFYODg3OTZMIGV0aGVybmV0IGRldmljZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXN1a2UgR29kYSA8Z29kYS55dXN1a2VAcmVuZXNhcy5jb20+CiAgICBBY2tlZC1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGUwYTYxNDBkZDM4MWUxZWVkMWFkYTIyOTExNjZlZjI2MTZkODgyMmIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDI1IDIyOjUwOjQxIDIwMDggKzAxMDAKCiAgICBuZTIwMDAgZHJpdmVyOiBjaGFuZ2UgI2lmZGVmIHRvIE1ha2VmaWxlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlNzEwMTg1YWFlOTBjNjRkMzljMmQ0NTNlNDBlNThjZWVmZTRmMjUwCkF1dGhvcjogZ29kYS55dXN1a2UgPGdvZGEueXVzdWtlQHJlbmVzYXMuY29tPgpEYXRlOglXZWQgTWFyIDUgMTc6MDg6MjAgMjAwOCArMDkwMAoKICAgIG5ldDogRGl2aWRlZCBjb2RlIG9mIE5FMjAwMCBldGhlcm5ldCBkcml2ZXIKCiAgICBUaGVyZSBhcmUgbW9yZSBkZXZpY2VzIG9mIHRoZSBORTIwMDAgYmFzZS4KICAgIEEgcHJlc2VudCBjb2RlIGlzIGRpZmZpY3VsdCBmb3IgdXMgdG8gc3VwcG9ydCBtb3JlIGRldmljZXMuCiAgICBUbyBzdXBwb3J0IG1vcmUgTkUyMDAwIGNsb25lIGRldmljZXMsIHNlcGFyYXRlZCB0aGUgZnVuY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogWXVzdWtlIEdvZGEgPGdvZGEueXVzdWtlQHJlbmVzYXMuY29tPgogICAgQWNrZWQtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCAzOTViY2U0ZjU5YTUwN2E2MGE0NzVmN2VlNDZiZWQ0N2RlOTQ4MmRmCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTdW4gRmViIDI0IDIzOjU4OjEzIDIwMDggLTA1MDAKCiAgICBuZXQvQmxhY2tmaW46IG1vdmUgb24tY2hpcCBNQUMgZHJpdmVyIGludG8gZHJpdmVycy9uZXQvCgogICAgVGhlIEJsYWNrZmluIG9uLWNoaXAgTUFDIGRyaXZlciB3YXMgYmVpbmcgbWFuYWdlZCBpbiB0aGUgQkY1MzctU1RBTVAgYm9hcmQKICAgIGRpcmVjdG9yeSwgYnV0IGl0IGlzIG5vdCBib2FyZCBzcGVjaWZpYywgc28gcmVsb2NhdGUgaXQgdG8gdGhlIGRyaXZlcnMgZGlyCiAgICBzbyB0aGF0IG90aGVyIEJsYWNrZmluIHBvcnRzIGNhbiB1dGlsaXplIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA4YTMwYjQ3MDA5NDJmMzc0OTVkMmU2N2Y1OTk4Y2RmZmI2ZTNiYThhCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTdW4gRmViIDI0IDIzOjUyOjM1IDIwMDggLTA1MDAKCiAgICBzbWM5MTExMTogdXNlIFNTWU5DKCkgcmF0aGVyIHRoYW4gYXNtKHNzeW5jKSBmb3IgQmxhY2tmaW4KCiAgICBTaW5jZSB0aGUgInNzeW5jIiBpbnN0cnVjdGlvbiBtYXkgaGF2ZSBoYXJkd2FyZSBhbm9tYWxpZXMgYXNzb2NpYXRlZCB3aXRoCiAgICBpdCwgaGF2ZSB0aGUgc21jOTExMTEgZHJpdmVyIHVzZSB0aGUgU1NZTkMgbWFjcm8gcmF0aGVyIHRoYW4gaW52b2tpbmcgaXQKICAgIGRpcmVjdGx5LiAgV2Ugd29ya2Fyb3VuZCBhbGwgdGhlIGFub21hbGllcyB2aWEgdGhpcyBtYWNyby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNzdmZjdiNzQ0NGNlYjgwMjJiNDYxMTRmM2QwYjZkMThlMmZkMTEzOApBdXRob3I6IEJyeWFuIE8nRG9ub2dodWUgPGJvZG9ub2dodWVAY29kZWhlcm1pdC5pZT4KRGF0ZToJU3VuIEZlYiAxNyAyMjo1Nzo0NyAyMDA4ICswMDAwCgogICAgOHh4OiBVcGRhdGUgT0Ygc3VwcG9ydCBvbiA4eHgKCiAgICBUaGlzIHBhdGNoIGRvZXMgc29tZSBzaGlmdGluZyBhcm91bmQgb2YgT0Ygc3VwcG9ydCBvbiA4eHguCgogICAgU2lnbmVkLW9mZi1ieTogQnJ5YW4gTydEb25vZ2h1ZSA8Ym9kb25vZ2h1ZUBjb2RlaGVybWl0LmllPgoKY29tbWl0IDljNjY2YTdkYjBiMjI4NWEyNzBjNjg4MTA4ODljZTdkNWRiYTMwNGIKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgRmViIDE1IDE1OjE2OjE4IDIwMDggLTA2MDAKCiAgICBwcGM6IEFsbG93IGJvYXJkcyB0byBzcGVjaWZ5IGhvdyBtdWNoIG1lbW9yeSB0aGV5IGNhbiBtYXAKCiAgICBGb3IgaGlzdG9yaWNhbCByZWFzb25zIHdlIGxpbWl0ZWQgdGhlIHN0YWNrIHRvIDI1Nk0gYmVjYXVzZSBzb21lIGJvYXJkcwogICAgY291bGQgb25seSBtYXAgdGhhdCBtdWNoIHZpYSBCQVRTLglIb3dldmVyIG5ld2VyIGJvYXJkcyBhcmUgY2FwYWJsZSBvZgogICAgbWFwcGluZyBtb3JlIG1lbW9yeSAoZm9yIGV4YW1wbGUgODV4eCBpcyBjYXBibGUgb2YgZG9pbmcgdXAgdG8gMkcpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYTZmNWYzMTdjZDA3NGJiYmZhMmFhYjRmY2EwNTkwNGM4MTFjMTlmYgpBdXRob3I6IEJyeWFuIE8nRG9ub2dodWUgPGJvZG9ub2dodWVAY29kZWhlcm1pdC5pZT4KRGF0ZToJRnJpIEZlYiAxNSAwMTowNTo1OCAyMDA4ICswMDAwCgogICAgOHh4IDogQWRkIE9GIHN1cHBvcnQgdG8gQWRkZXI4NzUgYm9hcmQgcG9ydCAtIHJlc3VibWl0CgogICAgU2lnbmVkLW9mZi1ieTogQnJ5YW4gTydEb25vZ2h1ZSA8Ym9kb25vZ2h1ZUBjb2RlaGVybWl0LmllPgoKY29tbWl0IGQwNTg2OThmZDJkOWY3NjlmZjM4YWM1M2M4NzA4YjNmZGQzMTRmMmQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgRmViIDE0IDIwOjQ0OjQyIDIwMDggLTA2MDAKCiAgICBBZGQgc2V0ZXhwciBjb21tYW5kCgogICAgQWRkIGEgc2ltcGxlIGV4cHIgc3R5bGUgY29tbWFuZCB0aGF0IHdpbGwgc2V0IGFuIGVudiB2YXJpYWJsZSBhcyB0aGUgcmVzdWx0CiAgICBvZiB0aGUgY29tbWFuZC4gIFRoaXMgYWxsb3dzIHVzIHRvIGRvIHNpbXBsZSBtYXRoIGluIHNoZWxsLiAgVGhlIGZvbGxvd2luZwogICAgb3BlcmF0aW9ucyBhcmUgc3VwcG9ydGVkOiAmLCB8LCBeLCArLCAtLCAqLCAvLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgM2YxMDVmYWE2NGI5ODI2ZTA4ODcxMWZkZmNhYTcwY2IxMjMwMzk3YQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgNSAxNzoyNzo0OCAyMDA4IC0wNjAwCgogICAgRlNMOiBNb3ZlIGJvYXJkL21wYzc0NDhocGMyIHVuZGVyIGJvYXJkL2ZyZWVzY2FsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDQ5YzcwMzM3NGE4ODY4NDUzNDI1ZTE1ZGE3ZTJmNzYyMjFiNzJlNApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBNYXIgNSAxNzoyMTo0MyAyMDA4IC0wNjAwCgogICAgRlNMOiBNb3ZlIGJvYXJkL21wYzgyNjZhZHMgdW5kZXIgYm9hcmQvZnJlZXNjYWxlCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1ODYzNTc3OTg5YWQ2ODk0MjdiYjc1MDEwN2U5YTc1ZjFjMTY0NWQyCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1hciA1IDE2OjQxOjQxIDIwMDggLTA2MDAKCiAgICBGU0w6IE1vdmUgYm9hcmQvbXBjODI2MGFkcyB1bmRlciBib2FyZC9mcmVlc2NhbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhhNzczOTgzOTU3ZWU2YzRhYTM0NDQ2OWI3NDJmMjljN2QyNmFmYmQKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUdWUgTWFyIDI1IDIxOjMwOjA4IDIwMDggKzA5MDAKCiAgICBbTUlQU10gTW92ZSBndGgyX2NvbmZpZyBmcm9tIEFSTSBzZWN0aW9uIHRvIE1JUFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDM3M2IxNmZjMGM1YWUzNGQyOGI5MDI3ZjgwOWFlM2NiZjQ1Y2RkMTUKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUdWUgTWFyIDI1IDIxOjMwOjA3IDIwMDggKzA5MDAKCiAgICBbTUlQU10gRXh0ZW5kIE1JUFNfTUFYX0NBQ0hFX1NJWkUgdXB0byA2NGtCCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBkOThlMzQ4ZTJlZDVhYWI4ZjdhNjQ3MWZmNjI4YWIwNjg4YjhhNDU5CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJVHVlIE1hciAyNSAyMTozMDowNyAyMDA4ICswOTAwCgogICAgW01JUFNdIEZpeCBkY2FjaGVfc3RhdHVzKCkKCiAgICBZb3UgY2FuJ3QganVkZ2UgVU5DQUNIRUQgYnkgQ29uZmlnLkswIExTQi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IGIwYzY2YWY1M2VjOTM4NWFjMmQxY2MyZTVkN2QxZWNkYzgxY2FmMzQKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUdWUgTWFyIDI1IDIxOjMwOjA3IDIwMDggKzA5MDAKCiAgICBbTUlQU10gSW50cm9kdWNlIF9tYWNoaW5lX3Jlc3RhcnQKCiAgICBIYW5kbGVzIG1hY2hpbmUgc3BlY2lmaWMgZnVuY3Rpb25zIGJ5IHVzaW5nIHdlYWsgZnVuY3Rpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgZGVjYWJhNmY1Y2YzODZkNTY5YWMzOTk3YmViYjg3MWI5NjZjNmIxOApBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVR1ZSBNYXIgMjUgMjE6MzA6MDcgMjAwOCArMDkwMAoKICAgIFtNSVBTXSBDbGVhbnVwIENQMCBTdGF0dXMgaW5pdGlhbGl6YXRpb24KCiAgICBBZGQgc2V0dXBfYzBfc3RhdHVzIGZyb20gTGludXguIEZvciB0aGUgbW9tZW50IHdlIGRpc2FibGUgaW50ZXJydXB0cywgc2V0CiAgICBDVTAsIG1hcmsgdGhlIGtlcm5lbCBtb2RlLCBhbmQgY2xlYXIgRVJMIGFuZCBFWEwuIFRoaXMgaXMgZ29vZCBlbm91Z2ggZm9yCiAgICByZXNldC10aW1lIGNvbmZpZ3VyYXRpb24gYW5kIHdpbGwgd29yayB3ZWxsIGFjcm9zcyBtb3N0IHByb2Nlc3NvcnMuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBkNDNkNDNlZjI4NDVhZjMwOWMyNWE2NGJiOWMyYzVmYjMyNjFiYzIzCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJVHVlIE1hciAyNSAyMTozMDowNyAyMDA4ICswOTAwCgogICAgW01JUFNdIEluaXRpYWxpemUgQ1AwIENhdXNlIGJlZm9yZSBzZXR0aW5nIHVwIENQMCBTdGF0dXMgcmVnaXN0ZXIKCiAgICBXaXRob3V0IHRoaXMgY2hhbmdlLCB3ZSdsbCBiZSBzdWZmZXJpbmcgZnJvbSBkZWZmZXJlZCBXQVRDSCBleGNlcHRpb24KICAgIG9uY2UgU3RhdHVzLkVYTCBpcyBjbGVhcmVkLiBNYWtlIHN1cmUgQ2F1c2UuV1AgaXMgY2xlYXJlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDI2MTM4NjIzMjMwY2EyYmFkM2M3OGUwNWE2NTUyN2VhNzBjOGI2ODgKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUdWUgTWFyIDI1IDIxOjMwOjA3IDIwMDggKzA5MDAKCiAgICBbTUlQU10gSU5DQS1JUDogTW92ZSB3YXRjaGRvZyBpbml0IGNvZGUgZnJvbSBzdGFydC5TIHRvIGxvd2xldmVsX2luaXQoKQoKICAgIE1vdmUgdGhpbmdzIHRvIGFwcHJvcHJpYXRlIHBsYWNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgY2NmOGY4MjRlZjY3ZGYwMjhkZWRiMjlmOGVhNWQ3MWE1YTg4ZDg5NQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVR1ZSBNYXIgMjUgMjE6MzA6MDYgMjAwOCArMDkwMAoKICAgIFtNSVBTXSBJbXBsZW1lbnQgZmx1c2hfY2FjaGUoKQoKICAgIFdlIGRvIEhpdF9Xcml0ZWJhY2tfSW52X0QgYW5kIEhpdF9JbnZhbGlkYXRlX0kuIFlvdSBtaWdodCB0aGluayB0aGF0IHlvdQogICAgZG9uJ3QgbmVlZCB0byBkbyBIaXRfSW52YWxpZGF0ZV9JLCBidXQgZmx1c2hfY2FjaGUoKSBuZWVkcyBpdCBzaW5jZSB0aGlzCiAgICBmdW5jdGlvbiBpcyB1c2VkIG5vdCBvbmx5IGluIFUtQm9vdCBzcGVjZmljIHByb2dyYW1zIGJ1dCBhbHNvIGF0IGxvYWRpbmcKICAgIHRhcmdldCBiaW5hcmllcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDJlMGU1MjcxYWFjOTE3ODEyYTc2YzcyMDMwYTJiMmM2ZjFkMzM4N2QKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUdWUgTWFyIDI1IDIxOjMwOjA2IDIwMDggKzA5MDAKCiAgICBbTUlQU10gRml4IEktL0QtY2FjaGUgaW5pdGlhbGl6YXRpb24gbG9vcHMKCiAgICBDdXJyZW50bHkgd2UgZG8gMSkgSW5kZXhfU3RvcmVfVGFnX0ksIDIpIEZpbGwgYW5kIDMpIEluZGV4X1N0b3JlX1RhZ19JCiAgICBhZ2FpbiBwZXIgYSBsb29wIGZvciBJLWNhY2hlIGluaXRpYWxpemF0aW9uLiBCdXQgYWNjb3JkaW5nIHRvICdTZWUgTUlQUwogICAgUnVuJywgd2UncmUgZW5jb3VyYWdlZCB0byB1c2UgdGhyZWUgc2VwYXJhdGUgbG9vcHMgcmF0aGVyIHRoYW4gY29tYmluaW5nCiAgICB0aGVtICpmb3IgYm90aCBJLSBhbmQgRC1jYWNoZSouIFRoaXMgcGF0Y2ggdHJpZXMgdG8gZml4IHRoaXMuCgogICAgSW4gYWNjb3JkYW5jZSB3aXRoIGZpeGluZyBhYm92ZSwgbWlwc19pbml0X1tpZF1jYWNoZSBhcmUgc2VwYXJhdGVkIGZyb20KICAgIG1pcHNfY2FjaGVfcmVzZXQoKSwgYW5kIHJld3JpdGUgY2FjaGUgbG9vcHMgYXJlIGNvbXBsZXRlbHkgcmV3cml0dGVuIHdpdGgKICAgIHVzZWZ1bCBtYWNyb3MuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAxODk4ODQwNzk3YzdmNTA3OTkzNzdiZDViMjg1YThhOTNhODJjNDE5CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJVHVlIE1hciAyNSAyMTozMDowNiAyMDA4ICswOTAwCgogICAgW01JUFNdIFJlcGxhY2UgbWVtb3J5IGNsZWFyYW5jZSBjb2RlIHdpdGggZl9maWxsNjQKCiAgICBUaGlzIHJvdXRpbmUgZmlsbHMgbWVtb3J5IHdpdGggemVybyBieSA2NCBieXRlcywgYW5kIGlzIDY0LWJpdCBjYXBhYmxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgMmY1ZDQxNGNjYjQwMjRkZDA5OTJmZjZiMjI1NjE3MzJkYmM3MzU5MApBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVR1ZSBNYXIgMjUgMjE6MzA6MDYgMjAwOCArMDkwMAoKICAgIFtNSVBTXSBjcHUvbWlwcy9jYWNoZS5TOiBJbnRyb2R1Y2UgTkVTVEVEL0xFQUYvRU5EIG1hY3JvcwoKICAgIFRoaXMgcGF0Y2ggcmVwbGFjZXMgdGhlIGN1cnJlbnQgZnVuY3Rpb24gZGVmaW5pdGlvbnMgd2l0aCBORVNURUQsIExFQUYKICAgIGFuZCBFTkQgbWFjcm8uIFRoZXkgc3BlY2lmeSBzb21lIG1vcmUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUKICAgIGZ1bmN0aW9uOyBhbiBhbGlnbm1lbnQgb2Ygc3ltYm9sLCB0eXBlIG9mIHN5bWJvbCwgc3RhY2sgZnJhbWUgdXNhZ2UsIGV0Yy4KICAgIFRoZXNlIGluZm9ybWF0aW9uIGV4cGxpY2l0bHkgdGVsbHMgdGhlIGFzc2VtYmxlciBhbmQgdGhlIGRlYnVnZ2VyIGFib3V0CiAgICB0aGUgdHlwZXMgb2YgY29kZSB3ZSB3YW50IHRvIGdlbmVyYXRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgMjgyMjIzYTYwN2M2MTE0MjVmYTMzZjU0MjhmOGVhZTY2MzY5NzJiYgpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVR1ZSBNYXIgMjUgMTE6NDM6MTcgMjAwOCArMDkwMAoKICAgIFtNSVBTXSBhc20gaGVhZGVycycgdXBkYXRlcwoKICAgIE1ha2Ugc29tZSBhc20gaGVhZGVycyBhZGp1c3RlZCB0byB0aGUgbGF0ZXN0IExpbnV4IGtlcm5lbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IGUxMzkwODAxYTNjMWEyYjZkMTJmYTkwYmUzNjhlZmMxOWY1YjliZmQKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglUdWUgTWFyIDI1IDExOjM5OjI5IDIwMDggKzA5MDAKCiAgICBbTUlQU10gUmVxdWVzdCBmb3IgdGhlICdtaXBzX2NhY2hlX2xvY2soKScgcmVtb3ZhbAoKICAgIFRoZSBpbml0aWFsIGludGVuc2lvbiBvZiBoYXZpbmcgbWlwc19jYWNoZV9sb2NrKCkgd2FzIHRvIHVzZSB0aGUgY2FjaGUKICAgIGFzIG1lbW9yeSBmb3IgdGVtcG9yYXJ5IHN0YWNrIHVzZSBzbyB0aGF0IGEgQyBlbnZpcm9ubWVudCBjYW4gYmUgc2V0IHVwCiAgICBhcyBlYXJseSBhcyBwb3NzaWJsZS4KCiAgICBCdXQgbm93IG1pcHNfY2FjaGVfbG9jaygpIGZvbGxvdyBsb3dsZXZlbF9pbml0KCkuIFdlJ3ZlIGFscmVhZHkgaGF2ZSB0aGUKICAgIHJlYWwgbWVtb3J5IGluaXRpbGFpemVkIGF0IHRoaXMgcG9pbnQsIHRoZXJlZm9yZSB3ZSBjb3VsZC9zaG91bGQgdXNlIGl0LgogICAgTm8gcmVhc29uIHRvIGxvY2sgYXQgYWxsLgoKICAgIE90aGVyIHByb2JsZW1zOgoKICAgIENhY2hlIGxvY2tpbmcgaXMgbm90IGNvbnNpc3RlbnQgYWNyb3NzIE1JUFMgaW1wbGVtZW50YWlvbnMuIFNvbWUgaW1wbGUtCiAgICBtZW50YXRpb25zIGRvbid0IHN1cHBvcnQgbG9ja2luZyBhdCBhbGwuIFRoZSBzdHlsZSBvZiBsb2NraW5nIHZhcmllcyAtCiAgICBzb21lIHN1cHBvcnQgcGVyIGxpbmUgbG9ja2luZywgb3RoZXJzIHBlciB3YXksIGV0Yy4gU29tZSBwYXJ0cyB1c2UgYml0cwogICAgaW4gc3RhdHVzIHJlZ2lzdGVycyBpbnN0ZWFkIG9mIGNhY2hlIG9wcy4gQ3VycmVudCBtaXBzX2NhY2hlX2xvY2soKSBpcwogICAgbm90IG5lY2Vzc2FyaWx5IGdlbmVyYWwtcHVycG9zZS4KCiAgICBBbmQgdGhpcyBpcyB3b3J0aHkgb2Ygc3BlY2lhbCBtZW50aW9uOyBvbmNlIFUtQm9vdC9NSVBTIGxvY2tzIHRoZSBsaW5lcywKICAgIHRoZXkgYXJlIG5ldmVyIGdldCB1bmxvY2tlZCwgc28gdGhlIGNvZGUgcmVsaWVzIG9uIHdoYXRldmVyIGdldHMgbG9hZGVkCiAgICBhZnRlciBVLUJvb3QgdG8gcmUtaW5pdGlhbGl6ZSB0aGUgY2FjaGUgYW5kIGNsZWFyIHRoZSBsb2Nrcy4gV2UncmUgc3VwLQogICAgcG9zZWQgdG8gaGF2ZSBDRkdfSU5JVF9SQU1fTE9DSyBhbmQgdW5sb2NrX3JhbV9pbl9jYWNoZSgpIGltcGxlbWVudGVkLAogICAgYnV0IGxlYXZlIHRoZSBzaXR1YXRpb24gYXMgaXQgaXMgZm9yIGEgbG9uZyB0aW1lLgoKICAgIEZvciB0aGVzZSByZWFzb25zLCBJIHByb3Bvc2VkIHRoZSByZW1vdmFsIG9mIG1pcHNfY2FjaGVfbG9jaygpIGZyb20gdGhlCiAgICBnbG9iYWwgc3RhcnQtdXAgY29kZS4KCiAgICBUaGlzIHBhdGNoIGFkZHMgQ0ZHX0lOSVRfUkFNX0xPQ0tfTUlQUyB0byBtYWtlIGV4aXN0aW5nIHVzZXJzIGF3YXJlIHRoYXQKICAgICp0aGluZ3MgaGF2ZSBjaGFuZ2VkKi4gSWYgaGUgd2FudHMgdGhlIHNhbWUgYmVoYXZpb3IgYXMgYmVmb3JlLCBoZSBuZWVkcwogICAgdG8gaGF2ZSBDRkdfSU5JVF9SQU1fTE9DS19NSVBTIGluIGhpcyBjb25maWcgZmlsZS4KCiAgICBJZiB3ZSBkb24ndCBoYXZlIGFueSByZWdyZXNzaW9uIHJlcG9ydCB0aHJvdWdoIHNldmVyYWwgcmVsZWFzZXMsIHRoZW4KICAgIHdlJ2xsIHJlbW92ZSBjb2RlcyBlbnRpcmVseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgogICAgQWNrZWQtYnk6IEFuZHJldyBEeWVyIDxhbWR5ZXJAZ21haWwuY29tPgoKY29tbWl0IDBkNDg5MjZjODdlYzk2Zjk3NGE2YWM0MDM0ZjRhMmYyZWFiMzI1NWYKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CkRhdGU6CU1vbiBNYXIgMjQgMTE6MzA6NTQgMjAwOCArMDEwMAoKICAgIGx3bW9uNSBTWVNNT04gUE9TVDogZml4IGJhY2tsaWdodCBjb250cm9sCgogICAgSWYgdGhlIExXTU9ONSBjb25maWcgaGFzIFNZU01PTiBQT1NUIGFtb25nIENPTkZJR19QT1NUcyB3aGljaCBtYXkgYmUKICAgIHJ1biBvbiB0aGUgYm9hcmQsIHRoZW4gdGhlIFNZU01PTiBQT1NUIGNvbnRyb2xzIHRoZSBkaXNwbGF5IGJhY2tsaWdodAogICAgKGRvZXNuJ3Qgc3dpdGNoIGJhY2tsaWdodCBPTiBpZiBQT1NUIEZBSUxFRCwgYW5kIGRvZXMgc3dpdGNoIHRoZQogICAgYmFja2xpZ2h0IE9OIGlmIFBBU1NFRCkuCgogICAgSWYgbm90LCB0aGVuIHRoZSB2aWRlbyBkcml2ZXIgY29udHJvbHMgdGhlIGRpc3BsYXkgYmFja2xpZ2h0IChqdXN0CiAgICBzd2l0Y2ggT04gdGhlIGJhY2tsaWdodCB1cG9uIGluaXRpYWxpemF0aW9uKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgZmYyYmRmYjJjMWUwNzNmNjVjMDY1MDExZjFlMThkMGExMzBiZDNkOApBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KRGF0ZToJTW9uIE1hciAyNCAxMToyOToxNCAyMDA4ICswMTAwCgogICAgbHdtb241IFNZU01PTiBQT1NUOiBmaXggaGFuZGxpbmcgb2YgbmVnYXRpdmUgdGVtcGVyYXR1cmVzCgogICAgRml4IGVycm9ycyBpbiB0aGUgTFdNT041IFN5c21vbiBQT1NUIGZvciBuZWdhdGl2ZSB0ZW1wZXJhdHVyZXMuCgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgoKY29tbWl0IDU1Nzc0YjUxMmZkZjYzYzA1MTZkNDQxY2M1ZGE3YzU0YmJmZmI3ZjIKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CUZyaSBNYXIgNyAxNjowNDoyNSAyMDA4ICswOTAwCgogICAgcGNpOiBBZGQgQ09ORklHX1BDSV9TS0lQX0hPU1RfQlJJREdFIGNvbmZpZyBvcHRpb24KCiAgICBJbiBjdXJyZW50IHNvdXJjZSBjb2RlLCB3aGVuIHRoZSBkZXZpY2UgbnVtYmVyIG9mIFBDSSBpcyAwLCBwcm9jZXNzIFBDSQogICAgYnJpZGdlIHdpdGhvdXQgZmFpbC4gSG93ZXZlciwgd2hlbiB0aGUgZGV2aWNlIG51bWJlciBpcyAwLCBpdCBpcyBub3QgUENJCiAgICBhbHdheXMgYnJpZGdlLiBUaGVyZSBhcmUgdGltZXMgd2hlbiBkZXZpY2Ugb2YgUENJIGFsbG9jYXRlcy4KCiAgICBXaGVuIENPTkZJR19QQ0lfU0tJUF9IT1NUX0JSSURHRSBpcyBlbmFibGUsIHRoaXMgcHJvYmxlbSBpcyBzb2x2ZWQgd2hlbgogICAgdXNlIHRoaXMgcGF0Y2guCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4NmFlYTNlYWVmYTI0OGZmYjkzMjhlMmI1MGM2NDcyMDQ4OWNkYmViCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgpEYXRlOglGcmkgTWFyIDIxIDA5OjE4OjQwIDIwMDggKzAxMDAKCiAgICBMV01PTjU6IGZpeCBkc1BJQyBQT1NUCgogICAgQWRkIHRlc3QgZm9yIERQSUNfU1lTX0VSUk9SX1JFRyB0byBiZSB6ZXJvIGluIHRoZSBMV01PTjUgZHNQSUMgUE9TVC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+IC0tLQoKY29tbWl0IDM4OGI4MmZkZGM3YzA1NTk2ZjNmNjE1ZjE5MGRhMDQ0ODIyN2RjODIKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgTWFyIDIwIDIzOjIzOjEzIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gRW5hYmxlIG5ldyB1SW1hZ2Ugc3VwcG9ydCBmb3IgdGhlIHBjczQ0MGVwIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgOTVmNGVjMmI5YzkxMGM3MjYxZTZmMDYwZWE1MzBkNThiMDM5NjkyZApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBNYXIgMjAgMjM6MjM6MTMgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBEbyBub3QgY29tcGlsZSBuZXcgdUltYWdlIGZvcm1hdCBzdXBwb3J0IGJ5IGRlZmF1bHQKCiAgICBEaXNhYmxlIGRlZmF1bHQgYnVpbGRpbmcgb2YgbmV3IHVJbWFnZSBmb3JtYXQgc3VwcG9ydCBpbiBwcmVwYXJhdGlvbgogICAgZm9yIG1lcmdlIHdpdGggdGhlIG1hc3Rlci4gU3VwcG9ydCBmb3IgbmV3IGZvcm1hdCBjYW4gYmUgZW5hYmxlZCBvbgogICAgYSBwZXItYm9hcmQgYmFzaXMsIGJ5IGRlZmluaW5nIHRoZSBmb2xsb3dpbmcgaW4gdGhlIGJvYXJkJ3MgY29uZmlnIGZpbGU6CgogICAgI2RlZmluZSBDT05GSUdfRklUCQkgICAxCiAgICAjZGVmaW5lIENPTkZJR19PRl9MSUJGRFQJICAgMQoKICAgIFRoaXMgY2FuIGJlIG9wdGlvbmFsbHkgZGVmaW5lZCB0byBnaXZlIG1vcmUgdmVyYm9zZSBvdXRwdXQ6CgogICAgI2RlZmluZSBDT05GSUdfRklUX1ZFUkJPU0UJICAgMSAvKiBlbmFibGUgZml0X2Zvcm1hdF97ZXJyb3Isd2FybmluZ30oKSAqLwoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgZGFmYWVkZThhNDZjNzE1OTMxMDIzOWUwMzZjOTNlMzFjNjM3NDQ4NwpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBNYXIgMjAgMjM6MjA6MzEgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBEaXNhYmxlIGRlYnVnaW5nIG91dHB1dCBpbiBwcmVwYXJhdGlvbiBmb3IgbWVyZ2Ugd2l0aCBtYXN0ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGZiZTdhMTU1MDI3YmVhY2ViYWVlOWIzMmUxYWRhNzgxZmU5MjRiY2EKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgTWFyIDIwIDE5OjM4OjQ1IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQ29tcGlsYXRpb24gYW5kIG5ldyB1SW1hZ2UgaGFuZGxpbmcgZml4ZXMgZm9yIGlteHRyYWN0CgogICAgRml4IGlteHRyYWN0IGNvbW1hbmQgbm90IGJlaW5nIGNvbXBpbGVkLWluIGRlc3BpdGUgQ09ORklHX0NNRF9YSU1HIGJlaW5nIGluCiAgICBpbmNsdWRlL2NvbmZpZ19jbWRfZGVmYXVsdC5oLiBGaXggZmV3IHdhcm5pbmdzIGFuZCBoYW5kbGluZyBvZiBuZXcgZm9ybWF0CiAgICBpbWFnZXMuCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCAzNmNjOGNiYjMzNzlkNTE2NmY4ODI2NDExMjM1MjE3MzVjNDY5ZjkyCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IE1hciAyMCAyMzoxMDoxOSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEZpeCBhdXRvc2NyIGNvbW1hbmQgdXNlZCB3aXRoIG5ldyB1SW1hZ2UgZm9ybWF0CgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA0MzE0MmU4MTdmMDU5N2JlNDEyZTdjYmUxOTQxM2Y1NTMyZWFmYTVkCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IE1hciAyMCAyMzoxMDoxOSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEZpeCAqLml0cyBmaWxlcyBsb2NhdGlvbiBpbiBkb2N1bWVudGF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA4MWEwYWM2MmVhMjlmODI1MmQwYTcxNDcwOWQwZWNmZGJiYTJhMTVlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAyMCAyMjowMTozOCAyMDA4ICswMTAwCgogICAgbHdtb241IFBPU1Q6IHJlbW92ZSB1bnJlYWNoYWJsZSBjb2RlCgogICAgcGx1cyBzb21lIGNvZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBiNzNhMTllMTYwOWQwZjcwNWNiYWI4MDE0Y2ExN2FlZmU4OWU0Yzc2CkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgpEYXRlOglUaHUgTWFyIDIwIDE3OjU2OjA0IDIwMDggKzAzMDAKCiAgICBMV01PTjU6IFBPU1QgUlRDIGZpeAoKICAgIE1vZGlmeSB0aGUgUlRDIEFQSSB0byBwcm92aWRlIG9uZSBhIHN0YXR1cyBmb3IgdGhlIHRpbWUgcmVwb3J0ZWQgYnkKICAgIHRoZSBydGNfZ2V0KCkgZnVuY3Rpb246CiAgICAgIDAgLSBhIHJlbGlhYmxlIHRpbWUgaXMgZ3VhcmFudGVlZCwKICAgIDwgMCAtIGEgcmVsaWFibGUgdGltZSBpc24ndCBndWFyYW50ZWVkIChwb3dlciBmYXVsdCwgY2xvY2sgaXNzdWVzLAoJICBhbmQgc28gb24pLgoKICAgIFRoZSBSVEMgY2hpcCBkcml2ZXJzIGFyZSByZXNwb25zaWJsZSBmb3IgcHJvdmlkaW5nIHRoaXMgaW5mbyBpZiB0aGUKICAgIGNvcnJlc3BvbmRpbmcgY2hpcCBzdXBwb3J0cyBzdWNoIGZ1bmN0aW9uYWxpdHkuIElmIG5vdCAtIGFsd2F5cwogICAgcmVwb3J0IHRoYXQgdGhlIHRpbWUgaXMgcmVsaWFibGUuCgogICAgVGhlIFBPU1QgUlRDIHRlc3Qgd2FzIG1vZGlmaWVkIHRvIGRldGVjdCB0aGUgUlRDIGZhdWx0cyB1dGlsaXppbmcKICAgIHRoaXMgbmV3IHJ0Y19nZXQoKSBmZWF0dXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCBhNWNjNTU1NWNjZWU1OTY5MDhhN2Q4Y2YyMmExMDRmNmI5OTNiZmQ1CkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CVdlZCBNYXIgMTkgMTQ6MjU6MTQgMjAwOCArMDEwMAoKICAgIFRRTTUyMDBCOiB1cGRhdGUgTVREIHBhcnRpdGlvbiBsYXlvdXQKCiAgICAtIGluc2VydCBwYXJ0aXRpb24gZm9yIGR0YiBibG9iIHRvIFRRTTUyMDBCIE1URCBsYXlvdXQKICAgIC0gc2V0IGVudiB2YXJpYWJsZXMgZGVwZW5kZW50IG9uIHRoZSBjb25maWd1cmVkIGJvYXJkCiAgICAgIChUUU01MjAwIG9yIFRRTTUyMDBCKQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IGYwMTA1NzI3ZDEzMmY1NmEyMWZhM2VkOGIxNjIzMDljY2E2Y2FjNDQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMTkgMDc6MDk6MjYgMjAwOCArMDEwMAoKICAgIENGSTogU21hbGwgY2xlYW51cCBmb3IgRkxBU0hfU0hPV19QUk9HUkVTUwoKICAgIFdpdGggdGhpcyBwYXRjaCB3ZSBkb24ndCBuZWVkIHRoYXQgbWFueSAjaWZkZWYncyBpbiB0aGUgY29kZS4gSXQgbW92ZXMKICAgIHRoZSBzdWJ0cmFjdGlvbiBpbnRvIHRoZSBtYWNybyBhbmQgZGVmaW5lcyBhIE5PUC1tYWNybyB3aGVuCiAgICBDT05GSUdfRkxBU0hfU0hPV19QUk9HUkVTUyBpcyBub3QgZGVmaW5lZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBBY2tlZC1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCA5YTA0MmU5Y2E1MTJiZWFhYTJjYjQ1MDI3NDMxM2ZjNDc3MTQxMjQxCkF1dGhvcjogSmVycnkgVmFuIEJhcmVuIDxndmIudWJvb3RAZ21haWwuY29tPgpEYXRlOglTYXQgTWFyIDggMTM6NDg6MDEgMjAwOCAtMDUwMAoKICAgIEZsYXNoIHByb2dyYW1taW5nIHByb2dyZXNzIGNvdW50ZG93bi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDVlMzM5ZmQ5ZWQ1MzlhN2Q3ZmVjNTljZmM4OGYwODU3YWIyNmE1M2YKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWFyIDE5IDEwOjAwOjA2IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gRml4IHN0eWxlIGlzc3VlIHNwb3R0ZWQgYnkgV29sZmdhbmcgRGVuayA8d2RAZGVueC5vcmc+CgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCAxMWFiZTQ1YzQ4ZWMzNDg1YTZjMWE1MTY4Y2U4ZDc5YzMyODhhZGMxCkF1dGhvcjogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+CkRhdGU6CU1vbiBGZWIgMTggMTg6MDk6MDQgMjAwOCArMTEwMAoKICAgIGxpYmZkdDogUmVtb3ZlIG5vIGxvbmdlciB1c2VkIGNvZGUgZnJvbSBmZHRfbm9kZV9vZmZzZXRfYnlfY29tcGF0aWJsZSgpCgogICAgU2luY2UgZmR0X25vZGVfb2Zmc2V0X2J5X2NvbXBhdGlibGUoKSB3YXMgY29udmVydGVkIHRvIHRoZSBuZXcKICAgIGZkdF9uZXh0X25vZGUoKSBpdGVyYXRvciwgYSBjaHVuayBvZiBpbml0aWFsaXphdGlvbiBjb2RlIGJlY2FtZQogICAgcmVkdW5kYW50LCBidXQgd2FzIG5vdCByZW1vdmVkIGJ5IG92ZXJzaWdodC4gIFRoaXMgcGF0Y2ggY2xlYW5zIGl0IHVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgoKY29tbWl0IGQwY2NiOWIxNDBiNDcyMDM5NzMyZGUxMDJmYzE0NTk3ZWVkYjE0ZGYKQXV0aG9yOiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KRGF0ZToJTW9uIEZlYiAxOCAxODowNjozMSAyMDA4ICsxMTAwCgogICAgbGliZmR0OiBUcml2aWFsIGNsZWFudXAgZm9yIENIRUNLX0hFQURFUikKCiAgICBDdXJyZW50bHkgdGhlIENIRUNLX0hFQURFUigpIG1hY3JvIGlzIGRlZmluZWQgbG9jYWwgdG8gZmR0X3JvLmMuCiAgICBIb3dldmVyLCB0aGVyZSBhcmUgYSBoYW5kZnVsIG9mIGZ1bmN0aW9ucyAoZmR0X21vdmUsIHJ3X2NoZWNrX2hlYWRlciwKICAgIGZkdF9vcGVuX2ludG8pIGZyb20gb3RoZXIgZmlsZXMgd2hpY2ggY291bGQgYWxzbyB1c2UgaXQgKGN1cnJlbnRseQogICAgdGhleSBvcGVuLWNvZGUgc29tZXRoaW5nIG1vcmUtb3ItbGVzcyBpZGVudGljYWwpLiAgVGhlcmVmb3JlLCB0aGlzCiAgICBwYXRjaCBtb3ZlcyBDSEVDS19IRUFERVIoKSB0byBsaWJmZHRfaW50ZXJuYWwuaCBhbmQgdXNlcyBpdCBpbiB0aG9zZQogICAgcGxhY2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgoKY29tbWl0IGZlMzBhMzU0Y2RiYjgwOGI1ZjE1MzY2YTkzNWIxNTFhNGNjZWU3NGYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgRmViIDIwIDE0OjMyOjM2IDIwMDggLTA2MDAKCiAgICBGaXggZmR0IGJvYXJkc2V0dXAgY29tbWFuZCBwYXJzaW5nCgogICAgVGhlIGludHJvZHVjaXRvbiBvZiB0aGUgJ2ZkdCBib290Y3B1JyBicm9rZSBwYXJzaW5nIGZvciAnZmR0IGJvYXJkc2V0dXAnLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgODA0ODg3ZTYwMDFlMmYwMGJlYTExNDMxYmYzNGQ2ZDQ3MjUxMmNkYQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CUZyaSBGZWIgMTUgMDM6MzQ6MzYgMjAwOCAtMDYwMAoKICAgIEFkZCBzdWItY29tbWFuZHMgdG8gZmR0CgogICAgZmR0IGhlYWRlcgkJCQktIERpc3BsYXkgaGVhZGVyIGluZm8KICAgIGZkdCBib290Y3B1IDxpZD4JCQktIFNldCBib290IGNwdWlkCiAgICBmZHQgbWVtb3J5IDxhZGRyPiA8c2l6ZT4JCS0gQWRkL1VwZGF0ZSBtZW1vcnkgbm9kZQogICAgZmR0IHJzdm1lbSBwcmludAkJCS0gU2hvdyBjdXJyZW50IG1lbSByZXNlcnZlcwogICAgZmR0IHJzdm1lbSBhZGQgPGFkZHI+IDxzaXplPgktIEFkZCBhIG1lbSByZXNlcnZlCiAgICBmZHQgcnN2bWVtIGRlbGV0ZSA8aW5kZXg+CQktIERlbGV0ZSBhIG1lbSByZXNlcnZlcwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZjg0ZDY1ZjliMDg1ZmZiZWQ0NjRkMWQ1OGU4YWFhOGY1YTJlZmMwNwpBdXRob3I6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgpEYXRlOglUaHUgRmViIDE0IDE2OjUwOjM0IDIwMDggKzExMDAKCiAgICBsaWJmZHQ6IEZpeCBOT1AgaGFuZGxpbmcgYnVnIGluIGZkdF9hZGRfc3Vibm9kZV9uYW1lbGVuKCkKCiAgICBmZHRfYWRkX3N1Ym5vZGVfbmFtZWxlbigpIGhhcyBhIGJ1ZyBpZiBhc2tlZCB0byBhZGQgYSBzdWJub2RlIHRvIGEKICAgIG5vZGUgd2hpY2ggaGFzIE5PUCB0YWdzIGludGVyc3BlcnNlZCB3aXRoIGl0cyBwcm9wZXJ0aWVzLiAgSW4gdGhpcwogICAgY2FzZSBmZHRfYWRkX3N1Ym5vZGVfbmFtZWxlbigpIHdpbGwgcHV0IHRoZSBuZXcgc3Vibm9kZSBiZWZvcmUgdGhlCiAgICBmaXJzdCBOT1AgdGFnLCBldmVuIGlmIHRoZXJlIGFyZSBwcm9wZXJ0aWVzIGFmdGVyIGl0LCB3aGljaCB3aWxsCiAgICByZXN1bHQgaW4gYW4gaW52YWxpZCBibG9iLgoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIGJ1ZywgYW5kIGFkZHMgYSB0ZXN0Y2FzZSBmb3IgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+Cgpjb21taXQgYWUwYjU5MDhkZTNiOTg1NWY4OTMxYmM5YjMyYzlmYzQ5NjJkZjVhOQpBdXRob3I6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgpEYXRlOglUdWUgRmViIDEyIDExOjU4OjMxIDIwMDggKzExMDAKCiAgICBsaWJmZHQ6IEFkZCBhbmQgdXNlIGEgbm9kZSBpdGVyYXRpb24gaGVscGVyIGZ1bmN0aW9uLgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBhbiBmZHRfbmV4dF9ub2RlKCkgZnVuY3Rpb24gd2hpY2ggY2FuIGJlIHVzZWQgdG8KICAgIGl0ZXJhdGUgdGhyb3VnaCBub2RlcyBvZiB0aGUgdHJlZSB3aGlsZSBrZWVwaW5nIHRyYWNrIG9mIGRlcHRoLiAgVGhpcwogICAgZnVuY3Rpb24gaXMgdXNlZCB0byBzaW1wbGlmeSB0aGUgaXRlcmF0aW9uIGNvZGUgaW4gYSBsb3Qgb2Ygb3RoZXIKICAgIGZ1bmN0aW9ucywgYW5kIGlzIGFsc28gZXhwb3J0ZWQgZm9yIHVzZSBieSBsaWJyYXJ5IHVzZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgoKY29tbWl0IDllYWViMDdhNzE4NWQ4NTJjN2FhMTA3MzVlY2Q0ZTllZGYyNGZiNWQKQXV0aG9yOiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KRGF0ZToJRnJpIEphbiAxMSAxNDo1NTowNSAyMDA4ICsxMTAwCgogICAgbGliZmR0OiBBZGQgZmR0X3NldF9uYW1lKCkgZnVuY3Rpb24KCiAgICBUaGlzIHBhdGNoIGFkZHMgYW4gZmR0X3NldF9uYW1lKCkgZnVuY3Rpb24gdG8gbGliZmR0LCBtaXJyb3JpbmcKICAgIGZkdF9nZXRfbmFtZSgpLiAgVGhpcyBpcyBhIHIvdyBmdW5jdGlvbiB3aGljaCBhbHRlcnMgdGhlIG5hbWUgb2YgYQogICAgZ2l2ZW4gZGV2aWNlIHRyZWUgbm9kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KCmNvbW1pdCAyM2UyMGFhNjQ4OGU2YzA2MjI0OTY1NDk4NjFiZmRjNzQxMDhkZWJlCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgTWFyIDE4IDEzOjMzOjMwIDIwMDggKzAxMDAKCiAgICBsd21vbjU6IEZpeCByZWdpc3RlciB0ZXN0IGxvZ2ljIHRvIG1hdGNoIHRoZSBzcGVjaWZpYyBHREMgaC93LgoKICAgIFNpZ25lZC1vZmYtYnk6IERtaXRyeSBSYWtoY2hldiA8cmRhQGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgoKY29tbWl0IDQ2YmMwYTkzODc3OWFhMWQ2NjRiODQ3ZDM2YjA4YWEwMGYyMmU1MzkKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgMTggMTM6Mjc6NTcgMjAwOCArMDEwMAoKICAgIEZpeCBiYWNrbGlnaHQgaW4gdGhlIGx3bW9uNSBQT1NULgoKICAgIEJhY2tsaWdodCB3YXMgc3dpdGNoZWQgb24gZXZlbiB3aGVuIHRlbXBlcmF0dXJlIHdhcyB0b28gbG93LgoKICAgIFNpZ25lZC1vZmYtYnk6IERtaXRyeSBSYWtoY2hldiA8cmRhQGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgoKY29tbWl0IDNkNjEwMTg2NDNhMmNkMzhjMTQ1YWE2ZGRlNTNmM2Y1ZjFhMGU5Y2YKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVdlZCBGZWIgNiAxODo0ODozNiAyMDA4ICswMTAwCgogICAgVGhlIHBhdGNoIGludHJvZHVjZXMgdGhlIGFsdGVybmF0aXZlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGxvZyBidWZmZXIgZm9yIHRoZSBsd21vbjUgYm9hcmQ6IHRoZSBzdG9yYWdlIGZvciB0aGUgbG9nLWJ1ZmZlciBpdHNlbGYgaXMgT0NNKG9uLWNoaXAgbWVtb3J5KSwgdGhlIGxvZy1idWZmZXIgaGVhZGVyIGlzIG1vdmVkIHRvIHNpeCBHUFQgcmVnaXN0ZXJzIChQUEM0NDBFUFhfR1BUMF9DT01QMSwgLi4uLCBQUEM0NDBFUFhfR1BUMF9DT01QNSkuCgogICAgIFRvIGVuYWJsZSB0aGlzLCBhbHRlcm5hdGl2ZSwgY29uZmlndXJhdGlvbiB0aGUgVS1Cb290IGJvYXJkIGNvbmZpZ3VyYXRpb24KICAgIGZpbGUgZm9yIGx3bW9uNSBpbmNsdWRlcyB0aGUgZGVmaW5pdGlvbnMgb2YgYWx0ZXJuYXRpdmUgYWRkcmVzc2VzIGZvciBoZWFkZXIKICAgIChDT05GSUdfQUxUX0xIX0FERFIpIGFuZCBidWZmZXIgKENPTkZJR19BTFRfTEJfQUREUikuCgogICAgIFRoZSBMaW51eCBzaGFsbCBiZSBjb25maWd1cmVkIHdpdGggdGhlIENPTkZJR19BTFRfTEJfTE9DQVRJT04gb3B0aW9uIHNldCwKICAgIGFuZCBoYXMgdGhlIEJPQVJEX0FMVF9MSF9BRERSIGFuZCBCT0FSRF9BTFRfTEJfQUREUiBjb25zdGFudHMgZGVmaW5lZCBpbiB0aGUKICAgIGx3bW9uNSBib2FyZC1zcGVjaWZpYyBoZWFkZXIgKGFyY2gvcHBjL3BsYXRmb3Jtcy80eHgvbHdtb241LmgpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCAwZjAwOWY3ODFiNWI4OGYyNTc2OWUxNTRlYTRkNDJkYjEzYmFmMGM2CkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gRmViIDQgMTc6MTE6NTMgMjAwOCArMDEwMAoKICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgbHdtb241IGJvYXJkIHJlc2V0IHZpYSBHUElPNTguCgogICAgU2lnbmVkLW9mZi1ieTogRG1pdHJ5IFJha2hjaGV2IDxyZGFAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgZjY5NGUzMmY5MzU2NWVjMWZhOGQwMjI2YzU4NGQ2Yjg5ZTkzMWVkOQpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIEZlYiA0IDE3OjA5OjU1IDIwMDggKzAxMDAKCiAgICBTb21lIGZpeGVzIHRvIGRzcGljLCBmcGdhLCBhbmQgZ2RjIHBvc3QgdGVzdHMgZm9yIGx3bW9uNS4gRGlzYWJsZSBleHRlcm5hbCB3YXRjaC1kb2cgZm9yIG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEbWl0cnkgUmFraGNoZXYgPHJkYUBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCBiNDI4ZjZhOGM2NWM1MzAzZTVmOTZkYjhkMjRmMmY2OTlkOTRhOThjCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gRmViIDQgMTQ6MTE6MDMgMjAwOCArMDEwMAoKICAgIFRoZSBwYXRjaCBpbnRyb2R1Y2VzIHRoZSBDUklUSUNBTCBmZWF0dXJlIG9mIFBPU1QgdGVzdHMuIElmIHRoZSB0ZXN0IG1hcmtlZCBhcyBQT1NUX0NSSVRJQ0FMIGZhaWxzIHRoZW4gdGhlIGFsdGVybmF0aXZlLCBwb3N0X2NyaXRpY2FsLCBib290LWNvbW1hbmQgaXMgdXNlZC4gSWYgdGhpcyBjb21tYW5kIGlzIG5vdCBkZWZpbmVkIHRoZW4gVS1Cb290IGVudGVycyBpbnRvIGludGVyYWN0aXZlIG1vZGUuCgogICAgU2lnbmVkLW9mZi1ieTogRG1pdHJ5IFJha2hjaGV2IDxyZGFAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgOGYxNWQ0YWRkZDQ5Yzk1NjQxMmUxZTNiZmM3NjRhMGM4YjFmMzE4NApBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIEZlYiA0IDE0OjEwOjQyIDIwMDggKzAxMDAKCiAgICBUaGUgcGF0Y2ggYWRkcyBuZXcgUE9TVCB0ZXN0cyBmb3IgdGhlIEx3bW9uNSBib2FyZC4gVGhlc2UgYXJlOgoKICAgICogRXh0ZXJuYWwgV2F0Y2hkb2cgdGVzdDsKICAgICogZHNQSUMgdGVzdHM7CiAgICAqIEZQR0EgdGVzdDsKICAgICogR0RDIHRlc3Q7CiAgICAqIFN5c21vbiB0ZXN0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEbWl0cnkgUmFraGNoZXYgPHJkYUBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCBjMmVkMzNlZmJmZmY1NzY3YmNhMjM2ODI4ZTAyMWM1NWZkNTQ3YjZjCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gRmViIDQgMTQ6MTA6MDEgMjAwOCArMDEwMAoKICAgIEVuYWJsZSBDT0RFQyBQT1NUIHdpdGggQ0ZHX1BPU1RfQ09ERUMgcmF0aGVyIHRoYW4gd2l0aCBDRkdfUE9TVF9EU1AuCgogICAgU2lnbmVkLW9mZi1ieTogRG1pdHJ5IFJha2hjaGV2IDxyZGFAZW1jcmFmdC5jb20+Cgpjb21taXQgM2E1ZDFlN2YxMzA5OTk4NzkxNzAyYjJhNTU5ZTMxMjY3ODE3NDZiOQpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE1hciAxOCAxMzozMzozMCAyMDA4ICswMTAwCgogICAgbHdtb241OiBGaXggcmVnaXN0ZXIgdGVzdCBsb2dpYyB0byBtYXRjaCB0aGUgc3BlY2lmaWMgR0RDIGgvdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEbWl0cnkgUmFraGNoZXYgPHJkYUBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCAwZjg1NWExZjA1NmE4YzIyMTE2YTIxMDNhMzkwMGNiZmI2NjlkZjBiCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgTWFyIDE4IDEzOjI3OjU3IDIwMDggKzAxMDAKCiAgICBGaXggYmFja2xpZ2h0IGluIHRoZSBsd21vbjUgUE9TVC4KCiAgICBCYWNrbGlnaHQgd2FzIHN3aXRjZWhkIG9uIGV2ZW4gd2hlbiB0ZW1wZXJhdHVyZSB3YXMgdG9vIGxvdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEbWl0cnkgUmFraGNoZXYgPHJkYUBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCAyZDk5MTk1OGIxZTQyMGZiZmUxN2IxMjhiZDI2YWRlNzRiZTVlZmNjCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgRmViIDYgMTg6NDg6MzYgMjAwOCArMDEwMAoKICAgICBUaGUgcGF0Y2ggaW50cm9kdWNlcyB0aGUgYWx0ZXJuYXRpdmUgY29uZmlndXJhdGlvbiBvZiB0aGUgbG9nIGJ1ZmZlciBmb3IKICAgIHRoZSBsd21vbjUgYm9hcmQ6IHRoZSBzdG9yYWdlIGZvciB0aGUgbG9nLWJ1ZmZlciBpdHNlbGYgaXMgT0NNKG9uLWNoaXAgbWVtb3J5KSwKICAgIHRoZSBsb2ctYnVmZmVyIGhlYWRlciBpcyBtb3ZlZCB0byBzaXggR1BUIHJlZ2lzdGVycyAoUFBDNDQwRVBYX0dQVDBfQ09NUDEsIC4uLiwKICAgIFBQQzQ0MEVQWF9HUFQwX0NPTVA1KS4KCiAgICAgVG8gZW5hYmxlIHRoaXMsIGFsdGVybmF0aXZlLCBjb25maWd1cmF0aW9uIHRoZSBVLUJvb3QgYm9hcmQgY29uZmlndXJhdGlvbgogICAgZmlsZSBmb3IgbHdtb241IGluY2x1ZGVzIHRoZSBkZWZpbml0aW9ucyBvZiBhbHRlcm5hdGl2ZSBhZGRyZXNzZXMgZm9yIGhlYWRlcgogICAgKENPTkZJR19BTFRfTEhfQUREUikgYW5kIGJ1ZmZlciAoQ09ORklHX0FMVF9MQl9BRERSKS4KCiAgICAgVGhlIExpbnV4IHNoYWxsIGJlIGNvbmZpZ3VyZWQgd2l0aCB0aGUgQ09ORklHX0FMVF9MQl9MT0NBVElPTiBvcHRpb24gc2V0LAogICAgYW5kIGhhcyB0aGUgQk9BUkRfQUxUX0xIX0FERFIgYW5kIEJPQVJEX0FMVF9MQl9BRERSIGNvbnN0YW50cyBkZWZpbmVkIGluIHRoZQogICAgbHdtb241IGJvYXJkLXNwZWNpZmljIGhlYWRlciAoYXJjaC9wcGMvcGxhdGZvcm1zLzR4eC9sd21vbjUuaCkuCgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgoKY29tbWl0IGZmODE4YjIxYjA2OWY0YmM5Y2I3MzM3M2NjNWExNjAxNGJlMTAxYjcKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBGZWIgNCAxNzoxMTo1MyAyMDA4ICswMTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBsd21vbjUgYm9hcmQgcmVzZXQgdmlhIEdQSU81OC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEbWl0cnkgUmFraGNoZXYgPHJkYUBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCA2MDNmMTk0ZTVhZDgxYmIyZWY0MmQ2ZDhhYWE3NGRlMTc1YmNiNDExCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gRmViIDQgMTc6MDk6NTUgMjAwOCArMDEwMAoKICAgIFNvbWUgZml4ZXMgdG8gZHNwaWMsIGZwZ2EsIGFuZCBnZGMgcG9zdCB0ZXN0cyBmb3IgbHdtb241LgogICAgRGlzYWJsZSBleHRlcm5hbCB3YXRjaC1kb2cgZm9yIG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEbWl0cnkgUmFraGNoZXYgPHJkYUBlbWNyYWZ0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCBlMjYyZWZlMzU3NDJjMWFkNGIwOTY2ZmY1MDFlZmMyNmYzNGEwYWVjCkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gRmViIDQgMTQ6MTE6MDMgMjAwOCArMDEwMAoKICAgIFRoZSBwYXRjaCBpbnRyb2R1Y2VzIHRoZSBDUklUSUNBTCBmZWF0dXJlIG9mIFBPU1QgdGVzdHMuIElmIHRoZSB0ZXN0CiAgICBtYXJrZWQgYXMgUE9TVF9DUklUSUNBTCBmYWlscyB0aGVuIHRoZSBhbHRlcm5hdGl2ZSwgcG9zdF9jcml0aWNhbCwKICAgIGJvb3QtY29tbWFuZCBpcyB1c2VkLiBJZiB0aGlzIGNvbW1hbmQgaXMgbm90IGRlZmluZWQgdGhlbiBVLUJvb3QKICAgIGVudGVycyBpbnRvIGludGVyYWN0aXZlIG1vZGUuCgogICAgU2lnbmVkLW9mZi1ieTogRG1pdHJ5IFJha2hjaGV2IDxyZGFAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgNjViMjBkY2VmYzg5NjE4MTkzZmE1MTk0Nzk2OGRhZGE5MWU0Yzc3OApBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIEZlYiA0IDE0OjEwOjQyIDIwMDggKzAxMDAKCiAgICBUaGUgcGF0Y2ggYWRkcyBuZXcgUE9TVCB0ZXN0cyBmb3IgdGhlIEx3bW9uNSBib2FyZC4KICAgIFRoZXNlIGFyZToKCiAgICAqIEV4dGVybmFsIFdhdGNoZG9nIHRlc3Q7CiAgICAqIGRzUElDIHRlc3RzOwogICAgKiBGUEdBIHRlc3Q7CiAgICAqIEdEQyB0ZXN0OwogICAgKiBTeXNtb24gdGVzdHMuCgogICAgU2lnbmVkLW9mZi1ieTogRG1pdHJ5IFJha2hjaGV2IDxyZGFAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+Cgpjb21taXQgOGRjM2IyMzAzZDJiNTdjNzc0YjYwOWNhMGU3MDQzZWQ4ZjliODhjMQpBdXRob3I6IFl1cmkgVGlraG9ub3YgPHl1ckBwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIEZlYiA0IDE0OjEwOjAxIDIwMDggKzAxMDAKCiAgICBFbmFibGUgQ09ERUMgUE9TVCB3aXRoIENGR19QT1NUX0NPREVDIHJhdGhlciB0aGFuIHdpdGggQ0ZHX1BPU1RfRFNQLgoKICAgIFNpZ25lZC1vZmYtYnk6IERtaXRyeSBSYWtoY2hldiA8cmRhQGVtY3JhZnQuY29tPgoKY29tbWl0IDM1MTVmZDE4ZDRlOGU0NGY4NjNhYzcxNDJiNTVlMjJiMTA5ZTlhZjIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDE4IDE3OjM1OjUxIDIwMDggKzAxMDAKCiAgICBITUkxMDAxOiBmaXggY29tcGlsZSBwcm9ibGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMWYyYTk5NzAxMDljZWJmNzQ0NmUwNTAzYjEwYjcxZjg2NzMwNDVlZQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiAxOCAwNTozMjozMCAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IEJGNTM3LXN0YW1wOiBkcm9wIGJvYXJkLXNwZWNpZmljIGZsYXNoIGRyaXZlciBmb3IgQ0ZJCgogICAgVGhlIHBhcmFsbGVsIGZsYXNoIG9uIHRoZSBCRjUzNy1TVEFNUCBpcyBDRkkgY29tcGxpYW50LCBzbyB0aGVyZSBpcyBubyBuZWVkCiAgICBmb3IgdGhlIGJvYXJkIHNwZWNpZmljIGRyaXZlciBhdCBhbGwuICBKdXN0IHVzZSB0aGUgY29tbW9uIENGSSBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDViMjIxNjNmZWY4NjVhZjJiNmJmYjZiNzVmMWI3YmY0NDNjZTE3MGMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVR1ZSBGZWIgMTkgMDA6MzY6MTQgMjAwOCAtMDUwMAoKICAgIEJsYWNrZmluOiBhZGQgcHJvcGVyIEVMRiBtYXJraW5ncyB0byBzb21lIGFzc2VtYmx5IGZ1bmN0aW9ucwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBjZjY3NWQzYjJiOWMzNTExYzFkOTliYzhmOGYzOGZkMmYwOGJmY2FmCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUdWUgRmViIDE5IDAwOjM1OjE3IDIwMDggLTA1MDAKCiAgICBCbGFja2ZpbjogbmV3IGNwbGJpbmZvIGNvbW1hbmQgZm9yIHZpZXdpbmcgY3BsYiB0YWJsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYWFkYjcyNTAzY2QxNjAyMzQ5YTVmZTUzMzU2ZDVmNTVlY2MxYjkwMApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiAxOCAwNTozNzo1MSAyMDA4IC0wNTAwCgogICAgQmxhY2tmaW46IHVwZGF0ZSBNQUlOVEFJTkVSUyBsaXN0CgogICAgQWRkIG1haW50YWluZXIgaW5mb3JtYXRpb24gZm9yIHRoZSBCbGFja2ZpbiBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGY3Y2UxMmNiNjVhMzBjNmUxNTJlZWNmMjZmMDMwNGI3ZDc4Y2YzOWQKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgMTggMDU6MjY6NDggMjAwOCAtMDUwMAoKICAgIEJsYWNrZmluOiBjb252ZXJ0IEJGSU5fQ1BVIHRvIENPTkZJR19CRklOX0NQVQoKICAgIFN0b3AgdHlpbmcgdGhpbmdzIHRvIHRoZSBwcm9jZXNzb3IgdGhhdCBzaG91bGQgYmUgdGllZCB0byBvdGhlciBkZWZpbmVzIGFuZAogICAgY2hhbmdlIEJGSU5fQ1BVIHRvIENPTkZJR19CRklOX0NQVSBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGluIHRoZSBidWlsZAogICAgc3lzdGVtIHRvIHNlbGVjdCB0aGUgLW1jcHUgb3B0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA4NmEyMGZiOTIwYmQxOTgxMDVhY2Y3YjExOTExMTdmNTY2ZDYzN2VkCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglTYXQgRmViIDE2IDA3OjQwOjM2IDIwMDggLTA1MDAKCiAgICBCbGFja2ZpbjogbW92ZSBib290bGRyIGNvbW1hbmQgdG8gY29tbW9uIGNvZGUKCiAgICBUaGlzIG1vdmVzIHRoZSBCbGFja2Zpbi1jb21tb24gYm9vdGxkciBjb21tYW5kIG91dCBvZiB0aGUgQkY1MzctU1RBTVAKICAgIHNwZWNpZmljIGJvYXJkIGRpcmVjdG9yeSBhbmQgaW50byB0aGUgY29tbW9uIGRpcmVjdG9yeSBzbyB0aGF0IGFsbCBCbGFja2ZpbgogICAgYm9hcmRzIG1heSB1dGlsaXplIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBkZWNiZTAyOWIyYTlkMzMzM2QwMmM0MzMzODliMWM4MjFlZWE5NmQ3CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CUZyaSBNYXIgMTQgMTE6MDU6MjAgMjAwOCArMDEwMAoKICAgIG1nY29nZTogdXBkYXRlIGNvbmZpZ3VyYXRpb24KCiAgICBGaXggY29uZmlndXJhdGlvbiBmb3IgbWdjb2dlIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgYzEzNjcyNGNkYTAyMTljNDlmMWQ0YjM0NmYwMGRhMjliMTRmZGYxNApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBNYXIgMTYgMDE6MjI6NTkgMjAwOCArMDEwMAoKICAgIGRyaXZlcnMvcnRjL01ha2VmaWxlOiBrZWVwIGxpc3Qgc29ydGVkCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA5NTM2ZGZjY2UwM2U3YmU0Y2NiY2ViNDdhMDhkOWJhMDdhZGEzNjJmCkF1dGhvcjogVG9yIEtyaWxsIDx0b3JAZXhjaXRvLmNvbT4KRGF0ZToJU2F0IE1hciAxNSAxNTo0MDoyNiAyMDA4ICswMTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIEludGVyc2lsIGlzbDEyMDggUlRDCgogICAgU2lnbmVkLW9mZi1ieTogVG9yIEtyaWxsIDx0b3JAZXhjaXRvLmNvbT4KCmNvbW1pdCAwMjEwY2ZmM2QwNzlkOTdiMjE1NmIxMzY4NWVlOGRlMzY4ZTY4YTFhCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE1hciAxNSAxNzozNjo0MSAyMDA4ICswMTAwCgogICAgY3JhbWZzOiBGaXggaWZkZWYKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDBiOGYyYTI3ODYxYTlmZDA2ZWI1NWEzNGY4NTVlYzljNTEwMmFhYjQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gTWFyIDE2IDAxOjEyOjU4IDIwMDggKzAxMDAKCiAgICBDb25kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDQxNzEyYjRlOGM5NWRmZjIzMzU0YmNkNjIwZTFmOTQ3NzE2MGMxOTAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgNSAxMjozMTo1MyAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgVVNCIE9IQ0kgc3VwcG9ydCB0byBBTUNDIENhbnlvbmxhbmRzIDQ2MEVYIGV2YWwgYm9hcmQKCiAgICBUaGlzIHBhdGNoIGFkZHMgVVNCIE9IQ0kgc3VwcG9ydCB0byB0aGUgQ2FueW9ubGFuZHMgYm9hcmQgcG9ydC4gSXQgYWxzbwogICAgZW5hYmxlcyBFWFQyIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDI1OTZmNWI5ZDM1M2ZmM2U0Mzg3YTMzMjVkMDU3NDBmMTY5NTgwMzgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgNSAxMjoyOTozMiAyMDA4ICswMTAwCgogICAgdXNiOiBBZGQgQ0ZHX09IQ0lfVVNFX05QUyB0byBjb21tb24gVVNCLU9IQ0kgZHJpdmVyCgogICAgVGhpcyBwYXRjaCBhZGRzIENGR19PSENJX1VTRV9OUFMgdG8gdGhlIGNvbW1vbiBVU0ItT0hDSSBkcml2ZXIuIFRoaXMKICAgIHdheSBhIGJvYXJkIGp1c3QgbmVlZHMgdG8gZGVmaW5lIHRoaXMgbmV3IG9wdGlvbiB0byBlbmFibGUgdGhlICJmb3JjZQogICAgTm9Qb3dlclN3aXRjaGluZyBtb2RlIiBpbnN0ZWFkIG9mIGFkZGluZyBuZXcgQ1BVL2FyY2hpdGVjdHVyZSBkZWZpbmVzCiAgICB0byB0aGUgVVNCIHNvdXJjZSBpdHNlbGYuCgogICAgVGhpcyBuZXcgb3B0aW9uIHdpbGwgYmUgdXNlZCBmaXJzdCB3aXRoIHRoZSBuZXcgQU1DQyA0NjBFWCBDYW55b25sYW5kcwogICAgYm9hcmQgcG9ydCwgd2hpY2ggd2lsbCBiZSBwb3N0ZWQgaW4gYSBmZXcgZGF5cy4KCiAgICBUaGlzIHBhdGNoIGFsc28gZml4ZXMgYSBzbWFsbCBjb21waWxhdGlvbiBwcm9ibGVtIHdoZW4gREVCVUcgaXMgZW5hYmxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzE2NjVlYmY4ODQwOGZmMmFjYjc2MmFmNDc5ODlmZDQzNjViMzIxYQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE1hciAzIDE3OjI3OjAyIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBDYW55b25sYW5kcyBOQU5EIGJvb3Rpbmcgc3VwcG9ydAoKICAgIDQ2MEVYIGRvZXNuJ3Qgc3VwcG9ydCBhIGZpeGVkIGJvb3RzdHJhcCBvcHRpb24gdG8gYm9vdCBmcm9tIDUxMiBieXRlIHBhZ2UKICAgIE5BTkQgZGV2aWNlcy4gVGhlIG9ubHkgYm9vdHN0cmFwIG9wdGlvbiBmb3IgTkFORCBib290aW5nIGlzIG9wdGlvbiBGIGZvcgogICAgMmsgcGFnZSBkZXZpY2VzLiBTbyB0byBib290IGZyb20gYSA1MTIgYnlwZSBwYWdlIGRldmljZSwgdGhlIEkyQyBib290c3RyYXAKICAgIEVFUFJPTSBuZWVkcyB0byBiZSBwcm9ncmFtbWVkIGFjY29yZGluZ2x5LgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBOQU5EIGJvb3Rpbmcgc3VwcG9ydCBmb3IgdGhlIEFNQ0MgQ2FueW9ubGFuZHMgYXZhbAogICAgYm9hcmQgYW5kIGFsc28gYWRkcyBzdXBwb3J0IHRvIHRoZSAiYm9vdHN0cmFwIiBjb21tYW5kLCB0byBlbmFibGUgTkFORAogICAgYm9vdGluZyBJMkMgc2V0dGluZy4KCiAgICBUZXN0ZWQgd2l0aCA1MTIgYnl0ZSBwYWdlIE5BTkQgZGV2aWNlICgzMk1CeXRlKSBvbiBDYW55b25sYW5kcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzgxM2YxZjgzNWE3ZWRmZGI5MjlmMjg0M2IwOWRiNzJjZDVjZDJmMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1hciAxMSAxNjo1MzowMCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgQU1DQyBDYW55b25sYW5kcyBzdXBwb3J0ICg0NjBFWCkgKDMvMykKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIEFNQ0MgQ2FueW9ubGFuZHMgNDYwRVggZXZhbHVhdGlvbgogICAgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDY5ODNmZTIxZjc3NGE5MjRkM2FkYjI2M2EyNzBiYzJmMzAxZjJhYTIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgMTEgMTY6NTI6MjQgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogQWRkIEFNQ0MgQ2FueW9ubGFuZHMgc3VwcG9ydCAoNDYwRVgpICgyLzMpCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBBTUNDIENhbnlvbmxhbmRzIDQ2MEVYIGV2YWx1YXRpb24KICAgIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4ZTFhM2ZlNTQ1YmJjZmNlYWZlMTgzMzQ0ZWJjOWYxYWQwMzgxOWMxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDExIDE2OjUxOjE3IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBBTUNDIENhbnlvbmxhbmRzIHN1cHBvcnQgKDQ2MEVYKSAoMS8zKQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgQU1DQyBDYW55b25sYW5kcyA0NjBFWCBldmFsdWF0aW9uCiAgICBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDNjNjA5OTJjZGY3MjQ5NmU3ZWFhYTNmYmQzN2ViYmU3NTgzNWY2OQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1hciAxMSAxNToxMTo0MyAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgYmFzaWMgc3VwcG9ydCBmb3IgQU1DQyA0NjBFWC80NjBHVCAoNS81KQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBzdXBwb3J0IGZvciB0aGUgQU1DQyA0NjBFWC80NjBHVCBQUEMncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmYyZWIzZjNkOGVhMmRiYjIyNGQwZGE1YTEyMDM4NjkzYmFiOTk0NQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1hciAxMSAxNToxMToxOCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgYmFzaWMgc3VwcG9ydCBmb3IgQU1DQyA0NjBFWC80NjBHVCAoNC81KQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBzdXBwb3J0IGZvciB0aGUgQU1DQyA0NjBFWC80NjBHVCBQUEMncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOTk5ZWNkNWFjYTM4MTk4NGQ4ZWJiZWIyMDdlY2U4MmExYzI3NTU3NwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1hciAxMSAxNTowNzoxMCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgYmFzaWMgc3VwcG9ydCBmb3IgQU1DQyA0NjBFWC80NjBHVCAoMy81KQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBzdXBwb3J0IGZvciB0aGUgQU1DQyA0NjBFWC80NjBHVCBQUEMncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjgwMWIyZDJhOTkwNmYyMDZhYjllZThkMGI2ZTc0NmQyYjdmZTA1YQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1hciAxMSAxNTowNTo1MCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgYmFzaWMgc3VwcG9ydCBmb3IgQU1DQyA0NjBFWC80NjBHVCAoMi81KQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBzdXBwb3J0IGZvciB0aGUgQU1DQyA0NjBFWC80NjBHVCBQUEMncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOGFjNDFlM2UzN2MzMDgwYzZiMWQ5NDYxZDY1NDE2MWNmZTJhYTQ5MgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1hciAxMSAxNTowNToyNiAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgYmFzaWMgc3VwcG9ydCBmb3IgQU1DQyA0NjBFWC80NjBHVCAoMS81KQoKICAgIFRoaXMgcGF0Y2ggYWRkcyBiYXNpYyBzdXBwb3J0IGZvciB0aGUgQU1DQyA0NjBFWC80NjBHVCBQUEMncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNTZlNDEwMTc4Mzc1ZDlmMjBiZTI1ZmIyNGUxODA5NzRmMGFlMTIwYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAxOSAyMjowNzo1NyAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBpbnRlcnJ1cHQuYyByZXdvcmtlZAoKICAgIFRoaXMgcGF0Y2ggaXMgYSByZXdvcmsgb2YgdGhlIDR4eCBpbnRlcnJ1cHQgaGFuZGxpbmcgZG9uZSB3aGlsZQogICAgYWRkaW5nIHRoZSA0NjBFWC9HVCBzdXBwb3J0LiBJbnRlcnJ1cHRzIGFyZSBuZWVkZWQgb24gNHh4IGZvciB0aGUKICAgIEVNQUMgZHJpdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4NGE5OTliNmNkZDBiMDJkYzdkZTJjYWNjMzA2ZWFhODRhZmUyYjQ2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRmViIDE5IDIyOjAxOjU3IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IHByb2dyYW1fdGxiIG5vdyB1c2VzIDY0Yml0IHBoeXNpY2FsIGFkZGVzcwoKICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgcGh5c2ljYWwgYWRkZXNzIHBhcmFtZXRlciBmcm9tIDMyYml0IHRvIDY0Yml0LgogICAgVGhpcyBpcyBuZWVkZWQgZm9yIDM2Yml0IDR4eCBwbGF0Zm9ybXMgdG8gYWNjZXNzIGFyZWFzIGxvY2F0ZWQKICAgIGJleW9uZCB0aGUgNEdCIGJvcmRlciwgbGlrZSBTb0MgcGVyaXBoZXJhbHMgKEVCQyBldGMuKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzMzMDdmYTE4NmFmODU3NzE5MjRjNDM0OTk3MDg5YjgxMDRjMGE0NgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAxOSAyMTo1ODoyNSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBtaWlwaHkuYyByZXdvcmtlZAoKICAgIFdoaWxlIGFkZGluZyB0aGUgNDYwRVgvR1Qgc3VwcG9ydCBJIHJld29ya2VkIHRoZSA0eHggbWlpcGh5IGNvZGUuIEl0CiAgICBiYWRseSBuZWVkZSBzb21lIGNsZWFudXAuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg4YWZmNjJkZjM5YzA3NTYyNDFlYTlmOWI1YTdiM2FkZTI2Y2I4MmIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMTkgMTY6MjE6NDkgMjAwOCArMDEwMAoKICAgIHJ0YzogQWRkIE00MVQ2MiBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGQgc3VwcG9ydCBmb3IgdGhlIFNUTSBNNDFUNjIgUlRDLiBJdCBpcyB1c2VkIGFuZCB0ZXN0ZWQKICAgIG9uIHRoZSBBTUNDIENhbnlvbmxhbmRzIDQwNkVYIHBsYXRmb3JtLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyMTdkMzgzZTIwMWFkYzdmMjI3MTE0NWFlMzQ1ZWE1ZWFlMmI3MTcwCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJTW9uIEZlYiAyNSAxODo0Njo0MyAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgNDA1R1ByIGJhc2VkIE1DVTI1IGJvYXJkIHNwZWNpZmljIGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCA3NWE2NmRjZGIzODM4NjNhZDMzZjA1MzRjZmMyN2I3YTg2OTQ3ZGFkCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJTW9uIEZlYiAyNSAxODo0Njo0MiAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgNDA1R1ByIGJhc2VkIE1DVTI1IGJvYXJkIGNvbmZpZyBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCBiMDVmMzU0MzZiNzMzYTI0MDU1OWU3N2U0NmJlZDg0Mzk2NjVlY2M1CkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJTW9uIEZlYiAyNSAxODo0Njo0MSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBBZGQgNDA1R1ByIGJhc2VkIE1DVTI1IGJvYXJkLiBHbG9iYWwgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDE0YzI3YjM1YWM4MTJhNzFhYmNlNmUzZTJmNDEyOWQ1ZTkzMTM2NjAKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglNb24gRmViIDI1IDE4OjM3OjAyIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEhDVTQvNS4gcmVtb3ZlIG9ic29sZXRlIGhjdV9mbGFzaC5jCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCBhMDc5NDk0ODUzY2MyYmZlZGRiMjY2NzMyMTlkYjBiNGIyYjMxNTY2CkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJTW9uIEZlYiAyNSAxODozNzowMSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBIQ1U0LzUuIFVzZSBGTEFTSF9DRklfTEVHQUNZCgogICAgQ2xlYW51cDogUmVtb3ZlIGN1c3RvbSBmbGFzaCBkcml2ZXIgZm9yIDggYml0IGJvb3QtZXByb20gYW5kIHJlcGxhY2UgaXQgd2l0aAogICAgdGhlIEZMQVNIX0NGSV9MRUdBQ1kgZXQgYWwuIGNvbmZpZyBvcHRpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgZTQxNzBlNWE1MGM4MTEwZjc5MmJjMzc0NzI4MzNhZTY2OWQ2OTk1MQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1hciAxMSAxMzo1MjoyNSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBGaXggY29tbWVudCBpbiA0MDVFWCBERFIyIGluaXQgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3NjY1MjlmY2NjODYwZWNiOWU5NTViNDIzOWRmZjY5Y2Q5ZTRlYTA5CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIE1hciAxNCAxNjoyMjozNCAyMDA4ICswMTAwCgogICAgQWRkIE1ENSBzdXBwb3J0IHRvIHRoZSBuZXcgdUltYWdlIGZvcm1hdAoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgMGVkZTBjMzgzNTMwYTQxOGNmOThiZTkxMjIzNzFhODY1NzNjZDBkYgpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBNYXIgMTQgMTY6MjI6MzQgMjAwOCArMDEwMAoKICAgIEFkZCB0aGUgTUQ1IGFsZ29yaXRobQoKICAgIE1ENSBzdXBvcHJ0IGlzIHR1cm5lZCBvbiBieSBkZWZpbmluZyBDT05GSUdfTUQ1LCB0aGUgZGlnZXN0IGNhbiBiZSB0aGVuCiAgICBjYWxjdWxhdGVkIHVzaW5nIHRoZSBtZDUoKSBmdW5jdGlvbiAtLSBzZWUgaW5jbHVkZS9tZDUuaCBmb3IgZGV0YWlscy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGI4YWE1N2I1ZDRkNjllOGYwODEwYTVlNjMyYzBjZTQxYzBmNDZlZTAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgTWFyIDE0IDE2OjA0OjU0IDIwMDggKzAxMDAKCiAgICB0b29scy9zZXRsb2NhbHZlcnNpb246IHVzZSBhIGdpdC1kZXNjcmliZS1pc2ggZm9ybWF0CgogICAgQ2hhbmdlIHRoZSBhdXRvbWF0aWMgbG9jYWwgdmVyc2lvbiB0byBoYXZlIHRoZSBmb3JtIC1ubm5ubi1nU0hBMVNVTUlELAogICAgd2hlcmUgJ25ubm5uJyBpcyB0aGUgbnVtYmVyIG9mIGNvbW1pdHMgc2luY2UgdGhlIGxhc3QgdGFnIChpLmUuLAogICAgMS4zLjItcmMzKS4gIFRoaXMgbWFrZXMgaXQgbXVjaCBlYXNpZXIgdG8gcmVjb2duaXplICJuZXdlciIgdmVyc2lvbnMKICAgIGFuZCB0byBzZWUgaG93IG11Y2ggaGFzIGJlZW4gY2hhbmdlZCBzaW5jZSB0aGUgcmVmZXJlbmNlZCB0YWcuCgogICAgU3RvbGVuIGZyb20gTGludXgga2VybmVsJ3Mgc2NyaXB0cy9zZXRsb2NhbHZlcnNpbywgc2VlIGNvbW1pdCBkODgyNDIxZi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGM2ZGMyMWM4NGRlMGYxNTlhMTc1MmM1ZWJkMzNjZmY4NDNmNjM2MDkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDEzIDE0OjMyOjAzIDIwMDggKzAxMDAKCiAgICBITUkxMDAxOiBhZGQgc3VwcG9ydCBmb3IgTVBDNTIwMCBSZXYuIEIgcHJvY2Vzc29ycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDkwZjEzZGNlN2E3YTlhODRkNTczMDU3NmM5YTI0ZDBkYmIwN2NiM2EKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDEzIDE0OjI5OjQ5IDIwMDggKzAxMDAKCiAgICBUUU01MjAwOiByZW1vdmUgZGVhZCBjb2RlCgogICAgVGhpcyBib2FyZCBuZXZlciB1c2VkIGEgTUdUNTEwMCBwcm9jZXNzb3IuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBhZmU0NWM4N2UzYzVkNzdiYWQ3NmIxYTU3ZGNjZDIwNzY0ZDQ1YjVkCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxMiAxMjoxNDoxNSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEZpeCBidWlsZCBpc3N1ZSBvbiBBUk0KCiAgICBBUk0gcGxhdGZvcm1zIGRvbid0IGhhdmUgYSBiZC0+YmlfbWVtc2l6ZSBzbyB1c2UgYmQtPmJpX2RyYW1bMF0uc2l6ZSBpbnN0ZWFkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMzMxMGM1NDlhNzNhOTQ5NDMwYmZkYTkwODc2ZGY3NTUyYTFkYWIwYwpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBNYXIgMTIgMTI6MTM6MTMgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgbmV3IHVJbWFnZSBmb3JtYXQgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZXMKCiAgICBDcmVhdGUgZG9jL3VJbWFnZS5GSVQgZG9jdW1lbnRhdGlvbiBkaXJlY3Rvcnkgd2l0aCB0aGUgZm9sbG93aW5nIGZpbGVzOgogICAgLSBjb21tYW5kX3N5bnRheF9leHRlbnNpb25zLnR4dCA6IGV4dGVuZGVkIGNvbW1hbmQgc3ludGF4IGRlc2NyaXB0aW9uCiAgICAtIGhvd3RvLnR4dAkJCSAgICA6IHNob3J0IHVzYWdlIGhvd3RvCiAgICAtIHNvdXJjZV9maWxlX2Zvcm1hdC50eHQJICAgIDogaW50ZXJuYWwgbmV3IHVJbWFnZSBmb3JtYXQgZGVzY3JpcHRpb24KCiAgICBBZGQgZXhhbXBsZSBpbWFnZSBzb3VyY2UgZmlsZXM6CiAgICAtIGtlcm5lbC5pdHMKICAgIC0ga2VybmVsX2ZkdC5pdHMKICAgIC0gbXVsdGkuaXRzCgogICAgVXBkYXRlIFJFQURNRSBhcHByb3ByaWF0ZWx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDFlYzczNzYxZDJlMjQ3MDc4ZjQ1MjBhMjY1ZDQ2M2U4YjczMzkxYTIKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWFyIDEyIDEwOjM1OjUyIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gRml4IGRlZmluaXRpb24gb2YgY29tbW9uIGJvb3RtX2hlYWRlcnNfdCBmaWVsZHMKCiAgICB2ZXJpZnksIGF1dG9zdGFydCBhbmQgbG1iIGZpZWxkcyBhcmUgdXNlZCByZWdhcmRsZXNzIG9mIENPTkZJR19GSVQKICAgIHNldHRpbmcsIG1vdmUgdGhlaXIgZGVmaW5pdGlvbnMgdG8gY29tbW9uIHNlY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAxZDFjYjQyNzBlZGM2YTk5Mjc2ODM0MDY0MDY5NzE3Zjk3ODJjNDkxCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxMiAxMDozNTo1MSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEZpeCBidWlsZCBwcm9ibGVtcyBvbiB0cmFiIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBmNzczYmVhOGUxMWY0YTExYzM4OGRjZWU5NTZiMjQ0NDIwM2U2YjY1CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxMiAxMDozNTo0NiAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBwcm9wZXIgcmFtZGlzay9GRFQgaGFuZGxpbmcgd2hlbiBGSVQgY29uZmlndXJhdGlvbiBpcyB1c2VkCgogICAgU2F2ZSBGSVQgY29uZmlndXJhdGlvbiBwcm92aWVkIGluIHRoZSBmaXJzdCBib290bSBhcmd1bWVudCBhbmQgdXNlIGl0CiAgICB3aGVuIHRvIGdldCByYW1kaXNrL0ZEVCBzdWJpbWFnZXMgd2hlbiBzZWNvbmQgYW5kIHRoaXJkIChyYW1kaXNrL0ZEVCkKICAgIGFyZ3VtZW50cyBhcmUgbm90IHNwZWNpZmllZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDI2ODJjZThhNDIyNWYyM2Q3MmJiN2ZlZDA2OWU5MjhkZDM5ZDM0YWUKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWFyIDEyIDEwOjMzOjAxIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gTW9yZSB2ZXJib3NlIGtlcm5lbCBpbWFnZSB1bmNvbXByZXNzIGVycm9yIG1lc3NhZ2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDEzNzJjY2UyYjkwNDBmYjY0MGU1MDMyYjg0ZTNhMDMzYTIyZDZmZjAKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWFyIDEyIDEwOjMzOjAxIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gVXNlIHNob3dfYm9vdF9wcm9ncmVzcygpIGZvciBuZXcgdUltYWdlIGZvcm1hdAoKICAgIFRoaXMgcGF0Y2ggYWxsb2NhdGVzIGEgc2V0IG9mIHNob3dfYm9vdF9wcm9ncmVzcygpIElEcyBmb3IgbmV3IHVJbWFnZSBmb3JtYXQKICAgIGFuZCBhZGRzIHNob3dfYm9vdF9wcm9ncmVzcygpIGNhbGxzIGluIG5ldyB1SW1hZ2UgZm9ybWF0IGhhbmRsaW5nIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBjMjhjNGQxOTNkYmZiMjBiMmRkM2E1NDQ3NjQwZmQ2ZGU3ZmQwNzIwCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxMiAxMDozMzowMSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBuZXcgdUltYWdlIGZyb21hdCBzdXBwb3J0IHRvIGZwZ2EgY29tbWFuZAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgMDk0NzVmNzUyNzQ2MGU0MjZjMGUwNjI4ZmM1YjhmMzc1NGZiYWEyMwpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBNYXIgMTIgMTA6MzM6MDEgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgbmV3IHVJbWFnZSBmb3JtYXQgaGFuZGxpbmcgdG8gb3RoZXIgYm9vdG0gcmVsYXRlZCBjb21tYW5kcwoKICAgIFVwZGF0ZWQgY29tbWFuZHM6CgogICAgZG9jYm9vdCAgLSBjbWRfZG9jLmMKICAgIGZkY2Jvb3QgIC0gY21kX2ZkYy5jCiAgICBkaXNrYm9vdCAtIGNtZF9pZGUuYwogICAgbmJvb3QgICAgLSBjbWRfbmFuZC5jCiAgICBzY3NpYm9vdCAtIGNtZF9zY3NpLmMKICAgIHVzYmJvb3QgIC0gY21kX3VzYi5jCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAxYjc4OTdmMjhkNDlhODBkNzhkNzYwZWM2ZjZmMTFkYzBmOTE0MzM4CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxMiAxMDozMzowMCAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBuZXcgdUltYWdlIGZvcm1hdCBzdXBwb3J0IHRvIGltZ2V4dHJhY3QgY29tbWFuZAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgNDI0YzRhYmRkMTc1ZDJjNDcwNTEwZGY4Y2UwZTMyZDNmNDYzZWMxNgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBNYXIgMTIgMTA6MzM6MDAgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgbmV3IHVJbWFnZSBmb3JtYXQgc3VwcG9ydCB0byBhdXRvc2NyaXB0IHJvdXRpbmUKCiAgICBhdXRvc2NyaXB0KCkgcm91dGluZSBpcyB1cGRhdGVkIHRvIGFjY2VwdCBzZWNvbmQgYXJndW1lbnQsIHdoaWNoCiAgICBpcyBvbmx5IHVzZWQgZm9yIEZJVCBpbWFnZXMgYW5kIHByb3ZpZGVzIGEgRklUIHN1YmltYWdlIHVuaXQgbmFtZS4KCiAgICBhdXRvc2NyaXB0KCkgcm91dGluZSBjYWxsZXJzIG11c3Qgbm93IHBhc3MgdHdvIGFyZ3VtZW50cy4gRm9yCiAgICBub24taW50ZXJhY3RpdmUgdXNlIChsaWtlIGluIGNtZF9sb2FkLmMsIGNtZF9uZXQuYyksIG5ldyBlbnZpcm9ubWVudAogICAgdmFyaWFibGUgJ2F1dG9zY3JpcHRfdW5hbWUnIGlzIGludHJvZHVjZWQgYW5kIHVzZWQgYXMgYSBGSVQKICAgIHN1YmltYWdlIHVuaXQgbmFtZSBzb3VyY2UuCgogICAgYXV0b3NjcmlwdCBjb21tYW5kIGFjY2VwdHMgZXh0ZW5kZWQgc3ludGF4IG9mIHRoZSBhZGRyIGFyZ3VtZW50OgogICAgYWRkcjo8c3ViaW1nX3VuYW1lPgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgY2Q3YzU5NmU5ZjU2MWRiYmMxN2I3MTcyNzc0MzhhZWU3OGNkZTE0ZgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBNYXIgMTIgMTA6MzM6MDAgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgbmV3IHVJbWFnZSBmb3JtYXQgc3VwcG9ydCB0byBhcmNoIHNwZWNpZmljIGRvX2Jvb3RtX2xpbnV4KCkgcm91dGluZXMKCiAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBvZgogICAgZG9fYm9vdG1fbGludXgoKSBhZGRpbmcgbmV3IHVJbWFnZSBmb3JtYXQgaGFuZGxpbmcgZm9yCiAgICBvcGVyYXRpb25zIGxpa2UgZ2V0IGtlcm5lbCBlbnRyeSBwb2ludCBhZGRyZXNzLCBnZXQga2VybmVsCiAgICBpbWFnZSBkYXRhIHN0YXJ0IGFkZHJlc3MuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAzZGZlMTEwMTQ5MzExNDI1OTE5ZTZkNmExNGI1NjFiNDIwNzQ5OGYxCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxMiAxMDozMjo1OSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBub2RlIG9mZnNldHMgZm9yIEZJVCBpbWFnZXMgbGlzdGVkIGluIHN0cnVjdCBib290bV9oZWFkZXJzCgogICAgVGhpcyBwYXRjaCBhZGRzIG5ldyBub2RlIG9mZnNldCBmaWVsZHMgdG8gc3RydWN0IGJvb3RtX2hlYWRlcnMKICAgIGFuZCB1cGRhdGVzIGJvb3RtX2hlYWRlcnMgcHJvY2Vzc2luZyBjb2RlIHRvIG1ha2UgdXNlIG9mIHRoZW0uCiAgICBTYXZlZCBub2RlIG9mZnNldHMgYWxsb3cgdG8gYXZvaWQgcmVwZWF0aW5nIGZpdF9pbWFnZV9nZXRfbm9kZSgpIGNhbGxzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgYmM4ZWQ0ODZiMTI1NDUyYmEzYmQ4MzQ0ZjA1MmY0MzczMjkxNTBjNQpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBNYXIgMTIgMTA6MzI6NTMgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBwcGM6IEFkZCBuZXcgdUltYWdlIGZvcm1hdCBzdXBwb3J0IHRvIEZEVCBoYW5kbGluZyByb3V0aW5lcwoKICAgIFN1cHBvcnQgZm9yIG5ldyAoRklUKSBmb3JtYXQgdUltYWdlcyBpcyBhZGRlZCB0byBwb3dlcnBjIHNwZWNpZmljCiAgICBib290X2dldF9mZHQoKSByb3V0aW5lIHdoaWNoIG5vdyByZWNvZ25pemVzLCBzYW5pdHkgY2hlY2tzIEZJVCBpbWFnZQogICAgYW5kIGlzIGFibGUgdG8gYWNjZXNzIGRhdGEgc2VjdGlvbnMgb2YgdGhlIHJlcXVlc3RlZCBjb21wb25lbnQgaW1hZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBhNDRhMjY5YTkwNWY5MjRiNDIwMDIwNTA2YTRkN2Q3ZWVkY2MwZWFmCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxMiAxMDoxNDo1NyAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIFJlLWVuYWJsZSBpbnRlcnJ1cHRzIGZvciBub24gYXV0b21hdGljIGJvb3RpbmcKCiAgICBSZS1lbmFibGUgaW50ZXJydXB0cyBpZiB3ZSByZXR1cm4gZnJvbSBkb19ib290bV88b3M+IGFuZCAnYXV0b3N0YXJ0JwogICAgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbm90IHNldCB0byAneWVzJy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGQ5ODVjODQ5OGM0ZTQ3MDk1ODIwZGE5N2FhNzIyMzgxZDM5MTcyYzUKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWFyIDEyIDEwOjE0OjM4IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gUmVtb3ZlIHVubmVjZXNzYXJ5IGFyZ3VtZW50cyBwYXNzZWQgdG8gcmFtZGlzayByb3V0aW5lcwoKICAgIGJvb3RfZ2V0X3JhbWRpc2soKSBhbmQgaW1hZ2VfZ2V0X3JhbWRpc2soKSBkbyBub3QgbmVlZCBhbGwKICAgIGNtZHRwLCBmbGFnLCBhcmdjIGFuZCBhcmd2IGFyZ3VtZW50cy4gU2ltcGxpZnkgcm91dGluZXMgZGVmaW5pdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGM4Nzc5NjQ4M2JjN2MyOTAwNDcwZGM3NDdjMzY3ZjYwMjU3NzYwOGQKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTWFyIDEyIDEwOjEyOjM3IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQWRkIG5ldyB1SW1hZ2UgZm9ybWF0IHN1cHBvcnQgZm9yIHJhbWRpc2sgaGFuZGxpbmcKCiAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgYm9vdF9nZXRfcmFtZGlzaygpIHJvdXRpbmUgYWRkaW5nIGZvcm1hdAogICAgdmVyaWZpY2F0aW9uIGFuZCBoYW5kbGluZyBmb3IgbmV3IChGSVQpIHVJbWFnZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA2OTg2YTM4NTY3MTc0OWVjYjNmNjBjZjk5ZTljYmFlOGU0N2JiNTBlCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE1hciAxMiAxMDowMTowNSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBuZXcgdUltYWdlIGZvcm1hdCBzdXBwb3J0IGZvciBrZXJuZWwgYm9vdGluZwoKICAgIE5ldyBmb3JtYXQgdUltYWdlcyBhcmUgcmVjb2duaXplZCBieSB0aGUgYm9vdG0gY29tbWFuZCwKICAgIHZhbGlkaXR5IG9mIHNwZWNpZmllZCBrZXJuZWwgY29tcG9uZW50IGltYWdlIGlzIGNoZWNrZWQgYW5kCiAgICBpdHMgZGF0YSBzZWN0aW9uIGxvY2F0ZWQgYW5kIHVzZWQgZm9yIGZ1cnRoZXIgcHJvY2Vzc2luZwogICAgKHVuY29tcHJlc3MsIGxvYWQsIGV0Yy4pCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBlMzJmZWE2YWRiNjIwZWNmMmJkNzBhY2YyZGQzN2U1M2RmOWQxNTQ3CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIE1hciAxMSAxMjozNToyMCAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBuZXcgdUltYWdlIGZvcm1hdCBzdXBwb3J0IGZvciBpbWxzIGFuZCBpbWluZm8gY29tbWFuZHMKCiAgICBpbWxzIGFuZCBpbWluZm8gY2FuIG5vdyByZWNvZ25pemUgbmFkIHByaW50IG91dCBjb250ZW50cyBvZiB0aGUgbmV3IChGSVQpCiAgICBmb3JtYXQgdUltYWdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDlkMjU0MzhmZTdkNzBjZjM1YThhMjkzZWE1ZTM5MmZlZmM2NzI2MTMKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgTWFyIDExIDEyOjM0OjQ3IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQWRkIHN1cHBvcnQgZm9yIG5ldyB1SW1hZ2UgZm9ybWF0IHRvIG1raW1hZ2UgdG9vbAoKICAgIFN1cHBvcnQgZm9yIHRoZSBuZXcgdUltYWdlIGZvcm1hdCAoRklUKSBpcyBhZGRlZCB0byBta2ltYWdlIHRvb2wuCiAgICBDb21tYW5kbGluZSBzeW50YXggaXMgYXBwcm9wcmlhdGVseSBleHRlbmRlZDoKCiAgICBta2ltYWdlIFstRCBkdGNfb3B0aW9uc10gLWYgZml0LWltYWdlLml0cyBmaXQtaW1hZ2UKCiAgICBta2ltYWdlICh0b2dldGhlciB3aXRoIGR0YykgdGFrZXMgZml0LWltYWdlLml0cyBhbmQgcmVmZXJlbmNlZCB0aGVyZWluCiAgICBiaW5hcmllcyAobGlrZSB2bWxpbnV4LmJpbi5neikgYXMgaW5wdXRzLCBhbmQgcHJvZHVjZXMgZml0LWltYWdlIGZpbGUgLS0gdGhlCiAgICBmaW5hbCBpbWFnZSB0aGF0IGNhbiBiZSB0cmFuc2ZlcnJlZCB0byB0aGUgdGFyZ2V0IChlLmcuLCB2aWEgdGZ0cCkgYW5kIHRoZW4KICAgIGJvb3RlZCB1c2luZyB0aGUgYm9vdG0gY29tbWFuZCBpbiBVLUJvb3QuCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBlYjYxNzVlZGQ2YzEyMGQ4Yjg5Njc4MjQzZTVhMmJlMzYyZWU4ZTQwCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJTW9uIE1hciAxMCAxNzo1Mzo0OSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIE1ha2Ugbm9kZSB1bml0IG5hbWVzIGNvbnN0IGluIHN0cnVjdCBib290bV9oZWFkZXJzCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA1ZGZiNTIxMzg2ODhjY2JmMDE0NmY2MjY4M2ZlNjIxN2IzY2UxYjA1CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEZlYiAyOSAyMToyNDowNiAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIE5ldyB1SW1hZ2UgbG93LWxldmVsIEFQSQoKICAgIEFkZCBGRFQtYmFzZWQgZnVuY3Rpb25zIGZvciBoYW5kbGluZyBuZXcgZm9ybWF0IGNvbXBvbmVudCBpbWFnZXMsCiAgICBjb25maWd1cmF0aW9ucywgbm9kZSBvcGVyYXRpb25zLCBwcm9wZXJ0eSBnZXQvc2V0LCBldGMuCgogICAgZml0XwktIHJvdXRpbmVzIGhhbmRsaW5nIGdsb2JhbCBuZXcgZm9ybWF0IHVJbWFnZSBvcGVyYXRpb25zCgkJICBsaWtlIGdldC9zZXQgdG9wIGxldmVsIHByb3BlcnR5LCBwcm9jZXNzIGFsbCBub2RlcywgZXRjLgogICAgZml0X2ltYWdlXwktIHJvdXRpbmVzIGhhbmRsaW5nIGNvbXBvbmVudCBpbWFnZXMgc3Vibm9kZXMKICAgIGZpdF9jb25mXwktIHJvdXRpbmVzIGhhbmRsaW5nIGNvbmZpZ3VyYXRpb25zIG5vZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAzMGYxODA2ZjYwOTc4ZDcwN2IwY2ZmMmQ3YmY4OWQxNDFmYzI0MjkwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE1hciA5IDE2OjIwOjAyIDIwMDggKzAxMDAKCiAgICBSZWxlYXNlIHYxLjMuMgoKICAgIFVwZGF0ZSBDSEFOR0VMT0cgZm9yIHJlbGVhc2UuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1YjQ2NGMyODliYTcxNWQwOTc5YjZlMWY5NDk0N2JiOGYxMDY4ZDE2CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE1hciA5IDE0OjUyOjExIDIwMDggKzAxMDAKCiAgICBTQ006IGZpeCAncGFja2VkJyBhdHRyaWJ1dGUgaWdub3JlZCBmb3IgZmllbGQgb2YgdHlwZSAnY2FuX21zZ190JyB3YXJuaW5ncwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGRiNjk1Yjc4NTE1ZGRiODhhMmQ0ZjMzNTdjMTIwMzQ1ZWZiZjU5ZWMKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTWFyIDkgMTA6NDQ6MDEgMjAwOCArMDEwMAoKICAgIHNjYjkzMjg6IEZpeCBmbGFzaCB3YXJuaW5nOiB0eXBlIHF1YWxpZmllcnMgaWdub3JlZCBvbiBmdW5jdGlvbiByZXR1cm4gdHlwZQoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgMmIzZTdlNjFkNmE3MmYxNmFlZTkzZjg3MGJjNmFmNjdmMzA3NThjNApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBNYXIgOSAxMDo1MDo0MSAyMDA4ICswMTAwCgogICAgZXNkL2NvbW1vbi9mcGdhLmM6IGZpeCBpbmRlbnRhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGNjMzg0M2UzNjQ1M2UyYjhkYjY1ZDdlNTZkZTkzOGJhMDQ1MDE2YTAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gTWFyIDkgMTA6MzM6MzEgMjAwOCArMDEwMAoKICAgIGNvbW1vbi9rZ2RiLmM6IGZpeCAnZGVyZWZlcmVuY2luZyB0eXBlLXB1bm5lZCBwb2ludGVyJyB3YXJuaW5nCgogICAgYW5kIGdldCByaWQgb2YgYSBjb3VwbGUgb2YgdW5uZWVkZWQgY2FzdHMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4ZDRmNGE4MzhkN2RjN2NmNGRlMTdlM2U5YTY3ZTJmMjIyYjZhMWM4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE1hciA5IDEwOjA5OjUzIDIwMDggKzAxMDAKCiAgICBlc2QvY29tbW9uL2ZwZ2EuYzogZml4ICdhc3NpZ25tZW50IG9mIHJlYWQtb25seSBsb2NhdGlvbicgZXJyb3IKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGM2ZmU0ZGFiYWMwNjZlODc1ODM0NWQyNDkwMzI3Njg0OTY5ODNhM2UKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gTWFyIDkgMDI6MTM6MTkgMjAwOCArMDEwMAoKICAgIE1ha2VmaWxlOiBtYWtlIGJ1aWxkIHNpbGVudGx5IGFnYWluLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNzZiYWJjODY1NzZmMDkyNTczNTk5MzM0Yzg1ZWM1NDNmZGJjNjAxNQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBNYXIgOSAwMjowNzo0OSAyMDA4ICswMTAwCgogICAgbTUwMXNrOiBGaXggb3V0IG9mIHRyZWUgYnVpbGRpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDIxMGVkMjAwNGUwNjJmZGQwM2YyNWFiNDkyNTk5OGFhMWJkMDhhMDcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gTWFyIDkgMDA6MDY6MDkgMjAwOCArMDEwMAoKICAgIEFEUzUxMjE6IGZpeCBvdXQgb2YgdHJlZSBidWlsZAoKICAgIGFuZCBzaW1wbGlmeSBNYWtlZmlsZSBhIGJpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDQ2Y2I1MDc0YTNmNzRkZTY0ZWJkOTdkZDBjNGVjN2ViM2Q3NjhiOTMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDggMjI6MzU6MzEgMjAwOCArMDEwMAoKICAgIFJlbGVhc2UgdjEuMy4yCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3OGE5MGY4MjdkZjc0NTIwZTkzOWM3OTRmYzc0MTNkYWNlMjFjNGRiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE1hciA4IDIyOjM1OjA0IDIwMDggKzAxMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1OGYzYzU3YzYwMDhiNDJlMDFmNTUxZDNiZTZlZmQ4OGMxNGFjODdmCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE1hciA4IDIxOjMwOjA0IDIwMDggKzAxMDAKCiAgICBlc2Q6IEZpeCB3YXJuaW5nOiBwYXNzaW5nIGFyZ3VtZW50IDEgb2YgJ2ZwZ2FfYm9vdCcgZGlzY2FyZHMgcXVhbGlmaWVycyBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGQ3NTQ2OWQ0OGMwNTc5NTE0NGY0YjhiYTc2YWRkYmI0OTIwYTdiYmEKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVNhdCBNYXIgOCAwOToyNTo0OSAyMDA4ICswOTAwCgogICAgbmV0OiBydGw4MTY5OiBBZGQgcHJvY2Vzc2luZyB3aGVuIE9XTmJpdCBkaWQndCBlbmFibGUgaW4gcnRsX3JlY3YoKQoKICAgIFdoZW4gcnRsX3JlY3YoKSBvZiBydGw4MTY5IGlzIGNhbGxlZCwgT1dOYml0IG9mIHN0YXR1cyByZWdpc3RlcgogICAgaXMgbm90IGVuYWJsZSBvY2Nhc2lvbmFsbHkuCiAgICBydGxfcmVjdigpIGRvZXNuJ3Qgd29yayBub3JtYWxseSB3aGVuIHRoZSBkcml2ZXIgZG9lc24ndCBkbwogICAgYXBwcm9wcmlhdGUgcHJvY2Vzc2luZy4KICAgIFRoaXMgcGF0Y2ggZml4IHRoaXMgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgODJhZmFiZmViOGFlNmEyN2M3YjM5NjAxMWVhOTlmNDcxMmFhNzNmYQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglGcmkgTWFyIDcgMDg6MTU6MjggMjAwOCArMDEwMAoKICAgIG1nc3V2ZDogdXBkYXRlIGJvYXJkIGNvbmZpZ3VyYXRpb24KCiAgICBpbml0aWFsaXplIHRoZSBVUElPeCBjb250cm9sbGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGU0OTJjOTBjMjYyMTVlNDU5YWVjMGZkZjBmOGVmMWZkMjA0OTg4ZjUKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJRnJpIE1hciA3IDA4OjEzOjQxIDIwMDggKzAxMDAKCiAgICBtZ2NvZ2U6IHVwZGF0ZSBib2FyZCBjb25maWd1cmF0aW9uCgogICAgYWRkIHN1cHBvcnQgZm9yIHRoZSBjb25maWcgRmxhc2guCiAgICBpbml0aWFsaXplIHRoZSBVUElPeCBjb250cm9sbGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDI3MGZlMjYxYjdmOTI5MjgwMGIyYjNkMWJmMTlhZTdjYmM4ODAyNTgKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWFyIDcgMTI6Mjc6MzEgMjAwOCAtMDYwMAoKICAgIG1wYzgzeHg6IG1ha2UgZHRiIGJhc2VuYW1lIGZpbGUgcmVmZXJlbmNlcyBlcXVhbCB0aG9zZSBvZiBsaW51eAoKICAgIHRoZSBkdHMgZmlsZSBiYXNlbmFtZXMgd2VyZSB1cGRhdGVkIGluIGxpbnV4IC0gdGhpcyBoZWxwcyBhdm9pZAogICAgaW5hZHZlcnRlbnRseSBsb2FkaW5nIGFueSBvbGQgZHRicyBsYXlpbmcgYXJvdW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjMwYjYxNTRmMTZmNWZmYTRhOWY1YmZjYTVlMTE0ZDcyYjZlZjY3NQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMjcgMTY6MDg6MjIgMjAwOCAtMDYwMAoKICAgIG5ldDogdWVjX3BoeTogYWN0dWFsbHkgaW5jcmVtZW50IHRoZSB0aW1lb3V0IGNvdW50ZXIKCiAgICBhbGxvdyB1LWJvb3QgdG8gcmVjb3ZlciAoYW5kLCBlLmcuLCBzd2l0Y2ggdG8gYW5vdGhlciBpbnRlcmZhY2UpIGluIHRoZQogICAgY2FzZSB3aGVyZSBhIFBIWSBkb2VzIG5vdCByZXBvcnQgYXV0b25lZ290aWF0aW9uIGlzIGNvbXBsZXRlIHdpdGhpbiBpdHMKICAgIHR3byBzZWNvbmQgdGltZW91dCB2YWx1ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc3MjAwM2U0Mzk1N2VlMGM4OTVhYmVkN2NkODJjYmU3MjgyMGNiYjgKQXV0aG9yOiBNYXJrdXMgQnJ1bm5lciA8c3VwZXIuZmlyZXR3aXN0ZXJAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CVdlZCBNYXIgNSAyMTozODoxMiAyMDA4ICswMTAwCgogICAgZml4IHRhaWh1IHNvZnQgc3BpX3JlYWQKCiAgICBUaGUgdGFpaHUgYm9hcmQgdXNlZCBncGlvX3JlYWRfb3V0X2JpdCB3aGljaCByZWFkcyB0aGUgb3V0cHV0IHJlZ2lzdGVyIGFuZCBub3QKICAgIHRoZSBwaW4gc3RhdGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEJydW5uZXIgPHN1cGVyLmZpcmV0d2lzdGVyQGdtYWlsLmNvbT4KCmNvbW1pdCBmYzg0YTg0OTVhYzc1MGY2YjRhZGFlODFmOGM0ZjEwMGY2NWI2MzQwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgTWFyIDcgMDg6MDE6NDMgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogU2VxdW9pYTogQWRkIGRldmljZSB0cmVlIChmZHQpIExpbnV4IGJvb3RpbmcgZGVmYXVsdCBlbnYgdmFyaWFibGVzCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGJkNDQ1OGNiNDdhYmVjYWJkNDA2YjEyMTA0NTdiZTk2YzY5ZmM0OWQKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXIgNCAxNjo1OToyMiAyMDA4ICswODAwCgogICAgODM3eEVNRFM6IEltcHJvdmUgdGhlIHN5c3RlbSBwZXJmb3JtYW5jZQoKICAgIDEuIE1ha2UgdGhlIENTQiBidXMgcGlwZWxpbmUgZGVwdGggYXMgNCwgYW5kIGVuYWJsZQogICAgICAgdGhlIHJlcGVhdCBtb2RlOwogICAgMi4gUmFpc2UgdGhlIGVUU0VDIGVtZXJnZW5jeSBwcmlvcml0eTsKICAgIDMuIFVzZSB0aGUgaGlnaGVzdCBJUCBibG9ja3MgY2xvY2suCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkOGFiNThiMjEyNDgxYjFjNTc5NDdlYTIxYWE5NmM0Y2U4MDBkMGI0CkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CVRodSBNYXIgNiAxNjo0NTo1MyAyMDA4ICswMTAwCgogICAgUmVwbGFjZSAicnVuIGxvYWQ7IHJ1biB1cGRhdGUiIHdpdGggY29uZGl0aW9uYWxpemVkICJydW4gbG9hZCB1cGRhdGUiLgoKICAgIFRoZSBsYXR0ZXIgdmVyc2lvbiBzdG9wcyB3aGVuICJydW4gbG9hZCIgZmFpbHMgZm9yIHdoYXRldmVyIHJlYXNvbnMKICAgIHJlbmRlcmluZyB0aGUgY29tYmluYXRpb24gKmEgbG90KiBtb3JlIHNlY3VyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCA2YmMxMTM4ODZkN2QzMTZkZjFhNGU0NTliZWM4YmFmMDI3NTE4NTUxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDQgMTc6NDA6NDEgMjAwOCArMDEwMAoKICAgIG5ldDogUHJpbnQgZXJyb3IgbWVzc2FnZSB1cG9uIG5ldCB1c2FnZSB3aGVuIG5vIGV0aGVybmV0LWludGVyZmFjZSBpcyBmb3VuZAoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBwcm9ibGVtIHNlZW4gb24gUFBDNHh4IGJvYXJkcywgd2hlbiBubyBNQUMgYWRkcmVzcyBpcwogICAgZGVmaW5lZC4gVGhlbiBubyBldGhlcm5ldCBpbnRlcmZhY2UgaXMgYXZhaWxhYmxlIGJ1dCBhIHNpbXBsZSAidGZ0cCIKICAgIGNvbW1hbmQgd2lsbCByZXR1cm4gd2l0aG91dCBhbnkgZXJyb3IgbWVzc2FnZSB3aGljaCBpcyBxdWl0ZSBjb25mdXNpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGEzMGE1NDlhMzU1MzAzMmQ4MDllMDM1NjMwNmI2MmRlMGIxMjU5MDEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWFyIDQgMTA6MDM6MDMgMjAwOCAtMDYwMAoKICAgIFJlbW92ZSBlcnJvbmVvdXMgb3IgZXh0cmEgc3BkLmggI2luY2x1ZGVycy4KCiAgICBNYW55IG9mIHRoZSBzcGQuaCAjaW5jbHVkZXJzIGRvbid0IG5lZWQgaXQsCiAgICBhbmQgd2FudGVkIHRvIGhhdmUgc3BkX3NkcmFtKCkgZGVjbGFyZWQgaW5zdGVhZC4KICAgIFNpbmNlIHRoZXkgZGlkbid0IGdldCB0aGF0LCBzb21lIGFsc28gaGFkIG9wZW4KICAgIGNvZGVkIGV4dGVybiBkZWNsYXJhdGlvbnMgb2YgaXQgaW5zdGVhZCBvciBhcyB3ZWxsLgogICAgRml4IGl0IGFsbCB1cCBieSB1c2luZyBzcGRfc2RyYW0uaCB3aGVyZSBuZWVkZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhNDQ3NTM4NmNlZjE0YWYzZmQ4OGYwNTE4YjY4OGU3NTU2Njk0ODZkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIE1hciA0IDE3OjQxOjI4IDIwMDggKzAxMDAKCiAgICBQQ1M0NDBFUDogZml4IGJ1aWxkIHByb2JsZW1zIChyZWR1bmRhbnQgI2RlZmluZSkKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGU4NWUyZmE4NWVjMDlhNmZhYzI4NDZkMWQ4ODFkODczN2UyYmJkYTkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgNCAxNzozOToyNSAyMDA4ICswMTAwCgogICAgbmV0OiBQcmludCBlcnJvciBtZXNzYWdlIHVwb24gbmV0IHVzYWdlIHdoZW4gbm8gZXRoZXJuZXQtaW50ZXJmYWNlIGlzIGZvdW5kCgogICAgVGhpcyBwYXRjaCBmaXhlcyBhIHByb2JsZW0gc2VlbiBvbiBQUEM0eHggYm9hcmRzLCB3aGVuIG5vIE1BQyBhZGRyZXNzIGlzCiAgICBkZWZpbmVkLiBUaGVuIG5vIGV0aGVybmV0IGludGVyZmFjZSBpcyBhdmFpbGFibGUgYnV0IGEgc2ltcGxlICJ0ZnRwIgogICAgY29tbWFuZCB3aWxsIHJldHVybiB3aXRob3V0IGFueSBlcnJvciBtZXNzYWdlIHdoaWNoIGlzIHF1aXRlIGNvbmZ1c2luZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzg0ZmFhYWZiOTk5Y2FlM2NlNDQ3YzkzZTI4YTBiN2UyZTVmZWY1MwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgNCAxNzozODo1MCAyMDA4ICswMTAwCgogICAgVzdPTE1DL1c3T0xNRzogZml4IGJ1aWxkIHByb2JsZW1zIChyZWR1bmRhbnQgI2RlZmluZSkKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGY5MzAxZTFjZGEyOTYyNDViYTA1MmQ3YjA4MzIxMTk5YzNkMGFmOWQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgTWFyIDQgMTQ6NTg6MzEgMjAwOCArMDEwMAoKICAgIE1ha2VmaWxlOiBmaXggcHJvYmxlbSB3aXRoIG91dC1vZi10cmVlIGJ1aWxkcyBpbnRyb2R1Y2VkIGJ5IDUwMTNjMDlmCgogICAgQ29tbWl0IDUwMTNjMDlmIChNYWtlZmlsZTogY2xlYW51cCAiY2xlYW4iIHRhcmdldCkgaW50cm9kdWNlZCBhCiAgICBwcm9ibGVtIGZvciBvdXQtb2YtdHJlZSBidWlsZHMgd2hpY2ggY2F1c2VkICJtYWtlIGNsZWFuIiB0byBmYWlsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZGZlY2U5NTAwNTU2YmVkNWQ4MjQ0YjFjMTVkOTczY2VjN2MyNWJmZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgNCAxMTo1ODoyNiAyMDA4ICswMTAwCgogICAgZXhhbXBsZXMvTWFrZWZpbGU6IGJ1aWxkICJoZWxsb193b3JsZCIgb24gOHh4LCB0b28uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3NGViMDIyMjU5NGZkMjNhYWZkZjE2OGU2MGU4NzI4MTRlZWE4YjYyCkF1dGhvcjogTWlrZSBOdXNzIDxtaWtlQHRlcmFzY2FsYS5jb20+CkRhdGU6CU1vbiBNYXIgMyAxNToyNzowNSAyMDA4IC0wNTAwCgogICAgUFBDNHh4IChTZXF1b2lhKTogRml4IEV0aGVybmV0ICJyZW1vdGUgZmF1bHQiIHByb2JsZW1zCgogICAgRXZlcnkgbm93IGFuZCB0aGVuIGEgU2VxdW9pYSBib2FyZCAob3IgZXF1aXZhbGVudCBoYXJkd2FyZSkgaGFkCiAgICBwcm9ibGVtcyBjb25uZWN0aW5nIHRvIGEgR2lnYWJpdCBjYXBhYmxlIG5ldHdvcmsgaW50ZXJmYWNlLgoKICAgIFRoZXJlIHdlcmUgZGlmZmVyZW5jZXMgaW4gdGhlIFBIWSBzZXR1cCBiZXR3ZWVuIExpbnV4IGFuZCBVLUJvb3QuCgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgcHJvYmxlbS4gQXBwYXJlbnRseSAicmVtb3RlIGZhdWx0IiBpcyBiZWluZyBzZXQsCiAgICB3aGljaCBzaWduYWxzIHRvIHNvbWUgZGV2aWNlcyAob24gdGhlIG90aGVyIGVuZCBvZiB0aGUgY2FibGUpIHRoYXQgYQogICAgZmF1bHQgaGFzIG9jY3VycmVkLCB3aGlsZSBvdGhlciBkZXZpY2VzIGlnbm9yZSBpdC4gSSBiZWxpZXZlIHRoZSBSRiBiaXQKICAgIHdhcyBjYXVzaW5nIHRoZSBpc3N1ZSwgYnV0IEkgcmVtb3ZlZCBUNCBhbHNvLCB0byBtYXRjaCB1cCB3aXRoIExpbnV4LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgTnVzcyA8bWlrZUB0ZXJhc2NhbGEuY29tPgoKY29tbWl0IDQ5MWZiNmRlYTlmNTJmZGI5Y2I1OTk2ZThlOTc4YjllOTY4NTE3OWYKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gTWFyIDMgMDk6NTg6NTIgMjAwOCAtMDYwMAoKICAgIGZpeCBRRSBmaXJtd2FyZSB1cGxvYWRpbmcgbGltaXQKCiAgICBGaXggYSB0eXBvIGluIHFlX3VwbG9hZF9maXJtd2FyZSgpIHRoYXQgcHJldmVudGVkIHVwbG9hZGluZyBmaXJtd2FyZSBvbgogICAgc3lzdGVtcyB3aXRoIG1vcmUgdGhhbiBvbmUgUklTQyBjb3JlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDJiYTU4ZTBjMzAyYjMzOWEzYzJmYWE2MDA2YTAxM2M2ZjE4NmI3YQpBdXRob3I6IEJlcm5oYXJkIE5lbWVjIDxibmVtZWNAZ2Fuc3Nsb3Nlci5jb20+CkRhdGU6CU1vbiBNYXIgMyAxMTo1NzoyMyAyMDA4ICswMDAwCgogICAgRml4IGVuZGlhbmVzcyBwcm9ibGVtIGluIGNyYW1mcyBjb2RlIChjcmFtZnMgaXMgYWx3YXlzIGhvc3QtZW5kaWFuIGluIExpbnV4KQoKICAgIE9yaWdpbmFsbHkgcG9pbnRlZCBvdXQgYnkgTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFydEB0Ym94LmJpej4sCiAgICBzZWUgaHR0cDovL3RocmVhZC5nbWFuZS5vcmcvZ21hbmUuY29tcC5ib290LWxvYWRlcnMudS1ib290LzIyODQ2CgogICAgU2lnbmVkLW9mZi1ieTogQmVybmhhcmQgTmVtZWMgPGJuZW1lYyA8YXQ+IGdhbnNzbG9zZXIuY29tPgoKY29tbWl0IDg0ZDBjMmYxZTM5Y2FmZjU4YmY3NjVhN2FiN2M3MmRhMjNjMjVlYzgKQXV0aG9yOiBLaW0gQi4gSGVpbm8gPEtpbS5IZWlub0BibHVlZ2lnYS5jb20+CkRhdGU6CU1vbiBNYXIgMyAxMDozOToxMyAyMDA4ICswMjAwCgogICAgZml4IGNvcHkgZnJvbSByYW0gdG8gZGF0YWZsYXNoCgogICAgSWYgSSB0cnkgdG8gImNwLmIgPHJhbT4gPGRhdGFmbGFzaD4iLCB1LWJvb3Qgc2VsZWN0cyBub3JtYWwgZmxhc2gKICAgIHJvdXRpbmVzIGluc3RlYWQgb2YgZGF0YWZsYXNoLiBUaGlzIGlzIGJlY2F1c2UgaXQgY2hlY2tzICJpZiBzb3VyY2UKICAgIGFkZHJlc3MgaXMgbm90IGRhdGFmbGFzaCIgaW5zdGVhZCBvZiB0YXJnZXQgYWRkcmVzcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gQi4gSGVpbm8gPEtpbS5IZWlub0BibHVlZ2lnYS5jb20+Cgpjb21taXQgMzJiZjNkMTQzYTg4OGY4ZGVhY2ZkY2M5N2U4OThmNmMwNmQwYWVhNApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBNYXIgMyAxMjoxNjo0NCAyMDA4ICswMTAwCgogICAgRml4IHF1b3RpbmcgcHJvYmxlbSAocHJlYm9vdCBzZXR0aW5nKSBpbiBtYW55IGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDViMGIyYjZmYzlmZTIyZTM4NjRjMmE1NzMxNmQ5MWEyNTA3ZWMyMTUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gTWFyIDMgMTI6MzY6NDkgMjAwOCArMDEwMAoKICAgIEFEUzUxMjE6IEZpeCBkZWZhdWx0IGVudmlyb25tZW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgOTFjODIwNzZhZTQ5MmJiMWY5ZDljNDdhNDgxMzE0NjMxZDMyZGM4ZQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBNYXIgMiAxNjoxMjozMSAyMDA4ICswMTAwCgogICAgTWFrZWZpbGU6IEZpeCBtaXNzaW5nIHVuY29uZmlnIGFuZCBta2NvbmZpZyB1c2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDhjZTRlNWMyYzAyY2I3ZThhZGRkZjdiNjUxZDMwNTBkODFjZTRjMWQKQXV0aG9yOiBtaWNoYWVsIDx0cmltYXJjaGlAZ2FuZGFsZi5zc3N1cC5pdD4KRGF0ZToJU3VuIE1hciAyIDIzOjMzOjQ2IDIwMDggKzAxMDAKCiAgICBGaXggY2hlY2tpbmcgZmF0MzIgY2x1c3RlciBzaXplLgoKICAgIFRoaXMgZml4ZXMgdGhlIGNsdXN0ZXIgc2l6ZSB0ZXN0cyBpbiB0aGUgRkFUMzIgZmlsZSBzeXN0ZW0uCiAgICBUaGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBvZiBWRkFUIHN1cHBvcnQgZG9lc24ndCB3b3JrIGlmIHRoZQogICAgcmVmZXJyZWQgY2x1c3RlciBoYXMgYW4gb2Zmc2V0ID4gMTZiaXQgcmVwcmVzZW50YXRpb24sIGNhdXNpbmcKICAgICJmYXRsb2FkIiBhbmQgImZhdGxzIiBjb21tYW5kcyBldGMuIHRvIGZhaWwuCgogICAgU2lnbmVkLW9mZi1ieTogbWljaGFlbCB0cmltYXJjaGkgPHRyaW1hcmNoaUBnYW5kYWxmLnNzc3VwLml0PgoKY29tbWl0IDY2MWJhZDYzYTA3NmE5NmMzOWM2NGYxMzY5MTVmMTQ2NzI1YWY5MmIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gTWFyIDIgMjI6NTc6MjMgMjAwOCArMDEwMAoKICAgIFByZXBhcmUgdjEuMy4yLXJjMiByZWxlYXNlIGNhbmRpZGF0ZQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNzY5NTdjYjNkNjIxYmY2NjQzMTE5MDhlNTk2MmUxNTFjNjMzYzI4NQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE1hciAxIDEyOjExOjQwIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEVNQUM6IEZpeCA0MDVFWiBmaWZvIHNpemUgc2V0dXAgaW4gRU1BQ19NUjEKCiAgICBUaGUgNDA1RVogb25seSBzdXBwb3J0cyA1MTIgYnl0ZXMgb2YgcngtL3R4LWZpZm8gRU1BQyBzaXplcy4gQnV0CiAgICBjdXJyZW50bHkgNGsvMmsgaXMgY29uZmlndXJlZC4gVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGlzc3VlLgoKICAgIFRoYW5rcyB0byBUaG9tYXMgS2luZGxlciA8dGtpbmRsZXJAbGVub3JkLmRlPiBmb3IgcG9pbnRpbmcgdGhpcyBvdXQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDExODk3OGM4ZWI0MzgwM2UyNzk0MjMzOTIyZGY0MjQ5ZmEyNzhiODMKQXV0aG9yOiBXb29kcnVmZiwgUmljaGFyZCA8ci13b29kcnVmZjJAdGkuY29tPgpEYXRlOglGcmkgRmViIDI5IDE3OjM0OjM1IDIwMDggLTA2MDAKCiAgICBGaXggYWxpZ25tZW50IGVycm9yIG9uIEFSTSBmb3IgbW9kdWxlcwoKICAgIEZpeCBhbGlnbm1lbnQgZmF1bHQgb24gQVJNIHdoZW4gcnVubmluZyBtb2R1bGVzLiAgV2l0aCBvdXQgYW4gZXhwbGljaXQKICAgIGxpbmtlciBmaWxlIGdjYzQuMi4xIHdpbGwgaGFsZiB3b3JkIGFsaWduIF9fYnNzX3N0YXJ0J3MgdmFsdWUuICBUaGUgd29yZAogICAgZGVyZWZlcmVuY2Ugd2lsbCBjcmFzaCBoZWxsb193b3JsZC4KCiAgICBzaWduZWQtb2ZmLWJ5IFJpY2hhcmQgV29vZHJ1ZmYgPHItd29vZHJ1ZmYyQHRpLmNvbT4KCmNvbW1pdCBjZTExMjBkZDcwM2U2ZjEyYzU5ZTRlYmE5OTYyMzU2YTAzMDBiODMyCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgRmViIDI5IDE3OjQ1OjMxIDIwMDggKzA4MDAKCiAgICBmczogRml4IGV4dDIgcmVhZCBpc3N1ZQoKICAgIFRoZSBleHQyIGFsaWduZWQgcHJvY2VzcyB3aWxsIGNvcnJ1cHQgdGhlIGtleQogICAgZGF0YSBzdHJ1Y3QsIHRoZSBwYXRjaCBmaXggdGhpcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDUwMTNjMDlmN2E1Njc1OTUyYTNjYTg4YjZiYzZjOTI0ZTYzYWYzM2UKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gTWFyIDIgMjI6NDU6MzMgMjAwOCArMDEwMAoKICAgIE1ha2VmaWxlOiBjbGVhbnVwICJjbGVhbiIgdGFyZ2V0CgogICAgTWFrZSBzdXJlIENEUEFUSCBzZXR0aW5ncyBjYW5ub3QgaW50ZXJmZXJlLgogICAgVXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGZmZGE1ODZmYzEzNzMyNDNjOTc5NGJhYmRlNjk1MDBmNjI5M2E4ZDgKQXV0aG9yOiBMaSBZYW5nIDxsZW9saUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgRmViIDI5IDExOjQ2OjA1IDIwMDggKzA4MDAKCiAgICBhZGQgY3Njb3BlIGJ1aWxkIHRhcmdldAoKICAgIEFkZCBjc2NvcGUgYnVpbGQgdGFyZ2V0IHRvIGdlbmVyYXRlIGNzY29wZSBkYXRhYmFzZSBmb3IgY29kZSBicm93c2luZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMaSBZYW5nIDxsZW9saUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY2NTVhZGVmNjVlNGNmNmI5MjkwNTRiMDQ5ZWUxOWFlOWI1Y2NiZTIKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDI3IDE1OjA2OjM5IDIwMDggLTA2MDAKCiAgICBuZXQ6IHVlY19waHk6IGhhbmRsZSA4OGUxMTExIHJldi5CMiBlcnJhdHVtIDUuNgoKICAgIGVycmF0dW0gNS42IHN0YXRlcyB0aGUgYXV0b25lZyBjb21wbGV0aW9uIGJpdCBpcyBmdW5jdGlvbmFsIG9ubHkgaWYgdGhlCiAgICBhdXRvbmVnIGJpdCBpcyBhc3NlcnRlZC4KCiAgICBUaGlzIGZpeGVzIGFueSBzZWNvbmRhcmlseS1pc3N1ZWQgbmV0d29ya2luZyBjb21tYW5kcyBvbiBub24tZ2lnYWJpdAogICAgbGlua3Mgb24gdGhlIG1wYzgzNjAgbWRzIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWY5MWRiN2Y1ODJjYTE3YjFmMTlmMTAxODljMDI1Njk2ZjMzM2QyZQpBdXRob3I6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgRmViIDI2IDA5OjM4OjE0IDIwMDggLTA3MDAKCiAgICBNUEM1MTIxZSBBRFMgUENJIHN1cHBvcnQgdGFrZSAzCgogICAgQWRkcyBQQ0kgc3VwcG9ydCBmb3IgTVBDNTEyMQoKICAgIFRlc3RlZCB3aXRoIGRyaXZlcnMvbmV0L3J0bDgxMzkuYwoKICAgIFN1cHBvcnQgaXMgY29uZGl0aW9uYWwgc2luY2UgUENJIG9uIG9sZCBzaWxpY29uIGRvZXMgbm90IHdvcmsuCgogICAgYWRzNTEyMV9QQ0lfY29uZmlnIHR1cm5zIG9uIFBDSQoKICAgIEluIHRoaXMgdmVyc2lvbiwgY29uZGl0aW9uIGNvbXBpbGF0aW9uIG9mIFBDSSBjb2RlIGhhcyBiZWVuIG1vdmVkCiAgICBmcm9tIGlmZGVmIGluIGJvYXJkL2FkczUxMjEvcGNpLmMgdG8gYm9hcmQvYWRzNTEyMS9NYWtlZmlsZSBhcwogICAgc3VnZ2VzdGVkIGJ5IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJECgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDRiNGRiZWQ0MTMzZjY1NzcwNWI3YzUxOTMyMDlkYTk5NzgyNDNhNwpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJTW9uIEZlYiAyNSAyMzo1MzowNyAyMDA4ICswMTAwCgogICAgRml4IHdhcm5pbmdzIHdoaWxlIGNvbXBpbGF0aW9uIG9mIHBvc3QvZHJpdmVycy9tZW1vcnkuYwoKICAgIEZpeCB3YXJuaW5ncyB3aGlsZSBjb21waWxhdGlvbiB3aXRoIG5ldyBnY2MgaW4gZWxkay00LjIKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgNGZhZTM1YTUzYjNlOTU4MjU0ZDY1NzRhMWNjN2UxMDgxMWZjNjcyNgpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJTW9uIEZlYiAyNSAyMDo1NDowNCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBGaXggcHJvYmxlbSBpbiA0eHhfZW5ldC5jIGRyaXZlcgoKICAgIFUtQm9vdCBjcmFzaGVzIGluIHRoZSBuZXQgbG9vcCBpZiBDT05GSUdfNHh4X0RDQUNIRSBpcwogICAgZW5hYmxlZC4gVG8gcmVwcm9kdWNlIHRoZSBwcm9ibGVtIGVuc3VyZSB0aGF0ICdldGhyb3RhdGUnCiAgICBlbnZpcm9ubWVudCB2YXJpYWJsZSBpc24ndCBzZXQgdG8gIm5vIiBhbmQgdGhlbiBydW4KICAgICJ0ZnRwIDIwMDAwMCBub3RfZXhpc3RlbnRfZmlsZSIuCiAgICBUaGlzIHBhdGNoIHRyaWVzIHRvIGZpeCB0aGUgaXNzdWUuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IDYwZWM2NTRjNWViODBkMGZlMGMzOGEzYmQ0MjE0MDIxNWJjMDY0ODQKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CU1vbiBGZWIgMjUgMjA6MDQ6MjAgMjAwOCArMDEwMAoKICAgIFBPU1Q6IERpc2FibGUgY2FjaGUgd2hpbGUgU1BSIFBPU1QKCiAgICBDdXJyZW50bHkgKHNpbmNlIGNvbW1pdCBiMmUyMTQyYykgdS1ib290IGNyYXNoZXMgb24KICAgIHNlcXVvaWEgYm9hcmQgd2hpbGUgU1BSIHRlc3QgaWYgQ09ORklHXzR4eF9EQ0FDSEUgaXMKICAgIGVuYWJsZWQuIFRoaXMgcGF0Y2ggZGlzYWJsZXMgdGhlIGNhY2hlIHdoaWxlIFNQUiB0ZXN0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCBjMzEzYjJjNmM1NTVlN2Q4OWVjNTliZDUxYzU5YWIxNjRhZDAxMDVkCkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CU1vbiBGZWIgMjUgMTc6NTI6NDAgMjAwOCArMDEwMAoKICAgIFRRTTUyMDA6IHVzZSBhdXRvbWF0aWMgZmR0IG1lbW9yeSBmaXh1cCAocGFydCAyKQoKICAgIENhbGwgZmR0X2ZpeHVwX21lbW9yeSgpIG9uIHRoZSBib2FyZHMgVFFNNTIwMCwgVFFNNTIwMF9CLCBUUU01MjAwUywKICAgIFRCNTIwMCBhbmQgVEI1MjAwX0IgdG8gZml4dXAgdGhlIC9tZW1vcnkgbm9kZSB3aXRoIHRoZSBtZW1vcnkgdmFsdWVzCiAgICBkZXRlY3RlZCBieSBVLUJvb3QuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgNDRjZWVjMjUzZWE5NDFiMzAxYWJmNGIwNzlkNTIzMjRkZWY2OWQ5MgpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglNb24gRmViIDI1IDE1OjE3OjA1IDIwMDggKzAxMDAKCiAgICBUUU01MjAwOiB1c2UgYXV0b21hdGljIGZkdCBtZW1vcnkgZml4dXAKCiAgICBDYWxsIGZkdF9maXh1cF9tZW1vcnkoKSBvbiB0aGUgYm9hcmRzIFRRTTUyMDAsIFRRTTUyMDBfQiwgVFFNNTIwMFMsCiAgICBUQjUyMDAgYW5kIFRCNTIwMF9CIHRvIGZpeHVwIHRoZSAvbWVtb3J5IG5vZGUgd2l0aCB0aGUgbWVtb3J5IHZhbHVlcwogICAgZGV0ZWN0ZWQgYnkgVS1Cb290LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IGYzYTMyOWFjYjI2MDE3ZDhlMTBlOWM5M2UxZTcyNmMyYTVhYzYzNGEKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJTW9uIEZlYiAyNSAxMzoyNzo1MiAyMDA4ICswMTAwCgogICAgVFFNNTIwMDogZml4IGJ1ZyBpbiBTRFJBTSBpbml0aWFsaXphdGlvbiBjb2RlCgogICAgVGhpcyBwYXRjaCBmaXhlcyBhIGJ1ZyBpbiB0aGUgU0RSQU0gaW5pdGlhbGl6YXRpb24gY29kZSBmb3IgdGhlCiAgICBUUU01MjAwLiBUaGUgaGlfYWRkciBiaXQgaXMgbm93IHNldCBjb3JyZWN0bHkuIFdpdGhvdXQgdGhpcyBwYXRjaAogICAgdGhlIGhpX2FkZHIgYml0IGlzIGFsd2F5cyBzZXQgdG8gMSwgaWYgdGhlIHNlY29uZCBTRFJBTSBiYW5rIGlzCiAgICBub3QgcG9wdWxhdGVkLgoKICAgIEZvciBvdGhlciBNUEM1MjAwIGJvYXJkcyBhIGNvcnJlc3BvbmRpZyBwYXRjaCBoYXMgYWxyZWFkeSBiZWVuIGFwcGxpZWQKICAgIHNvbWUgdGltZSBhZ28sIHNlZSBjb21taXQgYTYzMTA5MjgxYWQ0MWIwZmI0ODlmZGNiOTAxMTcxZjc2YmNkYmMyYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KICAgIC0tCiAgICBGb3JnZXQgdGhlIGZpcnN0IHBhdGNoIHBsZWFzZS4gSSBjb25mdXNlZCBmbGFzaCB3aXRoIFNEUkFNIGluCiAgICB0aGUgY29tbWVudCAuLi4KCmNvbW1pdCAyMTdiZjZiNmEzMTNkOWNjYjYxOWE0ZGJjMDlmNzNmNzdjZDQ4ZGYxCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJTW9uIEZlYiAyNSAwMDowMzoxMiAyMDA4ICswMTAwCgogICAgbXgxZnMyL2ZsYXNoOiBGaXggbXVsdGlwbGUgY29tcGlsZXIgd2FybmluZ3MKCiAgICAicG9pbnRlciB0YXJnZXRzIGluIGFzc2lnbm1lbnQgZGlmZmVyIGluIHNpZ25lZG5lc3MiCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA1NTk5YzI4Y2VmNTViZTQyYThjYTZmYTgwODZiMWE0NGU1NmE4NWQyCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJTW9uIEZlYiAyNSAwMDowMzoxMSAyMDA4ICswMTAwCgogICAgYXJtLWlteDogRml4IHJlZ2lzdGVyIGRlZmluaXRpb25zCgogICAgU3luYyByZWdpc3RlciBkZWZpbml0aW9ucyB3aXRoIGxpbnV4CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBjOWJjZjc1ZmVjYzU4ODg2YWY3N2QyYTU3MWNmZjJlYWIzOWVhYjZmCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJTW9uIEZlYiAyNSAwMDowMzoxMCAyMDA4ICswMTAwCgogICAgYWN0dWExL2FjdHVhMi9hY3R1YTM6IEZpeCBtdWx0aXBsZSB1bnVzZWQgdmFyaWFibGUgd2FybmluZ3MKCiAgICAtIGFjdHVhMToKCWFjdHV4MS5jOiBJbiBmdW5jdGlvbiAnY2hlY2tib2FyZCc6CglhY3R1eDEuYzo5Mjogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdyZXZpc2lvbicKCiAgICAtIGFjdHVhMjoKCWFjdHV4Mi5jOiBJbiBmdW5jdGlvbiAnY2hlY2tib2FyZCc6CglhY3R1eDIuYzoxMDA6IHdhcm5pbmc6IHVudXNlZCB2YXJpYWJsZSAncycKCWFjdHV4Mi5jOjk5OiB3YXJuaW5nOiB1bnVzZWQgdmFyaWFibGUgJ3JldmlzaW9uJwoJYWN0dXgyLmM6IEluIGZ1bmN0aW9uICdyZXNldF9waHknOgoJYWN0dXgyLmM6MTMwOiB3YXJuaW5nOiB1bnVzZWQgdmFyaWFibGUgJ2knCgogICAgLSBhY3R1YTM6CglhY3R1eDMuYzogSW4gZnVuY3Rpb24gJ2NoZWNrYm9hcmQnOgoJYWN0dXgzLmM6MTE0OiB3YXJuaW5nOiB1bnVzZWQgdmFyaWFibGUgJ3JldmlzaW9uJwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZjhmYTYzNjhhNmEwYzAyMTY0ZGE4ZTJmNTJmMThkNDU3YzY5NzdiZApBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVN1biBGZWIgMjQgMTE6NDQ6MjkgMjAwOCArMDkwMAoKICAgIFJlbW92ZSB0aGUgX19TVFJJQ1RfQU5TSV9fIGNoZWNrIGZyb20gdGhlIF9fdTY0L19fczY0IGRlY2xhcmF0aW9uIG9uIDMyYml0IHRhcmdldHMuCgogICAgVGhlIHByZXZpb3VzIHBhdGNoIHdhcyBsYWNraW5nIG9mIGkzODYsIG1pY3JvYmxhemUsIG5pb3MgYW5kIG5pb3MyLiBUaGlzCiAgICBwYXRjaCB0cmllcyB0byBmaXggdGhlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDA1ZTA3YjFlYTIyODQ0ZTk0NmNmY2Y3ZDVlOGEwMTk5ZDE4ZDJhOTUKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgRmViIDI5IDIyOjIyOjQ2IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gRml4IEZEVCBibG9iIHRvdGFsc2l6ZSBjYWxjdWxhdGlvbiBpbiBib290X3JlbG9jYXRlX2ZkdCgpCgogICAgRG8gbm90IHVzZSBnbG9iYWwgZmR0IGJsb2IgcG9pbnRlciwgY2FsY3VsYXRlIGJsb2Igc2l6ZSBmcm9tIHJvdXRpbmUKICAgIGFyZ3VtZW50IGJsb2IgcG9pbnRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGQxY2M1Mjg3OWM4OTY2NTA3ZGFkOWZiNTc1NDgxZTZkMzk4NWU2NGUKQXV0aG9yOiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KRGF0ZToJVHVlIEZlYiAxMiAwMDo1ODozMSAyMDA4ICsxMTAwCgogICAgbGliZmR0OiBBZGQgYW5kIHVzZSBhIG5vZGUgaXRlcmF0aW9uIGhlbHBlciBmdW5jdGlvbi4KCiAgICBUaGlzIHBhdGNoIGFkZHMgYW4gZmR0X25leHRfbm9kZSgpIGZ1bmN0aW9uIHdoaWNoIGNhbiBiZSB1c2VkIHRvCiAgICBpdGVyYXRlIHRocm91Z2ggbm9kZXMgb2YgdGhlIHRyZWUgd2hpbGUga2VlcGluZyB0cmFjayBvZiBkZXB0aC4gIFRoaXMKICAgIGZ1bmN0aW9uIGlzIHVzZWQgdG8gc2ltcGxpZnkgdGhlIGl0ZXJhdGlvbiBjb2RlIGluIGEgbG90IG9mIG90aGVyCiAgICBmdW5jdGlvbnMsIGFuZCBpcyBhbHNvIGV4cG9ydGVkIGZvciB1c2UgYnkgbGlicmFyeSB1c2Vycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KCmNvbW1pdCA4Y2YzMDgwOWE4MjkwMmE0NzE4NjZkMmYwNzcyNWNlM2I4YTIyMjkxCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEZlYiAyOSAxNjowMDoyNCAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBsaWJmZHQgc3VwcG9ydCB0byBta2ltYWdlCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBhNmU1MzBmMDBkMzFhODQ5NGEwNDIyNzk5YjJiOWE2OTJhOWMwZWI5CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEZlYiAyOSAxNjowMDoyMyAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBzaGExLm8gb2JqZWN0IHRvIG1raW1hZ2UgYmluYXJ5IGJ1aWxkCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBkZjZmMWI4OTVjOTk3OTc4ZjAzYWZlMDQ1MDJlZTc2YjdiYTM0YWI5CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEZlYiAyOSAxNjowMDowNiAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEZpeCBjb21wb25lbnQgaGFuZGxpbmcgZm9yIGxlZ2FjeSBtdWx0aSBjb21wb25lbnQgaW1hZ2VzCgogICAgVXNlIHVpbnQzMl90IHdoZW4gYWNjZXNzaW5nIHNpemUgdGFibGUgaW4gaW1hZ2VfbXVsdGlfY291bnQoKSBhbmQKICAgIGltYWdlX211bHRpX2dldGltZygpIGZvciBtdWx0aSBjb21wb25lbnQgaW1hZ2VzLgoKICAgIEFkZCBtaXNzaW5nIHVpbWFnZV90b19jcHUoKSBlbmRpYW5uZXNzIGNvbnZlcnNpb24uCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA1NzBhYmIwYWQxMjBmNjAwMmJjYWEzY2Y2ZjMyYmQ0Y2EyZTFiMjQ4CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEZlYiAyOSAxNTo1OTo1OSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIFNoYXJlIGNvbW1vbiB1SW1hZ2UgY29kZSBiZXR3ZWVuIG1raW1hZ2UgYW5kIFUtYm9vdAoKICAgIFRoaXMgcGF0Y2ggYWRkcyB0aGUgZm9sbG93aW5nIGNvbW1vbiByb3V0aW5lczoKCiAgICAxKSBEZWRpY2F0ZWQgbWtpbWFnZSBwcmludF9oZWFkZXIoKSBpcyByZXBsYWNlZCB3aXRoIGNvbW1vbgogICAgaW1hZ2VfcHJpbnRfY29udGVudHMoKQogICAgaW1hZ2VfcHJpbnRfY29udGVudHNfbm9pbmRlbnQoKQoKICAgIDIpIENvbW1vbiBvcy9hcmNoL3R5cGUvY29tcCBmaWVsZHMgbmFtZSA8LS0+IGlkIHRyYW5zbGF0aW9uIHJvdXRpbmVzCiAgICBnZW5pbWdfZ2V0X29zX25hbWUoKQogICAgZ2VuaW1nX2dldF9hcmNoX25hbWUoKQogICAgZ2VuaW1nX2dldF90eXBlX25hbWUoKQogICAgZ2VuaW1nX2dldF9jb21wX25hbWUoKQogICAgZ2VuaW1nX2dldF9vc19pZCgpCiAgICBnZW5pbWdfZ2V0X2FyY2hfaWQoKQogICAgZ2VuaW1nX2dldF90eXBlX2lkKCkKICAgIGdlbmltZ19nZXRfY29tcF9pZCgpCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA5YTRkYWFkMGEzNWViNTE0MzAzN2VlYTlmNzg2YTNlOWQ2NzJiZGQ2CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEZlYiAyOSAxNDo1ODozNCAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIFVwZGF0ZSBuYW1pbmcgY29udmVudGlvbiBmb3IgYm9vdG0vdUltYWdlIHJlbGF0ZWQgY29kZQoKICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyB0aGUgZm9sbG93aW5nIHByZWZpeCBjb252ZW50aW9uIGZvciB0aGUKICAgIGltYWdlIGZvcm1hdCBoYW5kbGluZyBhbmQgYm9vdG0gcmVsYXRlZCBjb2RlOgoKICAgIGdlbmltZ18JCS0gZHVhbCBmb3JtYXQgc2hhcmVkIGNvZGUKICAgIGltYWdlXwkJLSBsZWdhY3kgdUltYWdlIGZvcm1hdCBzcGVjaWZpYyBjb2RlCiAgICBmaXRfCQktIG5ldyB1SW1hZ2UgZm9ybWF0IHNwZWNpZmljIGNvZGUKICAgIGJvb3RfCQktIGJvb3RpbmcgcHJvY2VzcyByZWxhdGVkIGNvZGUKCiAgICBSZWxhdGVkIHJvdXRpbmVzIGFyZSByZW5hbWVkIGFuZCBhIGZldyBwaWVjZXMgb2YgY29kZSBhcmUgbW92ZWQgYXJvdW5kIGFuZAogICAgcmUtZ3JvdXBlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDc1ZmEwMDJjNDcxNzFiNzNmYjRjMWYyYzJmZTRkNjM5MWMxMzYyNzYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgRmViIDI3IDIxOjUxOjUxIDIwMDggLTA2MDAKCiAgICBbbmV3IHVJbWFnZV0gUmVzcGVjdCBhdXRvc3RhcnQgc2V0dGluZyBpbiBsaW51eCBib290bQoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBBY2tlZC1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBkM2YyZmEwZDI3ODQ2N2IyMjMyZTRlYjIzNzJmOTA1YzNmZWJmYmViCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEZlYiAyNyAyMTo1MTo1MCAyMDA4IC0wNjAwCgogICAgW25ldyB1SW1hZ2VdIFByb3ZpZGUgYWJpbGl0eSB0byByZXN0cmljdCByZWdpb24gdXNlZCBmb3IgYm9vdCBpbWFnZXMKCiAgICBBbGxvdyB0aGUgdXNlciB0byBzZXQgJ2Jvb3RtX2xvdycgYW5kICdib290bV9zaXplJyBlbnYgdmFycyBhcyBhIHdheQogICAgdG8gcmVzdHJpY3Qgd2hhdCBtZW1vcnkgcmFuZ2UgaXMgdXNlZCBmb3IgYm9vdG0uCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGU4MjJkN2ZjNGRkNDc1NWQ0ZDBhMjJmMDVlMzNmMzNkMWEwNDgxZGEKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgRmViIDI3IDIxOjUxOjQ5IDIwMDggLTA2MDAKCiAgICBbbmV3IHVJbWFnZV0gVXNlIGxtYiBmb3IgYm9vdG0gYWxsb2NhdGlvbnMKCiAgICBDb252ZXJ0IGdlbmVyaWMgcmFtZGlza19oaWdoKCksIGdldF9ib290X2NtZGxpbmUoKSwgZ2V0X2Jvb3Rfa2JkKCkKICAgIGZ1bmN0aW9ucyBvdmVyIHRvIHVzaW5nIGxtYiBmb3IgYWxsb2NhdGlvbiBvZiB0aGUgcmFtZGlzaywgY29tbWFuZCBsaW5lCiAgICBhbmQga2VybmVsIGJkIGluZm8uCgogICAgQ29udmVydCBQUEMgc3BlY2lmaWMgZmR0X3JlbG9jYXRlKCkgdG8gdXNlIGxtYiBmb3IgYWxsb2NhdGlvbiBvZiB0aGUgZGV2aWNlCiAgICB0cmVlLgoKICAgIFByb3ZpZGVkIGEgd2VhayBmdW5jdGlvbiB0aGF0IGJvYXJkIGNvZGUgY2FuIGNhbGwgdG8gZG8gYWRkaXRpb25hbAogICAgbG1iIHJlc2VydmVzIGlmIG5lZWRlZC4KCiAgICBBbHNvIGludHJvZHVjZSB0aGUgY29uY2VwdCBvZiBib290bWFwX2Jhc2UgdG8gc3BlY2lmeSB0aGUgb2Zmc2V0IGluCiAgICBwaHlzaWNhbCBtZW1vcnkgdGhhdCB0aGUgYm9vdG1hcCBpcyBsb2NhdGVkIGF0LiAgVGhpcyBpcyB1c2VkIGZvcgogICAgYWxsb2NhdGlvbnMgb2YgdGhlIGNtZGxpbmUsIGtlcm5lbCBiZCwgYW5kIGRldmljZSB0cmVlIGFzIHRoZXkgc2hvdWxkCiAgICBiZSBjb250YWluZWQgd2l0aGluIGJvb3RtYXBfYmFzZSBhbmQgYm9vdG1hcF9iYXNlICsgQ0ZHX0JPT1RNQVBTWi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGY1NjE0ZTc5MjY4NjNiZjAyMjVlYzg2MGQ5YjMxOTc0MWE5YzQwMDQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgRmViIDI3IDIxOjUxOjQ4IDIwMDggLTA2MDAKCiAgICBbbmV3IHVJbWFnZV0gQWRkIGF1dG9zdGFydCBmbGFnIHRvIGJvb3RtX2hlYWRlcnMgc3RydWN0dXJlCgogICAgVGhlIGF1dG9zdGFydCBlbnYgdmFyaWFibGUgd2FzIGRyb3BwZWQgYXMgcGFydCBvZiB0aGUgaW5pdGlhbCBuZXcgdUltYWdlCiAgICBjbGVhbnVwLiAgQWRkIGl0IGJhY2sgaGVyZSBzbyB0aGUgYXJjaCBzcGVjaWZpYyBjb2RlIGNhbiBkZWNpZGUgaWYgaXQKICAgIHdhbnRzIHRvIHJlYWxseSBib290IG9yIG5vdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgQWNrZWQtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgNGVkNjU1MmY3MTU5ODNiZmM3ZDIxMmMxMTk5YTFmNzk2ZjExNDRhZApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBGZWIgMjcgMjE6NTE6NDcgMjAwOCAtMDYwMAoKICAgIFtuZXcgdUltYWdlXSBJbnRyb2R1Y2UgbG1iIGZyb20gbGludXgga2VybmVsIGZvciBtZW1vcnkgbWdtdCBvZiBib290IGltYWdlcwoKICAgIEludHJvZHVjZSB0aGUgTE1CIGxpYiB1c2VkIG9uIFBQQyBpbiB0aGUga2VybmVsIGFzIGEgY2xlYW4gd2F5IHRvIG1hbmFnZQogICAgdGhlIG1lbW9yeSBzcGFjZXMgdXNlZCBieSB2YXJpb3VzIGJvb3QgaW1hZ2VzIGFuZCBzdHJ1Y3R1cmVzLiAgVGhpcyBjb2RlCiAgICB3aWxsIGFsbG93IHVzIHRvIHNpbXBsaWZ5IHRoZSBjb2RlIGluIGJvb3RtIGFuZCBpdHMgc3VwcG9ydCBmdW5jdGlvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA0NjQ4YzJlN2ExNzNiMGQ3ZjE3YmVmNGFkYWEwNjIzMDkwYzllOTA0CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEZlYiAxOSAyMjowMzo0NyAyMDA4IC0wNjAwCgogICAgW25ldyB1SW1hZ2VdIHBwYzogQWxsb3cgYm9hcmRzIHRvIHNwZWNpZnkgZWZmZWN0aXZlIGFtb3VudCBvZiBtZW1vcnkKCiAgICBGb3IgaGlzdG9yaWNhbCByZWFzb25zIHdlIGxpbWl0ZWQgdGhlIHN0YWNrIHRvIDI1Nk0gYmVjYXVzZSBzb21lIGJvYXJkcwogICAgY291bGQgb25seSBtYXAgdGhhdCBtdWNoIHZpYSBCQVRTLglIb3dldmVyIG5ld2VyIGJvYXJkcyBhcmUgY2FwYWJsZSBvZgogICAgbWFwcGluZyBtb3JlIG1lbW9yeSAoZm9yIGV4YW1wbGUgODV4eCBpcyBjYXBhYmxlIG9mIGRvaW5nIHVwIHRvIDJHKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgQWNrZWQtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgMjc0Y2VhMmJkZGJjYTEwY2RhZDdkYWE1MTg5NTFiNzVjNDRlZjZiYwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBGZWIgMjcgMjE6NTE6NDYgMjAwOCAtMDYwMAoKICAgIFtuZXcgdUltYWdlXSByZXdvcmsgZXJyb3IgaGFuZGxpbmcgc28gY29tbW9uIGZ1bmN0aW9ucyBkb24ndCByZXNldAoKICAgIENoYW5nZWQgaW1hZ2VfZ2V0X3JhbWRpc2soKSB0byBqdXN0IHJldHVybiBOVUxMIG9uIGVycm9yIGFuZCBoYXZlCiAgICBnZXRfcmFtZGlzaygpIHByb3BvZ2F0ZSB0aGF0IGVycm9yIHRvIHRoZSBjYWxsZXIuICBJdCdzIGxlZnQgdG8gdGhlCiAgICBjYWxsZXIgdG8gY2FsbCBkb19yZXNldCgpIGlmIGl0IHdhbnRzIHRvLgoKICAgIEFsc28gbW92ZWQgY2FsbGluZyBkb19yZXNldCgpIGluIGdldF9mZHQoKSBhbmQgZmR0X3JlbG9jYXRlKCkgb24gcHBjCiAgICB0byBhIGNvbW1vbiBsb2NhdGlvbi4gIEluIHRoZSBmdXR1cmUgd2Ugd2lsbCBjaGFuZ2UgZ2V0X2ZkdCgpIGFuZAogICAgZmR0X3JlbG9jYXRlKCkgdG8gcmV0dXJuIHN1Y2Nlc3MvZmFpbHVyZSBhbmQgbm90IGNhbGwgZG9fcmVzZXQoKSBhdCBhbGwuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGQyYmMwOTVhNjM5NjcyZGVmMTFkNWQwNDNiNTY4OGQwZGJkNjkyZWMKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgRmViIDI3IDIxOjUxOjQ1IDIwMDggLTA2MDAKCiAgICBbbmV3IHVJbWFnZV0gcHBjOiBSZS1vcmRlciByYW1kaXNrL2ZkdCBoYW5kbGluZyBzZXF1ZW5jZQoKICAgIERvaW5nIHRoZSBmZHQgYmVmb3JlIHRoZSByYW1kaXNrIGFsbG93cyB1cyB0byBncm93IHRoZSBmZHQgdy9vIGNvbmNlcm4KICAgIGhvd2V2ZXIgaXQgZG9lcyBtZWFuIHdlIGhhdmUgdG8gZ28gaW4gYW5kIGZpeHVwIHRoZSBpbml0cmQgaW5mbyBzaW5jZQogICAgd2UgZG9uJ3Qga25vdyB3aGVyZSBpdCB3aWxsIGJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMjc5NTM0OTNlZjAyNWZiNjk4ZDY4YzVkZWUzOWIzNmYwMWY0ZDUzMApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBGZWIgMjcgMjE6NTE6NDQgMjAwOCAtMDYwMAoKICAgIFtuZXcgdUltYWdlXSBwcGM6IERldGVybWluZSBpZiB3ZSBhcmUgYm9vdGluZyBhbiBPRiBzdHlsZQoKICAgIElmIHdlIGFyZSBib290aW4gT0Ygc3R5bGUgdGhhbiB3ZSBjYW4gc2tpcCBzZXR0aW5nIHVwIHNvbWUgdGhpbmdzCiAgICB0aGF0IGFyZSB1c2VkIGZvciB0aGUgb2xkIGJvb3QgbWV0aG9kLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CiAgICBBY2tlZC1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBhNjYxMmJkZmU3ZWYzN2I5Nzg3YjY2ODAwY2YwMmFhZGVkMDVmYmViCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEZlYiAyNyAyMTo1MTo0MyAyMDA4IC0wNjAwCgogICAgW25ldyB1SW1hZ2VdIERvbid0IHBhc3Mga2RiIHRvIHJhbWRpc2tfaGlnaCBzaW5jZSB3ZSBtYXkgbm90IGhhdmUgb25lCgogICAgV2UgZG9uJ3QgYWN0dWFsbHkgbmVlZCB0aGUga2RiIHBhcmFtIGFzIHdlIGFyZSBqdXN0IHVzaW5nIGl0IHRvIGdldAogICAgYmQtPmJpX21lbXNpemUgd2hpY2ggd2UgY2FuIGdldCBmcm9tIGdkLT5iZC0+YmlfbWVtc2l6ZS4gIEFsc28sIGlmIHdlCiAgICBib290IHZpYSBPRiB3ZSBtaWdodCBub3QgYWN0dWFsbHkgZmlsbCBvdXQgYSBrZGIuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KICAgIEFja2VkLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDJiMjJmYTRiYWVlNTFlNmI0NjdjNDRlYTFiZTBkMWVjZDg2ZTg3NzUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgRmViIDI3IDE2OjMwOjQ3IDIwMDggLTA2MDAKCiAgICA4NXh4OiBEb24ndCBpY2JpIHdoZW4gdW5sb2NraW5nIHRoZSBjYWNoZQoKICAgIFRoZXJlIGlzIG5vIHJlYXNvbiB0byBpY2JpIHdoZW4gaW52YWxpZGF0aW5nIHRoZSB0ZW1wb3Jhcnkgc3RhY2sgaW4KICAgIHRoZSBkLWNhY2hlLiAgSXRzIGltcG9zc2libGUgb24gZTUwMCB0byBoYXZlIHRoZSBpLWNhY2hlIGNvbnRhaW4KICAgIGFueSBhZGRyZXNzZXMgaW4gdGhlIHRlbXAgc3RhY2sgYW5kIGl0IGNhbiBiZSBwcm9ibGVtYXRpYyBpbiBnZW5lcmF0aW5nCiAgICB0cmFuc2FjdGlvbnMgb24gdGhlIGJ1cyB0byBub24tdmFsaWQgYWRkcmVzc2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNTM0ZWE2YjZmODZmOGI3NWVmMmFjMDYxZWYxMTBhOThmMTAzZDdkNgpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAyNyAxNTo1MDo1MCAyMDA4IC0wNjAwCgogICAgRml4IHNvdXJjZSBmb3IgRUNNIGVycm9yIElWUFIKCiAgICBUaGUgc291cmNlIHZlY3RvciBmb3IgdGhlIEVDTSB3YXMgYmVpbmcgc2V0IHRvIDIsCiAgICBidXQgdGhhdCdzIHdoYXQgdGhlIHNvdXJjZSB2ZWN0b3IgZm9yIEREUiB3YXMgYmVpbmcKICAgIHNldCB0by4gIENoYW5nZSBpdCB0byAxLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyMWZhZThiMmI0ZTRlNmU2NDg3OTZlMDdlMjBhYjEzZTljYjE4OTIzCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDI3IDE0OjI5OjU4IDIwMDggLTA2MDAKCiAgICBJbnZhbGlkYXRlIElOSVRfUkFNIFRMQiBtYXBwaW5ncwoKICAgIENvbW1pdCAwZGIzN2RjLi4uICAoYW5kIHNvbWUgb3RoZXJzKSBjaGFuZ2VkIHRoZSBJTklUX1JBTSBUTEIKICAgIG1hcHBpbmdzIHRvIGJlIHVuZ3VhcmRlZC4gIFRoaXMgY29sbGlkZWQgd2l0aCBhbiBleGlzdGluZyAiYnVnIgogICAgd2hlcmUgdGhlIG1hcHBpbmdzIGZvciB0aGUgSU5JVF9SQU0gd2VyZSBiZWluZyBrZXB0IGFyb3VuZC4KICAgIFRoaXMgbWVhbnQgdGhhdCBzcGVjdWxhdGl2ZSBsb2FkcyB0byB0aG9zZSBhZGRyZXNzZXMgd2VyZQogICAgc3VjY2VlZGluZyBpbiB0aGUgVExCLCBhbmQgZ29pbmcgb3V0IHRvIHRoZSBidXMsIHdoZXJlIHRoZXkKICAgIHdlcmUgY2F1c2luZyBhbiBleGNlcHRpb24gKHRoZXJlJ3Mgbm90aGluZyBhdCB0aGF0IGFkZHJlc3MpLiBUaGUKICAgIEZsYXNoIGNvZGUgd2FzIGNvaW5jaWRlbnRhbGx5IGNhdXNpbmcgc3VjaCBhIHNwZWN1bGF0aXZlIGxvYWQuCiAgICBSYXRoZXIgdGhhbiBnbyBiYWNrIHRvIG1hcHBpbmcgdGhlIElOSVQgUkFNIGFzIGd1YXJkZWQsIHdlIGZpeAogICAgaXQgc28gdGhhdCB0aGUgZW50cmllcyBmb3IgdGhlIElOSVRfUkFNIGFyZSBpbnZhbGlkYXRlZC4gIFRodXMKICAgIHRoZSBzcGVjdWxhdGl2ZSBsb2FkcyB3aWxsIGZhaWwgaW4gdGhlIFRMQiwgYW5kIGhhdmUgbm8gZWZmZWN0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzNDdiNzkzOGQzZTU2MWViMjE1YWEzODZjMzdmYjVhY2I1YTM4M2M2CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIEZlYiAxNyAyMjo1NjoxNyAyMDA4ICswMTAwCgogICAgc2JjODU0ODogRml4IFJldmlzaW9uIHJlYWRpbmcgYW5kIHVudXNlZCB2YXJpYWJsZSAncGF0aCcKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDQ5NWQxNjIzNzRjNDcyZjQ2NDU0NDUzNTUzMzgyYWQwNzM1ZGM3MjUKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gRmViIDE3IDIyOjU2OjE2IDIwMDggKzAxMDAKCiAgICBzYmM4NTQ4OiBGaXggY2ZpIGZsYXNoIGJhbmsgZGVjbGFyYXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDRlZmJlOWRiYjEyOWY4NTdmMjc4NTY5MzYxMTJjOGMwMmYwMTZiZTYKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgRmViIDI3IDExOjAyOjI2IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQ29ycmVjdCByYXcgRkRUIGJsb2IgaGFuZGxpZyB3aGVuIENPTkZJR19GSVQgaXMgZGlzYWJsZWQKCiAgICBEdWFsIGZvcm1hdCBpbWFnZSBjb2RlIG11c3QgcHJvcGVybHkgaGFuZGxlIGFsbCB0aHJlZSBGRFQgcGFzc2luZyBtZXRob2RzOgogICAgLSByYXcgRkRUIGJsb2IgcGFzc2VkCiAgICAtIEZEVCBibG9iIGVtYmVkZGVkIGluIHRoZSBsZWdhY3kgdUltYWdlCiAgICAtIEZEVCBibG9iIGVtYmVkZGVkIGluIHRoZSBuZXcgdUltYWdlCgogICAgVGhpcyBwYXRjaCBlbmFibGVzIHByb3BlciByYXcgRkRUIGhhbmRsaW5nIHdoZW4gbm8gRklUIGltYWVnIHN1cHBvcnQKICAgIGlzIGNvbXBpbGVkIGluLiBUaGlzIGlzIGEgYml0IHRyaWNreSBhcyB3ZSBtdXN0IGRlY3RlZCBGSVQgZm9ybWF0IGV2ZW4KICAgIHdoZW4gRklUIHVJbWFnZSBoYW5kbGluZyBpcyBub3QgZW5hYmxlZCBhcyBib3RoIEZJVCB1SW1hZ2VzIGFuZCByYXcgRkRUCiAgICBibG9icyB1c2UgdGhhIHNhbWUgbG93IGxldmVsIGZvcm1hdCAobGliZmR0KS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGZmMDczNGNmZjBmYjUzOTdjZTJmNDYwMmY0ZjNlNWVjOWM4YTM2ZTgKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgRmViIDI3IDExOjAyOjI2IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gUE9XRVJQQzogQWRkIGltYWdlX2dldF9mZHQoKSByb3V0aW5lCgogICAgRkRUIGJsb2IgbWF5IGJlIHBhc3NlZCBlaXRoZXI6ICgxKSByYXcgKDIpIG9yIGVtYmVkZGVkIGluIHRoZSBsZWdhY3kgdUltYWdlCiAgICAoMykgb3IgZW1iZWRkZWQgaW4gdGhlIG5ldyB1SW1hZ2UuIEZvciB0aGUgKDIpIGNhc2UgZW1iZWRkaW5nIGltYWdlIG11c3QgYmUKICAgIHZlcmlmaWVkIGJlZm9yZSB3ZSBnZXQgRkRUIGZyb20gaXQuIFRoaXMgcGF0Y2ggZmFjdG9ycyBvdXQgbGVnYWN5IGltYWdlCiAgICBzcGVjaWZpYyB2ZXJpZmljYXRpb24gcm91dGluZSB0byB0aGUgc2VwYXJhdGUgaGVscGVyIHJvdXRpbmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDFlZmQ0MzYwMWY5MGRlMjFlYzZjMGViYjk4ODA4MjNlODIyOTI3YjEKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgRmViIDI3IDExOjAyOjA3IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQWRkIGltYWdlX2dldF9rZXJuZWwoKSByb3V0aW5lCgogICAgTGVnYWN5IGltYWdlIHNwZWNpZmljIHZlcmlmaWNhdGlvbiBpcyBmYWN0b3JlZCBvdXQgdG8gYSBzZXBhcmF0ZSBoZWxwZXIKICAgIHJvdXRpbmUgdG8ga2VlcCBnZXRfa2VybmVsKCkgZ2VuZXJpYyBhbmQgc2ltcGxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA4YTVlYTNlNjE2OGZlNmEyNzgwZWVhZjI1N2EzYjE5ZjMwZGVjNjU4CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIEZlYiAyNyAxMTowMTowNCAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIE1vdmUgaW1hZ2UgdmVyaWZ5IGZsYWcgdG8gYm9vdG1faGVhZGVycyBzdHJ1Y3R1cmUKCiAgICBEbyBub3QgcGFzcyBpbWFnZSB2ZXJpZmljYXRpb24gZmxhZyBkaXJlY3RseSB0byByZWxhdGVkIHJvdXRpbmVzLgogICAgU2ltcGxpZnkgYXJndW1lbnQgcGFzc2luZyBhbmQgbW92ZSBpdCB0byB0aGUgYm9vdG1faGVhZGVyIHN0cnVjdHVyZSB3aGljaAogICAgY29udGFpbnMgY3VyZW50bHkgcHJvY2Vzc2VkIGltYWdlIHNwZWNpZmljIGRhdGEgYW5kIGlzIGFscmVhZHkgYmVpbmcgcGFzc2VkCiAgICBvbiB0aGUgYXJndW1lbnQgbGlzdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgODIzYWZlN2NlZmUwMGRhZmVmYzY2OTZjMWNjN2FhODI4YzM5NDIzNApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBGZWIgMjcgMTE6MDA6NDcgMjAwOCArMDEwMAoKICAgIFtNYWtlZmlsZV0gU29ydCBDT0JKUyBpbiBsaWJfPGFyY2g+IE1ha2VmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgNmYwZjlkZmM0ZWU4ODBmYmY0MDBhMmViZTE0MjM4MTgxYTZjM2Y5MQpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBGZWIgMjcgMTE6MDA6NDcgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBPcHRpbWl6ZSBnZW5fZ2V0X2ltYWdlKCkgZmxvdyBjb250cm9sCgogICAgV2hlbiBDT05GSUdfSEFTX0RBVEFGTEFTSCBpcyBub3QgZGVmaW5lZCBnZW5fZ2V0X2ltYWdlKCkgcm91dGluZSBoYXMgbm90aGluZwogICAgdG8gZG8sIHVwZGF0ZSBpdHMgY29udHJvbCBmbG93IHRvIGJldHRlciByZWZsZWN0IHRoYXQgc2ltcGxlIGNhc2UuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGQyY2VkOWViMTllYzc0ZjRhMzU5OTQ5ZGJlMzUzNDI3ZmE2ZDU1Y2EKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglNb24gRmViIDQgMDg6Mjg6MTcgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBQT1dFUlBDOiBTcGxpdCBnZXRfZmR0KCkgaW50byBnZXQgYW5kIHJlbG9jYXRlIHJvdXRpbmVzCgogICAgUFBDIHNwZWNpZmljIEZEVCBibG9iIGhhbmRsaW5nIGNvZGUgaXMgZGl2aWRlZCBpbnRvIHR3byBzZXBhcmF0ZSByb3V0aW5lczoKCiAgICBnZXRfZmR0KCkJLSBmaW5kIGFuZCB2ZXJpZnkgYSBGRFQgYmxvYiAoZWl0aGVyIHJhdyBvciBpbWFnZSBlbWJlZGRlZCkKICAgIGZkdF9yZWxvY2F0ZSgpCS0gbW92ZSBGRFQgYmxvYiB0byB3aXRoaW4gQk9PVE1BUCBpZiBuZWVkZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMzNmYTVjMGJmYWY0NjVkZThjZWIyM2ZjZDZiMzk3ZjY4YjM1YTgxNwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBGZWIgMjUgMTM6MTM6MzcgMjAwOCAtMDYwMAoKICAgIDg2eHg6IEZpeCByZW5hbWVkIEdVUiBzeW1ib2xzIGluIHNiYzg2NDFkIGJvYXJkLgoKICAgIEJhY2sgaW4gY29tbWl0IGE1NTFjZWU5OWFkMWQxZGEyMGZkMjNhZDI2NWRlNDc0NDg4NTJmNTYKICAgICg4Nnh4OiBGaXggR1VSIFBDSSBjb25maWcgcmVnaXN0ZXJzIHByb3Blcmx5KSwgd2Ugc2hvdWxkIGhhdmUKICAgIGNoYW5nZWQgdGhlIE1QQzg2eHhfUE9SQk1TUl9IQSBhbmQgTVBDODZ4eF9QT1JERVZTUl9JT19TRUwKICAgIHN5bWJvbHMgaW4gdGhlIHNiYzg2NDFkIGJvYXJkIGFzIHdlbGwuICBGaXggdGhpcyBvdmVyc2lnaHQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2NGNkNTk0ZTYyM2MzOWY3Mzk2NGQxODc4Nzc2M2U0NTMzZjc5MWY3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gRmViIDI1IDE2OjUwOjQ4IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBhY2FkaWFfbmFuZCBidWlsZCBwcm9ibGVtCgogICAgRG9uJ3QgaW5jbHVkZSB0ZXN0ZHJhbSgpIG9uIE5BTkQtYm9vdGluZyB0YXJnZXQgYWNhZGlhX25hbmQuIFRoaXMgc2F2ZXMKICAgIGEgZmV3IGJ5dGVzIGFuZCBtYWtlcyB0aGUgdGFyZ2V0IGJ1aWxkIGNsZWFuIGFnYWluLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxNGUwOTllNjk4ZDQxZTgxNzlkMDVjMmIyZGJjZjcwNGEyMzZmNzQ4CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIEZlYiAyNCAyMzowMzoxMiAyMDA4ICswMDAwCgogICAgbXgxZnMyL2ZsYXNoOiBGaXggbXVsdGlwbGUgcG9pbnRlcnRhcmdldHMgaW4gYXNzaWdubWVudCBkaWZmZXIgaW4gc2lnbmVkbmVzcwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNzI0OTAyYzg0NjRlNjEwNjQyYjNhMTcwMjc4Yjk5NzEwMzI1ODg4ZQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBGZWIgMjQgMjM6MDM6MTEgMjAwOCArMDAwMAoKICAgIGFybS1pbXg6IEZpeCByZWdpc3RlcnMgZGVmaW5pdGlvbgoKICAgIFN5bmMgcmVnaXN0ZXJzIGRlZmluaXRpb24gd2l0aCBsaW51eAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNGNkMjg4YjU4OWVhMTE3ODk0N2M2ZTM2NDQ1M2MzMmIzZGVkZTZiNwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBGZWIgMjQgMjM6MDM6MTAgMjAwOCArMDAwMAoKICAgIGFjdHVhMS9hY3R1YTIvYWN0dWEzOiBGaXggbXVsdGlwbGV1bnVzZWQgdmFyaWFibGUKCiAgICAtIGFjdHVhMToKCWFjdHV4MS5jOiBJbiBmdW5jdGlvbiAnY2hlY2tib2FyZCc6CglhY3R1eDEuYzo5Mjogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdyZXZpc2lvbicKCiAgICAtIGFjdHVhMjoKCWFjdHV4Mi5jOiBJbiBmdW5jdGlvbiAnY2hlY2tib2FyZCc6CglhY3R1eDIuYzoxMDA6IHdhcm5pbmc6IHVudXNlZCB2YXJpYWJsZSAncycKCWFjdHV4Mi5jOjk5OiB3YXJuaW5nOiB1bnVzZWQgdmFyaWFibGUgJ3JldmlzaW9uJwoJYWN0dXgyLmM6IEluIGZ1bmN0aW9uICdyZXNldF9waHknOgoJYWN0dXgyLmM6MTMwOiB3YXJuaW5nOiB1bnVzZWQgdmFyaWFibGUgJ2knCgogICAgLSBhY3R1YTM6CglhY3R1eDMuYzogSW4gZnVuY3Rpb24gJ2NoZWNrYm9hcmQnOgoJYWN0dXgzLmM6MTE0OiB3YXJuaW5nOiB1bnVzZWQgdmFyaWFibGUgJ3JldmlzaW9uJwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZDU5MzRhZDc3NTZmMDM4YTM5M2E5Y2ZhYjc2YTRmZTMwNmQ5ZDkzMApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CU1vbiBGZWIgNCAwODoyODowOSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEFkZCBkdWFsIGZvcm1hdCB1SW1hZ2Ugc3VwcG9ydCBmcmFtZXdvcmsKCiAgICBUaGlzIHBhdGNoIGFkZHMgZnJhbWV3b3JrIGZvciBkdWFsIGZvcm1hdCBpbWFnZXMuIEZvcm1hdCBkZXRlY3Rpb24gaXMgYWRkZWQKICAgIGFuZCB0aGUgYm9vdG0gY29udHJvbGwgZmxvdyBpcyB1cGRhdGVkIHRvIGluY2x1ZGUgY2FzZXMgZm9yIG5ldyBGSVQgZm9ybWF0CiAgICB1SW1hZ2VzLgoKICAgIFdoZW4gdGhlIGxlZ2FjeSAoaW1hZ2VfaGVhZGVyIGJhc2VkKSBmb3JtYXQgaXMgZGV0ZWN0ZWQgYXBwcm9wcmlhdGUKICAgIGxlZ2FjeSBzcGVjaWZpYyBoYW5kbGluZyBpcyBpbnZva2VkLiBGb3IgdGhlIG5ldyAoRklUIGJhc2VkKSBmb3JtYXQgdUltYWdlcwogICAgZHVhbCBib290IGZyYW1ld29yayBoYXMgYSBtaW5pYWwgc3VwcG9ydCwgdGhhdCB3aWxsIG9ubHkgcHJpbnQgb3V0IGEKICAgIGNvcnJlc3BvbmRpbmcgZGVidWcgbWVzc2FnZXMuIEltcGxlbWVudGF0aW9uIG9mIHRoZSBGSVQgc3BlY2lmaWMgaGFuZGxpbmcgd2lsbAogICAgYmUgYWRkZWQgaW4gZm9sbG93aW5nIHBhdGNoZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBiMjk2NjFmYzExNTEwNzc3NzY0NTQyODgwNTFiYzlhNDg4MzUxY2U4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEZlYiAyNCAxNToyMTozNiAyMDA4ICswMTAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAuIFByZXBhcmUgdjEuMy4yLXJjMiByZWxlYXNlIGNhbmRpZGF0ZQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMDBiNDhhNDg0MjQ4OTRkYWE1ODlkMTY2ZDczMjc3ODMwYjFjNmFjNApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBGZWIgMjMgMTI6MTU6NTYgMjAwOCArMDEwMAoKICAgIEVOVjogcmVtb3ZlIHNhdmVlbnYgd2hlbiBDRkdfRU5WX0lTX05PV0hFUkUgaXMgc2VsZWN0ZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGIwNzVkNzRlZmI3MGZmNjhjNDlhMjUzMmYyNmI1NmQ2NzAzYjY5YzEKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgRmViIDIzIDE3OjI0OjE2IDIwMDggKzA5MDAKCiAgICBSZW1vdmUgdGhlIF9fU1RSSUNUX0FOU0lfXyBjaGVjayBmcm9tIHRoZSBfX3U2NC9fX3M2NCBkZWNsYXJhdGlvbiBvbiAzMmJpdCB0YXJnZXRzLgoKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIE9sYWYgSGVyaW5nIFtXZWQsIDE3IE9jdCAyMDA3IDA2OjI3OjEzICswMDAwICgyMzoyNyAtMDcwMCldCgogICAgUmVtb3ZlIHRoZSBfX1NUUklDVF9BTlNJX18gY2hlY2sgZnJvbSB0aGUgX191NjQvX19zNjQgZGVjbGFyYXRpb24gb24KICAgIDMyYml0IHRhcmdldHMuCgogICAgR0NDIGNhbiBiZSBtYWRlIHRvIHdhcm4gYWJvdXQgdXNhZ2Ugb2YgbG9uZyBsb25nIHR5cGVzIHdpdGggSVNPIEM5MAogICAgKC1hbnNpKSwgYnV0IG9ubHkgd2l0aCAtcGVkYW50aWMuICBZb3UgY2FuIHdyaXRlIHRoaXMgaW4gYSB3YXkgdGhhdCBldmVuCiAgICB0aGVuIGl0IGRvZXNuJ3QgY2F1c2Ugd2FybmluZ3MsIG5hbWVseSBieToKCiAgICAjaWZkZWYgX19HTlVDX18KICAgIF9fZXh0ZW5zaW9uX18gdHlwZWRlZiBfX3NpZ25lZF9fIGxvbmcgbG9uZyBfX3M2NDsKICAgIF9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgX191NjQ7CiAgICAjZW5kaWYKCiAgICBUaGUgX19leHRlbnNpb25fXyBrZXl3b3JkIGluIGZyb250IG9mIHRoaXMgc3dpdGNoZXMgb2ZmIGFueSBwZWRhbnRpYwogICAgd2FybmluZ3MgZm9yIHRoaXMgZXhwcmVzc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBPbGFmIEhlcmluZyA8b2xoQHN1c2UuZGU+CiAgICBDYzogPGxpbnV4LWFyY2hAdmdlci5rZXJuZWwub3JnPgogICAgU2lnbmVkLW9mZi1ieTogQW5kcmV3IE1vcnRvbiA8YWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51eC1mb3VuZGF0aW9uLm9yZz4KICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDIwOGFjZDExMmU2NTE3YjIxZmMzMGM0MjAzOTY5MDJiMTAzNTYzYWMKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgRmViIDIzIDE3OjA3OjU3IDIwMDggKzA5MDAKCiAgICBjcHUvbWNmNTJ4Mi9jb25maWcubWs6IE1ha2UgbmVlZGxlc3NseSBkZWZmZXJlZCBleHBhbnNpb25zIGltbWVkaWF0ZS4KCiAgICBUaGlzIHdpbGwgcmVkdWNlIHRoZSBidWlsZCB0aW1lLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgNDk1YTBkZGU3ZmExYjE0Y2RjMTU2MDdkODY1MDNlYzJiZGNkMDJjNApBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+CkRhdGU6CVNhdCBGZWIgMjMgMTc6MDU6MDAgMjAwOCArMDkwMAoKICAgIGNwdS9wcGM0eHgvY29uZmlnLm1rOiBNYWtlIGEgbmVlZGxlc3NseSBkZWZmZXJlZCBleHBhbnNpb24gaW1tZWRpYXRlLgoKICAgIFRoaXMgd2lsbCByZWR1Y2UgdGhlIGJ1aWxkIHRpbWUuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBlNjgyYmEzOTlhMWQ3NmYwOWQ4Y2M3YWYxZTU3MDY2ZjFkMzYwZDkxCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IEZlYiAyMyAxNjo1ODo0MSAyMDA4ICswOTAwCgogICAgY3B1L21pcHMvY29maWdsLm1rOiBNYWtlIGEgbmVlZGxlc3NseSBkZWZmZXJlZCBleHBhbnNpb24gaW1tZWRpYXRlLgoKICAgIFRoaXMgcmVkdWNlcyB0aGUgYnVpbGQgdGltZSBieSB+MTAlLiBIZXJlJ3MgdGhlIGd0aDJfY29uZmlnIGV4YW1wbGUuCgoJICAgIEJFRk9SRQkgQUZURVIKICAgIHJlYWwgICAgMG0zMS40NDFzCSAwbTI3LjgzM3MKICAgIHVzZXIgICAgMG0yNC43NjZzCSAwbTIzLjA0NXMKICAgIHN5cyAgICAgMG0xMC40MjVzCSAwbTcuNDY4cwoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgMDI0MDlmOGNmNTRjN2NkOTE5ODFmMGRmZWMxMzVkYmYzODU4MDkwYwpBdXRob3I6IE1hcmNlbCBNb29sZW5hYXIgPG1hcmNlbG1AanVuaXBlci5uZXQ+CkRhdGU6CUZyaSBGZWIgMjIgMTA6NDg6MDcgMjAwOCAtMDgwMAoKICAgIG1ha2UgZGVmaW5lMm1rLnNlZCB3b3JrIG9uIEZyZWVCU0QKCiAgICBJbiB0aGUgdGhyZWFkICJbMS4zLjItcmMxXSBNUEM4NTQ4Q0RTL01QQzg1NTVDRFMgY29uZmlncyBmYWlscyB0byBsaW5rIiwKICAgIHRoZSBkZWZpbmUybWsuc2VkIHNjcmlwdCB3YXMgaWRlbnRpZmllZCBhcyB0aGUgc291cmNlIG9mIHRoZSBsaW5rCiAgICBmYWlsdXJlIG9uIEZyZWVCU0QuIFRoZSBwcm9ibGVtIGlzIHRoYXQgc2VkKDEpIGRvZXMgbm90IGFsd2F5cyBzdXBwb3J0CiAgICB0aGUgJysnIG9wZXJhdG9yLiBJdCBpc24ndCBvbiBGcmVlQlNELiBUaGUgYXR0YWNoIHBhdGNoIGltcGxlbWVudHMgdGhlCiAgICBlcXVpdmFsZW50LCB1c2luZyB0aGUgJyonIG9wZXJhdG9yIGluc3RlYWQgYW5kIHNob3VsZCB3b3JrIGV2ZXJ5d2hlcmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyY2VsIE1vb2xlbmFhciA8bWFyY2VsbUBqdW5pcGVyLm5ldD4KCmNvbW1pdCBlNTA4NGFmOGRlZDU4NDUzY2QwN2VjMWFmOGIwZjI5ZjM0MTIyYmJjCkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CUZyaSBGZWIgMjIgMTc6MjE6MzIgMjAwOCArMDEwMAoKICAgIFJlcGxhY2UgZGVwcmVjYXRlZCAicmFtZGlzayIgd2l0aCAicmFtZGlza19zaXplIiBrZXJuZWwgcGFyYW1ldGVyLgoKICAgIFRoZSBMaW51eCBjb21taXQgZmFjOGIyMDliMTA4NGJjODU3NDhiZDU0ZTEzZDAwYzEyNjJiMjIwZiAoIlJlbW92ZQogICAgZmluYWwgdHJhY2VzIG9mIGxvbmctZGVwcmVjYXRlZCAicmFtZGlzayIga2VybmVsIHBhcm0iKSBtYWtlcyB0aGVzZQogICAgY2hhbmdlcyBuZWNjZXNzYXJ5LgoKICAgIFNpZ25lZC1vZmYtYnk6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgoKY29tbWl0IGQwMWI4NDdjNWNkMDcwODk1YzRiYTE3OGM4NWNkMDY4YTk1Y2Y3Y2QKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJVGh1IEZlYiAyMSAxMzo1ODoxNiAyMDA4IC0wNTAwCgogICAgTE03NSBidWcgZml4IGZvciBuZWdhdGl2ZSB0ZW1wZXJhdHVyZXMKCiAgICBXaGVuIHRoZSBMTTc1IHRlbXBlcmF0dXJlIHNlbnNvciBtZWFzdXJlcyBhIHRlbXBlcmF0dXJlIGJlbG93IDAgQywgdGhlCiAgICBjdXJyZW50IGRyaXZlciBkb2VzIG5vdCBwZXJmb3JtIHNpZ24gZXh0ZW5zaW9uLCBzbyB0aGUgcmVzdWx0IHJldHVybmVkIGlzCiAgICAyNTYgQyB0b28gaGlnaC4gIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgNWE5MTBjMjI0YjEzZTQxM2JkYTQxOTIyMzc5YWRkNmQ3NWMzMmRhMwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglUaHUgRmViIDIxIDE4OjMzOjQ1IDIwMDggKzAxMDAKCiAgICBJRFM4MjQ3OiB1cGRhdGUgTUFJTlRBSU5FUiBlbnRyeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA3OWVhYzJiZmI1OTFmMmIwMjhlYzE3MzUwNDlkYzkxZTQzMjBkZTRhCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CVRodSBGZWIgMjEgMTg6MzE6MTUgMjAwOCArMDEwMAoKICAgIEZpeCBkZXZpY2UgdHJlZSBmb3IgbWdzdXZkIGJvYXJkLgoKICAgIFJlbmFtZSB0aGUgInNjYyIgbm9kZSBpbiAiZXRoZXJuZXQiIGZvciB0aGUgbWdzdXZkIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDJlNzIxMDk0YTcwYTUyMjA2YWYyZTFiZjEyMDhkOWE3MTMxZjZkYWQKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CkRhdGU6CVRodSBGZWIgMjEgMTQ6MjM6NDIgMjAwOCArMDEwMAoKICAgIGx3bW9uNTogZW5hYmxlIGhhcmR3YXJlIHdhdGNoZG9nCgogICAgU29tZSBib2FyZHMgKGUuZy4gbHdtb241KSBtYXkgdXNlIHJhdGhlciBzbWFsbCB3YXRjaGRvZyBpbnRlcnZhbHMsIHNvCiAgICBjYXVzaW5nIGl0IHRvIHJlYm9vdCB0aGUgYm9hcmQgaWYgVS1Cb290IGRvZXMgYSBsb25nIGJ1c3ktd2FpdCB3aXRoCiAgICB1ZGVsYXkoKS4gVGh1cywgZm9yIHRoZXNlIGJvYXJkcyB3ZSBoYXZlIHRvIHJlc3RhcnQgV0QgbW9yZQogICAgZnJlcXVlbnRseS4KCiAgICBUaGlzIHBhdGNoIHNwbGl0cyB0aGUgYnVzeS13YWl0IHVkZWxheSgpIGludG8gc21hbGxlciwgcHJlZGVmaW5lZCwKICAgIGludGVydmFscywgc28gdGhhdCB0aGUgd2F0Y2hkb2cgdGltZXIgbWF5IGJlIHJlc2V0dGVkIHdpdGggdGhlCiAgICBjb25maWd1cmFibGUgKENPTkZJR19XRF9QRVJJT0QpIGludGVydmFsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KCmNvbW1pdCBiYzc3ODgxMjQ3ZWU2Zjk1ZDdhOWViYzQ5OWQyNmI5NmJhZTM4YzlkCkF1dGhvcjogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgpEYXRlOglUaHUgRmViIDIxIDEyOjUyOjI5IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IFN1cHBvcnQgZm9yIEFUSSBSYWRlb24gOTIwMCBjYXJkIG9uIHNlcXVvaWEKCiAgICBBZGRzIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGZvciBBVEkgUmFkZW9uIDkyMDAgY2FyZAogICAgc3VwcG9ydCB0byBzZXF1b2lhIGNvbmZpZyBmaWxlLiBJZiBDT05GSUdfVklERU8KICAgIGlzIGVuYWJsZWQsIFRFWFRfQkFTRSBzaG91bGQgYmUgY2hhbmdlZCB0byAweEZGRjgwMDAwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCA1YTlhYmNjMzE3Y2YzYzhhNjk1NTlmZjgzMDgxZjRlNWQ3MTllZGI3CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIEZlYiAxOCAwODoxODowNyAyMDA4IC0wNjAwCgogICAgUmVtb3ZlIGR1cGxpY2F0ZSBkZWZpbmVzIGZvciBBUlJBWV9TSVpFCgogICAgQSBmZXcgZHVwbGljYXRlIG9mIHRoZSBBUlJBWV9TSVpFIG1hY3JvIHNuZWFrZWQgaW4gc2luY2Ugd2UgcHV0CiAgICB0aGUgZGVmaW5lIGluIGNvbW1vbi5oLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgODFkOTNlNWM0YjgzZDhiNmRjZWU2OWRlNmY0YTE0Y2NmNmY3MTE0YQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBGZWIgMTggMDg6MDk6MzcgMjAwOCAtMDYwMAoKICAgIHBwYzogQWxsb3cgYm9hcmRzIHRvIHNwZWNpZnkgZWZmZWN0aXZlIGFtb3VudCBvZiBtZW1vcnkKCiAgICBGb3IgaGlzdG9yaWNhbCByZWFzb25zIHdlIGxpbWl0ZWQgdGhlIHN0YWNrIHRvIDI1Nk0gYmVjYXVzZSBzb21lIGJvYXJkcwogICAgY291bGQgb25seSBtYXAgdGhhdCBtdWNoIHZpYSBCQVRTLglIb3dldmVyIG5ld2VyIGJvYXJkcyBhcmUgY2FwYWJsZSBvZgogICAgbWFwcGluZyBtb3JlIG1lbW9yeSAoZm9yIGV4YW1wbGUgODV4eCBpcyBjYXBhYmxlIG9mIGRvaW5nIHVwIHRvIDJHKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDc1NWMzNWY1NGJhN2ViNzY4N2FhNzkzNWUwNGEwMmEwMWVmMWIyN2IKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgMTggMDU6MjQ6MTMgMjAwOCAtMDUwMAoKICAgIGluY2x1ZGUgYXV0b2NvbmYubWsgYmVmb3JlIGFueSBvdGhlciAubWsgZmlsZXMKCiAgICBUaGlzIGJ1bXBzIHRoZSBhdXRvY29uZi5tayBpbmNsdWRlIHN0ZXAgYWJvdmUgYm9hcmQvY3B1L2FyY2gvZXRjLi4uIHNvIHRoYXQKICAgIHRob3NlIC5tayBmaWxlcyBjYW4gaGF2ZSBtYWtlIGlmIHN0YXRlbWVudHMgYmFzZWQgb24gdGhlIGN1cnJlbnQgY29uZmlnLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAxNmZlNzc3NTJlZWUwOTliOWZiNjFlZDczNDYwZTUxY2M5NGIzN2JhCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDE4IDA1OjEwOjA3IDIwMDggLTA1MDAKCiAgICBlcnJvciBjaGVjayBhdXRvY29uZi5tayBnZW5lcmF0aW9uCgogICAgSWYgYW55IG9mIHRoZSBzdGVwcyBmb3IgZ2VuZXJhdGluZyBhdXRvY29uZi5tayBmYWlsIGN1cnJlbnRseSwgdGhleSBnbwogICAgdW5ub3RpY2VkLglUbyBmaXgsIHdlIGNhbiBzaW1wbHkgYWRkICdzZXQgLWUnIHRvIHRoZSBsb25nIGxpc3Qgb2YgY29tbWFuZHMuCiAgICBUaGlzIGlzIHNpbXBsZXIgYW5kIG1vcmUgcm9idXN0IHRoYW4gcGxhY2luZyAnfHwgZXhpdCAkJD8nIGFmdGVyIGV2ZXJ5IGxpbmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDAxOTg5NWE4ZGVlNzFhOWYwMGRhMDVjMDNlMzc5ZjQ1ZDU4MWIwZmUKQXV0aG9yOiBTdGVmYW5vIEJhYmljIDxzYmFiaWNAZGVueC5kZT4KRGF0ZToJTW9uIEZlYiAxOCAwODowMzo1MSAyMDA4ICswMTAwCgogICAgRml4IGJ1ZyBpbiBkZXBlbmRlbmN5IGNoZWNraW5nCgogICAgQnkgYWRkaW5nIFZFUlNJT05fRklMRSB0byB0aGUgUEhPTlkgdGFyZ2V0cyB0aGUgc2NyaXB0CiAgICAvdG9vbHMvc2V0bG9jYWx2ZXJzaW9uIGlzIGFsd2F5cyBjYWxsZWQgYW5kIHZlcnNpb25fYXV0b2dlbmVyYXRlZC5oCiAgICBpcyByZXBsYWNlZCBvbmx5IGlmIHRoZSBzY3JpcHQgZmluZCBhIG1vZGlmaWVkIHNvdXJjZSBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gQmFiaWMgPHNiYWJpY0BkZW54LmRlPgoKY29tbWl0IDk4YmExNDRjY2M5MTJlZWU5MGRkNDI2OTlmMDIzYzQ5N2NlNzc0YzYKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxrbXBhcmtAaW5mcmFkZWFkLm9yZz4KRGF0ZToJTW9uIEZlYiAxOCAxNDozNTo0MyAyMDA4ICswOTAwCgogICAgRml4IEdQTUMgQ1MyIG1lbW9yeSBzZXR1cCBhdCBhcG9sbG9uCgogICAgSXQgZGlzYWJsZXMgdGhlIGN1cnJlbnQgbWFwIGZpcnN0CgogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCBlODQ1ZTA3ZTFlNmU2NGY0MGUzNTY4ODQzOWQzY2RjZjAxY2ZmZjRmCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIEZlYiAxNyAyMzo1Mjo0NiAyMDA4ICswMTAwCgogICAgdWxpNTI2eDogRml4IG11bHRpcGxlIGRpZmZlciBpbiBzaWduZWRuZXNzIGFuZCBwYXJlbnRoZXNlcyBhcm91bmQgY29tcGFyaXNvbgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgYmVlY2NmN2E1ZGM1NDE1YzIwMmUwMTMyYTMzYzU4ZmMzMTZjMmE2MgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBGZWIgMTcgMTY6NTg6MDQgMjAwOCArMDEwMAoKICAgIE1JUFM6IEZpeCBDRkdfTk9fRkxBU0ggc3VwcG9ydAoKICAgIC0gRml4IGZsYXNoX2luaXQgY2FsbCB3aGVuIENGR19OT19GTEFTSCBpcyB1c2VkCiAgICAtIFJlbW92ZSBubyBtb3JlIG5lZWRlZCBmbGFzaC5jIGZvciBxZW11LW1pcHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGVkZmVkMWQ5MWRmMmIyNjcwYTgxMmNhOWQxYTFmOWZhYWU3ZGJhNDcKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBGZWIgMTYgMDI6NDA6MTggMjAwOCAtMDUwMAoKICAgIGVhc3lsb2dvOiBjbGVhbiB1cCBzb21lIG1vcmUgYW5kIGFkZCAtciAocmdiKSBzdXBwb3J0CgogICAgTWljaGFlbCBIZW5uZXJpY2ggYWRkZWQgc3VwcG9ydCBmb3Igb3V0cHV0dGluZyBhbiBpbWFnZSBpbiBSR0IgZm9ybWF0IHJhdGhlcgogICAgdGhhbiBmb3JjaW5nIFlVWVYgYWxsIHRoZSB0aW1lLiAgVGhpcyBtYWtlcyBvYnZpb3VzIHNlbnNlIGlmIHRoZSBkaXNwbGF5IHlvdQogICAgaGF2ZSB0YWtlcyBSR0IgaW5wdXQgcmF0aGVyIHRoYW4gWVVZVi4KCiAgICBSYXRoZXIgdGhhbiBoYWNrIGluIHN1cHBvcnQgZm9yIG9wdGlvbnMsIEkndmUgY29udmVydGVkIGl0IHRvIHVzZSBnZXRvcHQgYW5kCiAgICBjbGVhbmVkIHVwIHRoZSBhcmd1bWVudCBwYXJzaW5nIGluIHRoZSBwcm9jZXNzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgSGVubmVyaWNoIDxtaWNoYWVsLmhlbm5lcmljaEBhbmFsb2cuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGY2NWM5ODEyOWNjYWRhM2Y3Y2FmOTdkODAzOTVhOTViODRlOTExZGUKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CVNhdCBGZWIgMTYgMDI6MTI6MzcgMjAwOCAtMDUwMAoKICAgIE1ha2VmaWxlOiBhZGQgdGFyZ2V0IGZvciAkKExEU0NSSVBUKQoKICAgIElmIHRoZSAkKExEU0NSSVBUKSBkb2VzIG5vdCBleGlzdCAobm9ybWFsbHkgaXQncyBib2FyZC8kKEJPQVJEKS91LWJvb3QubGRzKSwKICAgIHRoZW4gY2hhbmdlIGludG8gdGhlIGJvYXJkIGRpcmVjdG9yeSBhbmQgdHJ5IGFuZCBjcmVhdGUgaXQuICBUaGlzIGFsbG93cyB5b3UKICAgIHRvIGdlbmVyYXRlIHRoZSBsaW5rZXIgc2NyaXB0IG9uIHRoZSBmbHkgYmFzZWQgdXBvbiBib2FyZCBkZWZpbmVzIChsaWtlIHRoZQogICAgQmxhY2tmaW4gYm9hcmRzIGRvKS4KCiAgICBUaGVyZSBzaG91bGQgYmUgbm8gcmVncmVzc2lvbnMgZHVlIHRvIHRoaXMgY2hhbmdlIGFzIHRoZSBub3JtYWwgY2FzZSBpcyB0bwogICAgYWxyZWFkeSBoYXZlIGEgdS1ib290LmxkcyBmaWxlLiAgSWYgdGhhdCdzIHRoZSBjYXNlLCB0aGVuIHRoZXJlJ3Mgbm90aGluZyB0bwogICAgZ2VuZXJhdGUsIGFuZCBzbyBtYWtlIHdpbGwgYWx3YXlzIGV4aXQuICBUaGUgZml4IGhlcmUgaXMgdGhhdCBpZiB0aGUgbGlua2VyCiAgICBzY3JpcHQgZG9lcyBub3QgZXhpc3QsIHRoZSBpbXBsaWNpdCBydWxlcyB0YWtlIG92ZXIgYW5kIGF0dGVtcHQgdG8gZ3Vlc3MgaG93CiAgICB0byBnZW5lcmF0ZSB0aGUgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNTU4M2NiZjczNjQ3NGVmNzU0ZTEyOGE1NGZiNzg2MzJmNTdiNDhmZApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBGZWIgMjEgMTc6Mjc6NDkgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBGaXggZXJyb25lb3VzIHVzZSBvZiBpbWFnZV9nZXRfbWFnaWMoKSBpbiBmZGMvdXNiIGNtZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDIyNDJmNTM2OTgyMmJjNzc4MGRiOTVjNDc5ODViYjQwOGVhOTE1N2IKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgRmViIDIxIDE3OjI3OjQxIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gUmVuYW1lIGFuZCBtb3ZlIHByaW50X2ltYWdlX2hkcigpIHJvdXRpbmUKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGY1MDQzM2Q2NzBlYzJlZTllOTZhYmFjNjdjZGM2ZTVlMDYxYTgxMGQKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgRmViIDIxIDE3OjIwOjIwIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQWRkIGZpdF9wYXJzZV9jb25mKCkgYW5kIGZpdF9wYXJzZV9zdWJpbWFnZSgpIHJvdXRpbmVzCgogICAgSW50cm9kdWNpbmcgcm91dGluZXMgZm9yIHBhcnNpbmcgbmV3IHVJbWFnZSBmb3JtYXQgYm9vdG0gYXJndW1lbnRzOgogICAgWzxhZGRyPl0jPGNvbmY+CQktIGNvbmZpZ3VyYXRpb24gc3BlY2lmaWNhdGlvbgogICAgWzxhZGRyPl06PHN1YmltZz4JLSBzdWJpbWFnZSBzcGVjaWZpY2F0aW9uCgogICAgTmV3IGZvcm1hdCBpbWFnZXMgY2FuIGNvbnRhaW4gbXVsdGlwbGUgc3ViaW1hZ2VzIG9mIHRoZSBzYW1lIHR5cGUuIEZvciBleGFtcGxlCiAgICBhIHNpbmdsZSBuZXcgZm9ybWF0IGltYWdlIGZpbGUgY2FuIGNvbnRhaW4gdGhyZWUga2VybmVscywgdHdvIHJhbWRpc2tzIGFuZCBhCiAgICBjb3VwbGUgb2YgRkRUIGJsb2JzLiBTdWJpbWFnZSBhbmQgY29uZmlndXJhdGlvbiBzcGVjaWZpY2F0aW9ucyBhcmUgZXh0ZW5zaW9ucwogICAgdG8gYm9vdG0gKGFuZCBvdGhlciBpbWFnZS1yZWxhdGVkIGNvbW1hbmRzKSBhcmd1bWVudHMnIHN5bnRheCB0aGF0IGFsbG93IHRvCiAgICBzcGVjaWZ5IHdoaWNoIHBhcnRpY3VsYXIgc3ViaW1hZ2Ugc2hvdWxkIGJlIG9wZXJhdGVkIG9uLgoKICAgIFN1YmltYWdlIHNwZWNpZmljYXRpb24gaXMgdXNlZCB0byBkZW5vdGUgYSBwYXJ0aWN1bGFyIHN1YmltYWdlLiBDb25maWd1cmF0aW9ucwogICAgYXJlIGEgYml0IG1vcmUgY29tcGxleCAtLSB0aGV5IGFyZSB1c2VkIHRvIGRlZmluZSBhIHBhcnRpY3VhbHIgYm9vdGluZyBzZXR1cCwKICAgIGZvciBleGFtcGxlIGEgKGtlcm5lbCwgZmR0IGJsb2IpIHBhaXIsIG9yIGEgKGtlcm5lbCwgcmFtZGlzaywgZmR0IGJsb2IpIHR1cGxlLAogICAgZXRjLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgZmZmODg4YTE5OTdmZjdkZTliMjllMjQwNTBmYzRhMGZkNDAzYmExNgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBGZWIgMjEgMTc6MjA6MTkgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgZ2VuX2dldF9pbWFnZSgpIHJvdXRpbmUKCiAgICBUaGlzIHJvdXRpbmUgYXNzdXJlcyB0aGF0IGltYWdlICh3aGV0aGVyIGxlZ2FjeSBvciBGSVQpIGlzIG5vdAogICAgaW4gYSBzcGVjaWFsIGRhdGFmbGFzaCBzdG9yYWdlLgoKICAgIElmIGltYWdlIGFkZHJlc3MgaXMgYSBkYXRhZmxhc2ggYWRkcmVzcyBpbWFnZSBpcyBtb3ZlZCB0byBzeXN0ZW0gUkFNLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgNzVkM2U4ZmJkOTNjMTRkOTkyOWQwMjRjNzVhZjJkNzQyYzc2ZGI3MApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBGZWIgMjEgMTc6MjA6MTggMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBQdWxsIGluIGxpYmZkdCBpZiBDT05GSUdfRklUIGlzIGVuYWJsZWQKCiAgICBOZXcgdUltYWdlIGZvcm1hdCAoRmxhdHRlbmVkIEltYWdlIFRyZWUpIHJlcXVpcmVzIGxpYmZkdAogICAgZnVuY3Rpb25hbGl0eSwgcHJpbnQgb3V0IGVycm9yIG1lc3NhZ2UgaWYgQ09ORklHX09GX0xJQkZEVAogICAgaXMgbm90IGRlZmluZWQuCgogICAgTmV3IHVJbWFnZSBzdXBwb3J0IGlzIGVuYWJsZWQgYnkgZGVmaW5pbmcgQ09ORklHX0ZJVCAoYW5kIENPTkZJR19PRl9MSUJGRFQpLgogICAgVGhpcyBjb21taXQgdHVybnMgaXQgb24gYnkgZGVmYXVsdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDFiYTYzOWRhNTYwNGE2NGIzZWQ4ODRhMmNiYjFjNTQxNGE5ZmE3MjgKQXV0aG9yOiBNaWNoYWVsIFNjaHdpbmdlbiA8bWljaGFlbEBzY2h3aW5nZW4ub3JnPgpEYXRlOglNb24gRmViIDE4IDIzOjE2OjM1IDIwMDggKzAxMDAKCiAgICBDRkk6IERvIG5vdCB1c2UgdW5pbml0aWFsaXplZCBjbWRfcmVzZXQKCiAgICBEbyBub3QgdXNlIHVuaW5pdGlhbGl6ZWQgY21kX3Jlc2V0OyBpc3N1ZSBib3RoIEFNRCBhbmQgSW50ZWwgcmVzZXQKICAgIGNvbW1hbmRzIGluc3RlYWQKCiAgICBGcm9tIGEgc2hvcnQgdGVzdCwgaXQgbG9va3MgbGlrZSBBTUQtc3R5bGUgZmxhc2ggcm9tcyB0cmVhdCAqYW55KiB1bmtub3duCiAgICBjb21tYW5kIHdyaXRlIGFzIGEgcmVzZXQsIGF0IGxlYXN0IHdoZW4gaW4gQ0ZJIFF1ZXJ5IG1vZGUsIHNvIGlzc3VpbmcgdGhlCiAgICBJbnRlbCByZXNldCBjb21tYW5kIHRvIEFNRC1zdHlsZSBmbGFzaHMgc2VlbXMgc2FmZSAoZnJvbSB0aGUgc21hbGwgc2FtcGxlIEkKICAgIGhhdmUpLCBwbHVzIHRoZSAzLWN5Y2xlIG1hZ2ljIHNlcXVlbmNlIHNob3VsZCBraWNrIHRoZSBzdGF0ZSBtYWNoaW5lIGludG8KICAgIHRoZSByaWdodCBzdGF0ZSBldmVuIHdpdGhvdXQgYSByZXNldCBjb21tYW5kLiBTaW5jZSB0aGUgQU1ELXN0eWxlIGZsYXNocwogICAgcmVxdWlyZSB0aGUgdW5sb2NrIHNlcXVlbmNlIGZvciByZWFsIG9wZXJhdGlvbiwgSSBjaG9zZSB0byB0cnkgdGhlIEFNRCByZXNldAogICAgY29tbWFuZCBmaXJzdCwgc28gdGhhdCBJbnRlbCBmbGFzaHMgZG8gbm8gc2VlIGFuIGludmFsaWQgY29tbWFuZCBwcmlvciB0bwogICAgdGhlIENGSSBxdWVyeS4KCiAgICBJIGhhdmUgdGVzdGVkIHRoZSBwYXRjaCBvbiBBTTI5TFYzMjAtc3R5bGUgZmxhc2hzIGZyb20gRnVqaXRzdSBhbmQgTWFjcm9uaXgsCiAgICBwbHVzIEludGVsIFN0cmF0YUZsYXNoLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgU2Nod2luZ2VuIDxtaWNoYWVsQHNjaHdpbmdlbi5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTdhODVmMjY4MzBjOWYyZTc4NTA2NDIxYzJkNTE5YTI5NjViYzdhMQpBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBGZWIgMjEgMTE6NTY6NDQgMjAwOCArMDEwMAoKICAgIEFQSTogQWRkIChjKSBhbmQgbGljZW5zaW5nIG5vdGljZSB0byB0aGUgcHVibGljIEFQSSBoZWFkZXIuCgogICAgU2lnbmVkLW9mZi1ieTogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA5MjhkMWQ3N2Y4NjIzYzEyMGQ4NzYzZTIwZTFjYTU4ZGY5YzVjNGM2CkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgpEYXRlOglUaHUgRmViIDIxIDExOjA2OjA3IDIwMDggKzAxMDAKCiAgICBGaXggQ1BVIFBPU1QgdGVzdCBmYWlsdXJlCgogICAgVGhlIENQVSBQT1NUIHRlc3QgY29kZSAocnVuIGZyb20gY3B1X3Bvc3RfZXhlY18zMSgpKSBkb2Vzbid0IGZvbGxvdyB0aGUKICAgIEFCSSBjYXJlZnVsbHksIGF0IGxlYXN0IHRoZSBDUjMsIENSNCwgYW5kIENSNSBmaWVsZHMgb2YgQ1IgYXJlIGNsb2JiZXJlZAogICAgYnkgaXQuIFRoZSBnY2MtNC4yIHdpdGggaXRzIG1vcmUgYWdncmVzc2l2ZSBvcHRpbWl6YXRpb24gZXhwb3NlcyB0aGlzIGZhY3QuCiAgICBUaGlzIHBhdGNoIGp1c3Qgc2F2ZXMgdGhlIENSIHZhbHVlIGJlZm9yZSBydW5uaW5nIHRoZSB0ZXN0IGNvZGUsIHNvIGFsbG93aW5nCiAgICBpdCB0byBkbyBhbnl0aGluZyBpdCB3YW50cyB3aXRoIENSLgoKICAgIFNpZ25lZC1vZmYtYnk6IERtaXRyeSBSYWtoY2hldiA8cmRhQGVtY3JhZnQuY29tPgogICAgQWNrZWQtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KICAgIC0tCgpjb21taXQgZDU5MDhiMDkzOTU1NDE1ZjNkMzQwNzA2Mzc4Yjk5MWY5MTFhZjY3MQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMjAgMTU6MjY6NTEgMjAwOCAtMDYwMAoKICAgIDg2MTBIUENEOiBEb2N1bWVudCB0aGUgZmxhc2hiYW5rIHNlbGVjdGlvbiBzd2l0Y2hlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE1NTFjZWU5OWFkMWQxZGEyMGZkMjNhZDI2NWRlNDc0NDg4NTJmNTYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDIwIDE0OjIyOjI2IDIwMDggLTA2MDAKCiAgICA4Nnh4OiBGaXggR1VSIFBDSSBjb25maWcgcmVnaXN0ZXJzIHByb3Blcmx5LgoKICAgIEJhY2sgaW4gY29tbWl0IDk3NWEwODNhNWVmNzg1YzQxNGIzNWY5YzViOGFlMjViMjZiNDE1MjQgd2hlcmUKICAgIEkgdHJpZWQgdG8gIjg2MTBIUENEOiBGaXggdHlwb3MgaW4gdHdvIFBDSSBzZXR1cCByZWdpc3RlcnMiLCBJCiAgICBib3RjaGVkIGl0IGR1ZSB0byBub3QgcmVhbGl6aW5nIHRoYXQgODYxMCBhbmQgODY0MSBoYWQgZGlmZmVyZW50CiAgICBHbG9iYWwgVXRpbGl0eSBSZWdpc3RlciBkZWZpbnRpb25zLCBvbmUgb2Ygd2hpY2ggd2FzIGxpa2UgODV4eCwKICAgIGFuZCB0aGUgb3RoZXIgd2Fzbid0LiAgQ29ycmVjdCB0aGlzIHByb2JsZW0gYnkgaW50cm9kdWNpbmcgdHdvCiAgICBzeW1ib2xzLCBvbmUgZm9yIGVhY2ggODZ4eCBTb0MsIGJ1dCBuZWl0aGVyIG9mIHdoaWNoIGlzIG5hbWVkCiAgICBhbnl0aGluZyBsaWtlIDg1eHguCgogICAgTXkgYmFkLiAgTG92ZWx5IFdlZG5lc2RheSB3aXRoIGdpdCBiaXNlY3QuCVlvdSBrbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2IwNmViOTYxYmRmZmM4NzI4YjM4YzI0MjQ3M2Q4MDJlODNhYjJiNApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMjAgMTI6MjQ6MTEgMjAwOCAtMDYwMAoKICAgIDg2MTBIUENEOiBEb24ndCB1c2UgVklERU8vQ0ZCX0NPTlNPTEUgYnkgZGVmYXVsdC4KCiAgICBXaXRob3V0IGFuIGFjdHVhbCBzdXBwb3J0ZWQgdmlkZW8gY2FyZCBob29rZWQgdXAsIGVuYWJsaW5nCiAgICB0aGUgQ09ORklHX1ZJREVPIGJ5IGRlZmF1bHQganVzdCBtYWtlcyBpdCBsb29rIGJyb2tlbiBieQogICAgcm91dGluZyBhbGwgY29uc29sZSBvdXRwdXQgdG8gdGhlIHZpZGVvIGNhcmQuICAgRG9uJ3QuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZDI2NGVmZjQzMTJmMjMwNzc2YjkxM2VkYWRlN2NlYjc1ZjFiMWUwCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDMwIDE1OjA4OjE1IDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogRml4IG1pc3NpbmcgY29kZSBmbGFzaCBzaXplIGZvciBNNTQ4NUVWQgoKICAgIFNpZ25lZC1vZmYtYnk6IEphbWVzIE1haGFuIDxrbWFoYW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzU0ZjkyNjNlNGUxMWUzNGIxZTcwYzE2MGJjNDY3ZWYxZDhlYzU5ZApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAzMCAxNTowNDo0MiAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IEZpeCA1MjgyIGFuZCA1MjcxIGludGVycnVwdCBtYXNrIGJpdAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nIExpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTc1YTA4M2E1ZWY3ODVjNDE0YjM1ZjljNWI4YWUyNWIyNmI0MTUyNApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBGZWIgMTkgMTI6MzE6MDggMjAwOCAtMDYwMAoKICAgIDg2MTBIUENEOiBGaXggdHlwb3MgaW4gdHdvIFBDSSBzZXR1cCByZWdpc3RlcnMuCgogICAgVGhlIHR3byBzeW1ib2xzIE1QQzg2eHhfUE9SREVWU1JfSU9fU0VMIGFuZCBNUEM4Nnh4X1BPUkJNU1JfSEEKICAgIHdlcmUgZXJyb25lb3VzbHkgcHJlc2VudCBhcyA4NXh4IG5hbWVzIGFuZCB2YWx1ZXMsIGxlZnRvdmVyIGZyb20KICAgIHRoZSBjbG9uZSB3YXJzLiAgRml4IHRoaXMgYnkgcmVtb3ZpbmcgdGhlIDg1eHggY3J1ZnQgZnJvbSB0aGUKICAgIDg2eHggY29kZWJhc2UuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxM2Y1NDMzZjcwMGQ0ZGE5ZjZmZGYyYTRiYjgwMzEwMTMzYTdjMTcwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEZlYiAxOCAxNDowMTo1NiAyMDA4IC0wNjAwCgogICAgODZ4eDogQ29udmVydCBzYmM4NjQxZCB0byB1c2UgbGliZmR0LgoKICAgIFRoaXMgaXMgdGhlIHByb3BlciBmaXggZm9yIGEgbWlzc2luZyBjbG9zaW5nIGJyYWNlIGluIHRoZSBmdW5jdGlvbgogICAgZnRfY3B1X3NldHVwKCkgbm90aWNlZCBieSBqb2UuaGFtbWFuIDxhdD4gZW1iZWRkZWRzcGVjaWFsdGllcy5jb20uCiAgICBUaGUgZnRfY3B1X3NldHVwKCkgZnVuY3Rpb24gaW4gbXBjODY0MWhwY24uYyBzaG91bGQgaGF2ZSBiZWVuCiAgICByZW1vdmVkIGVhcmxpZXIgYXMgaXQgd2FzIHVuZGVyIHRoZSBvYnNvbGV0ZSBDT05GSUdfT0ZfRkxBVF9UUkVFLAogICAgYnV0IHdhcyBtaXNzZWQuICBPbmx5LCB0aGUgc2JjODY0MWQgd2FzIG5vbWluYWxseSBzdGlsbCB1c2luZyBpdC4KICAgIEl0IGFsbCBnb3QgcmlwcGVkIG91dCwgYW5kIHRoZSBmdW5jYWxpdHkgdGhhdCB3YXMgaW4gZnRfYm9hcmRfc2V0dXAoKQogICAgd2FzIHJlZmFjdG9yZWQgdG8gcmVtb3ZlIHRoZSBDUFUgcG9ydGlvbnMgaW50byB0aGUgbmV3IGZpbGUKICAgIGNwdS9tcGM4Nnh4L2ZkdC5jIGluc3RlYWQuCU1ha2Ugc2JjODY0MWQgdXNlIHRoaXMgbm93LgoKICAgIEJhc2VkIGxvb3NlbHkgb24gYW4gb3JpZ2luYWwgcGF0Y2ggZnJvbSBqb2UuaGFtbWFuQGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwNGVmZGRjODdjNTBjODRmODVkYWQ1YzMzMWM2MzRhNmNlODMwYTgzCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIEZlYiAxNyAyMzozNTozMSAyMDA4ICswMTAwCgogICAgbXBjODZ4eDogRml4IHVudXNlZCB2YXJpYWJsZSAnY29uZmlnJyBhbmQgJ2ltbWFwJwoKICAgIGFuZCByZW1vdmUgdXNlbGVzcyBDT05GSUdfRERSX0lOVEVSTEVBVkUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDgzZDFiMzg3NjY5NWM0ZjIxZmFmZjJiNzMxZDllZjgzZjM4ZWQyMDgKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gRmViIDE3IDIzOjAzOjM2IDIwMDggKzAxMDAKCiAgICBtcGM4Nnh4OiBGaXggaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb25zICdpbml0X2xhd3MnIGFuZCAnZGlzYWJsZV9sYXcnCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBiNmYyOWM4NGMyMDhhMDkxZjk1YTEwY2JjOTg1MmQ3Mjk2NTliYTIwCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIEZlYiAxNyAxNDoxNTozMSAyMDA4ICswMTAwCgogICAgczNjMjR4MDogRml4IHVudXNlZCB2YXJpYWJsZSAnaScgaW4gZnVuY3Rpb24gJ3NlcmlhbF9pbml0X2RldicKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDA5MzdiOGQ4NjlmZGI0MmQ2YWQ0ZmUzMTI5NTg2MzliZDYyYzk3M2YKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gRmViIDE3IDE0OjE1OjMyIDIwMDggKzAxMDAKCiAgICBweGE6IGZpeCBhc3NpZ25tZW50IGZyb20gaW5jb21wYXRpYmxlIHBvaW50ZXIgdHlwZQoKICAgIGZpeCBtbWNfYnJlYWQgZnVuY3Rpb24gcHJvdG90eXBlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA2NGQ3OTIwNjNmZmY5MGI4MTE4MTc5YjA5MmZlZWUwOWZlNWNhZTEzCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIEZlYiAxNyAxNDoxNTozMCAyMDA4ICswMTAwCgogICAgYXQ5MWNhcDlhZGs6IGZpeCBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnZXRoX2luaXQnCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAzNzVjNDM1M2RiOGY5MDBmN2VjNzcyZTI2ZmFiMTE2ZWMwMGY3ZDNhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEZlYiAxNyAxNTo0Mzo0NCAyMDA4ICswMTAwCgogICAgUmVtb3ZlIGZpbGVzIGFkZGVkIGJ5IG1pc3Rha2UsIHVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBiNzM4NjU0ZDNjODRhMzBmMmJmZDlhOGQ3NjUyZmYyMDgwN2M4OTBjCkF1dGhvcjogTWlrZSBOdXNzIDxtaWtlQHRlcmFzY2FsYS5jb20+CkRhdGU6CVdlZCBGZWIgNiAxMToxMDoxMSAyMDA4IC0wNTAwCgogICAgUFBDNDQwRVB4OiBPcHRpb25hbGx5IGVuYWJsZSBzZWNvbmQgSTJDIGJ1cwoKICAgIFRoZSBvcHRpb24gQ09ORklHX0kyQ19NVUxUSV9CVVMgZG9lcyBub3QgaGF2ZSBhbnkgZWZmZWN0IG9uIFNlcXVvaWEsIHRoZQogICAgUFBDNDQwRVB4IHJlZmVyZW5jZSBwbGF0Zm9ybSwgYmVjYXVzZSBJSUMxIGlzIG5ldmVyIGVuYWJsZWQuIEFkZCBTZXF1b2lhIGJvYXJkCiAgICBjb2RlIHRvIHR1cm4gb24gSUlDMSBpZiBDT05GSUdfSTJDX01VTFRJX0JVUyBpcyBzZWxlY3RlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIE51c3MgPG1pa2VAdGVyYXNjYWxhLmNvbT4KICAgIENjOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWY1YjRmMjIxYzIyZDA1NzcwODc4NTEzOTUxNzQ1ZjIzNmI1YjQzZgpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CkRhdGU6CVR1ZSBGZWIgNSAxMDoyNjo0NCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBIQ1U0LzUuIENsZWFudXAgY29uZmlncwoKICAgIC0gaGN1NC5oOiBSZW1vdmVkIGRlZmluZSBvZiBDT05GSUdfUFBDNDA1R1ByCiAgICAtIENvcnJlY3RlZCBwaHkgYWRkcmVzc2VzCiAgICAtIEZpeCBib290IHZhcmlhYmxlcwogICAgLSBSZXNwZWN0IGxpbmUgbGVuZ3RoIG9mIDgwIGNoYXJzCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCA3NDk3MzEyNmQxYmU2M2FjNzViZGMxOTJmNDYyMzRkY2EzYTdjNDIxCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJVHVlIEZlYiA1IDExOjMxOjI4IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEhDVTQvNS4gQ2xlYW51cHMKCiAgICAtIEZpeCBzb21lIGNvZGluZyBzdHlsZSB2aW9sYXRpb25zLgogICAgLSBVc2UgaW4vb3V0X3UxNi8zMiB3aGVyZSBhcHByb3ByaWF0ZS4KICAgIC0gVXNlIHJlZ2lzdGVyIG5hbWVzIGZyb20gcHBjNDA1LmguCiAgICAtIEZpeCB0cmFjZSB1c2VhZ2UgZm9yIExhdXRlcmJhY2guCiAgICAtIFJlbW92ZSBvYnNvbGV0ZSBnZW5lcmF0aW9uIEhDVTIuCiAgICAtIFJlbmFtZWQgZml4ZWRfaGN1NF9zZHJhbSB0byBpbml0X3BwYzQwNV9zZHJhbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDhjYzEwZDA2YjgzM2VkOTE3YTE5YWQzNThjOGViYmVkOGJjMTk1NTUKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglUdWUgRmViIDUgMTA6MjY6NDEgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogUFBDNDA1R1ByIGZpeCBtaXNzaW5nIHJlZ2lzdGVyIGRlZmluaXRpb25zCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCAyMTQzOThkOWNiMjIyNjhkOWQ0Zjc1NjMzNTllZGNhMGY3ODI5N2EyCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CkRhdGU6CUZyaSBKYW4gMTggMjE6NDk6MDUgMjAwOCAtMDUwMAoKICAgIHBwYzR4eDogQmVhdXRpZnkgY29uZmlndXJhdGlvbiBmaWxlcyBmb3IgU2VxdW9pYSBhbmQgS29yYXQgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgMzBjNmEyNDFlODg0OTlmNTM2ZTg2ZDMyNTc1OWUyOWJhMDBmZjY3ZgpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJRnJpIEZlYiAxNSAyMDowOTowMSAyMDA4ICswMTAwCgogICAgV2lwZSBvdXQgYXNzZW1ibGVyIHdhcm5pbmdzIHdoaWxlIGNvbXBpbGluZyB4ODYgYmlvc2VtdQoKICAgIFRoaXMgcGF0Y2ggdHJpZXMgdG8gZ2V0IHJpZCBvZiBzb21lIGFzc2VtYmxlciB3YXJuaW5ncyBhYm91dAogICAgY2hhbmdlZCAuZ290MiBzZWN0aW9uIHR5cGUgd2hpbGUgY29tcGlsaW5nIHg4NiBiaW9zIGVtdWxhdG9yCiAgICBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCA2N2E0Mzg5ZTM5YWQ4NTNkNjViNzJlMmI3Y2FkMTVjN2U4MjkxMTQ3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIEZlYiAxNSAwMDo1NzowOSAyMDA4ICswMTAwCgogICAgUHJlcGFyZSB2MS4zLjItcmMxIHJlbGVhc2UgY2FuZGlkYXRlCgpjb21taXQgZjMzZTk2NTNjOWMwOTg2ODk5NWQ3ODg1MTFkNTczNzcxYzIwOWZlNQpBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJRnJpIEZlYiAxNSAwMDoxMzoyMCAyMDA4ICswMTAwCgogICAgRml4IGNvbXBpbGUgd2FybmluZyBvbiBsaWJfcHBjL2JvYXJkLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgZTVjNmY5ZjhiZWM0ZGZmOTYwMzQxOTE2MWUzYTE1Y2M4YWQ1ZDVmNApBdXRob3I6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KRGF0ZToJVGh1IEZlYiAxNCAxODoyMjowNCAyMDA4ICswMTAwCgogICAgQWRkIFJhZGVvbiBNb2JpbGl0eSA5MjAwIHBjaSBkZXZpY2UgaWQgdG8gdGhlIHJhZGVvbiBkcml2ZXIKCiAgICBUaGlzIHBhdGNoIGV4dGVuZHMgUENJIGRldmljZSBpZCB0YWJsZSBvZiB0aGUKICAgIHJhZGVvbiBkcml2ZXIgc28gdGhhdCB0aGUgZHJpdmVyIHdpbGwgYWxzbyBzdXBwb3J0CiAgICBSYWRlb24gTW9iaWxpdHkgOTIwMCAoTTkrKSBiYXNlZCBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IDFiODYwN2UxZjcxNDM1NDhjNjA2MmMyODM3MTQ0OWVjNjk1ODhjMDAKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CVRodSBGZWIgMTQgMTg6MTk6NTAgMjAwOCArMDEwMAoKICAgIEV4dGVuZCBBVEkgUmFkZW9uIGRyaXZlciB0byBzdXBwb3J0IG1vcmUgdmlkZW8gbW9kZXMKCiAgICBBZGRzIEFUSSBSYWRlb24gOTIwMCBzdXBwb3J0IGZvciAxMjgweDEwMjQsIDEwMjR4NzY4LAogICAgODAweDYwMCwgNjQweDQ4MCBhdCAyNCwgMTYgYW5kIDggYnBwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCA0MTI0MzgyZGUwMjlkMzYxMTYyYTRiOGNlY2M3NzNlYjhmMjZlMmE4CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIEZlYiAxMCAxNzowNToyMCAyMDA4ICswMTAwCgogICAgeHNlbmdpbmU6IGZpeCB0eXBvIGFuZCBmZXcgY29kaW5nIHN0eWxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA2ZjRhYmVlNzg5YjZkOWJlM2VjNGI5N2FkNDhmNTA5MzU1NTU5ZTllCkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxnLmxpYWtob3ZldHNraUBnbXguZGU+CkRhdGU6CUZyaSBGZWIgOCAyMToyNTo1OCAyMDA4ICswMTAwCgogICAgRml4IHdyb25nIG1lbW9yeSBsaW1pdCBjYWxjdWxhdGlvbiBpbiBtZW1vcnktdGVzdAoKICAgIElmIHRoZSBsZW5ndGggb2YgdGhlIG1lbW9yeSBhZGRyZXNzIHJhbmdlIHBhc3NlZCB0byB0aGUgIm10ZXN0IiBjb21tYW5kIGlzCiAgICBub3Qgb2YgdGhlIGZvcm0gMl54IC0gMSwgbm90IGFsbCBhZGRyZXNzIGxpbmVzIGFyZSB0ZXN0ZWQuIFRoaXMgYnVnIGlzCiAgICBpbmhlcml0ZWQgZnJvbSB0aGUgb3JpZ2luYWwgc29mdHdhcmUgYXQKICAgIGh0dHA6Ly93d3cubmV0cmluby5jb20vRW1iZWRkZWQtU3lzdGVtcy9Ib3ctVG8vTWVtb3J5LVRlc3QtU3VpdGUtQy4gRml4CiAgICB0aGlzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8Zy5saWFraG92ZXRza2lAZ214LmRlPgoKY29tbWl0IDdlMzBmNWVhYzdmMDcwODJhN2NhNzdiN2Q5MWI5NDRhOGQwYWY2ZGIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgRmViIDE1IDAwOjExOjM5IDIwMDggKzAxMDAKCiAgICBDb2RpbmcgU1R5bGUgY2xlYW51cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGY2OTIxZTNkYzMzMTI5M2M4NzNlYzRkMTA5ZmQ1NTE3YTQyYTkwYjMKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVR1ZSBGZWIgNSAxMzozMDo0MyAyMDA4ICswOTAwCgogICAgc2g6IEZpeCByZWdpc3RlciBhZGRyZXNzIG9mIFNINzcyMgoKICAgIFRoZSBhZGRyZXNzIG9mIFNINzcyMiBpcyB3cm9uZyBieSBvbGQgZG9jdW1lbnQuCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoaXMgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMGVjN2EwNjFmYjFjMjc3ZjZhZmQ3M2Q2MWRkNzFiZDIxZTdlZjdiMgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE3OjQ0OjIzIDIwMDggLTA1MDAKCiAgICBvbmx5IHVwZGF0ZSB2ZXJzaW9uIGhlYWRlciBhcyBuZWVkZWQKCiAgICBDb25zdGFudGx5IHJlYnVpbGRpbmcgdGhlIHZlcnNpb24gaGVhZGVyIHdpbGwgZm9yY2UgdXNlbGVzcyByZWxpbmtpbmcsIHNvIHdlCiAgICBzaW1wbHkgbmVlZCB0byBjb21wYXJlIHRoZSBuZXcgaGVhZGVyIHdpdGggdGhlIGV4aXN0aW5nIG9uZSBiZWZvcmUgdXBkYXRpbmcKICAgIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAyMDg0NDdmOGU5NTNmMzQ3NDI1ZWI5MmM4ZTI4ZDU5ZTZkOTExMzYzCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gSmFuIDI4IDA1OjU2OjE5IDIwMDggLTA1MDAKCiAgICBEbyBub3Qgc3BlY2lmeSBhIENST1NTX0NPTVBJTEUgZGVmYXVsdCB3aGVuIGV4ZWN1dGluZyBzaXplCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDFmNzgwYWE2ZjE3YTVkNzk3OTFkNjllYzFkMmY2NmQ3NmFjNDVkOGUKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGcubGlha2hvdmV0c2tpQGdteC5kZT4KRGF0ZToJV2VkIEZlYiAxMyAxMToxOToxOSAyMDA4ICswMTAwCgogICAgRml4IHJldHVybiB2YWx1ZSBvZiBtdGVzdCB3aGVuIENGR19BTFRfTUVNVEVTVCBzZXQKCiAgICBGaXggYSBtaXNzaW5nIHJldHVybiBzdGF0ZW1lbnQgZnJvbSBhIG5vbi12b2lkIGZ1bmN0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8Zy5saWFraG92ZXRza2lAZ214LmRlPgoKY29tbWl0IDk0M2FmYTIyOWNmNWJmNzBlZjkxN2M3ZWI2YmQwZGI1OWExYmE2MDIKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDkgMTQ6MzU6MjYgMjAwOCAtMDYwMAoKICAgIDg1eHgsIDg2eHg6IERldGVybWluZSBJMkMgY2xvY2sgZnJlcXVlbmNpZXMgYW5kIHN0b3JlIGluIGdsb2JhbF9kYXRhCgogICAgVXBkYXRlIGdsb2JhbF9kYXRhIHRvIGRlZmluZSBpMmMxX2NsayBhbmQgaTJjMl9jbGsgdG8gODV4eCBhbmQgODZ4eC4KCiAgICBVcGRhdGUgdGhlIGdldF9jbG9ja3MoKSBmdW5jdGlvbiBpbiA4NXh4IGFuZCA4Nnh4IHRvIGRldGVybWluZSB0aGUgSTJDCiAgICBjbG9jayBmcmVxdWVuY3kgYW5kIHN0b3JlIGl0IGluIGdkLT5pMmMxX2NsayBhbmQgZ2QtPmkyYzJfY2xrLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjkzMWIzYTljM2JkZmFhZWFhNzFlNTdhNjAyNmVlYzcyNjAwNWIwOApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBGZWIgMTQgMjM6MTg6MDEgMjAwOCArMDEwMAoKICAgIFRRTTgzNHg6IGNsZWFuIHVwIGNvbmZpZ3VyYXRpb24KCiAgICBHZXQgYm9hcmQgbmFtZSBjb25zaXN0ZW50IHdpdGggTGludXggYW5kIGVsc2V3aGVyZTsKICAgIGdldCByaWQgb2YgbG9jYWwgbmV0d29yayBkZWZpbml0aW9ucyBldGMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAzOGNjMDljNTViMWQ3ZjIzMzc4OTA1MmM2ZmM0NjJlNTM3NzY2OWE5CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVGh1IEZlYiAxNCAwODowMjoxMiAyMDA4ICswMTAwCgogICAgVEZUUDogZml4IHNlYXJjaCBvZiAnOicgaW4gQm9vdEZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDBiYzllZmFkYTE3MDA5NmM2YjI3M2YxOTE2NWUzMjkzNmQzMzBkODAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgRmViIDE0IDIyOjQ2OjU1IDIwMDggKzAxMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cDsgdXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGU3NjcwZjZjMWU1MmFlNmQyYTQzZmY3NWE4YmNmYTdhNWM4NmU0N2IKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgRmViIDE0IDIyOjQzOjIyIDIwMDggKzAxMDAKCiAgICBQUEM6IFVzZSByMiBpbnN0ZWFkIG9mIHIyOSBhcyBnbG9iYWwgZGF0YSBwb2ludGVyCgogICAgUjI5IHdhcyBhbiB1bmx1Y2t5IGNob2ljZSBhcyB3aXRoIHJlY2VudCB0b29sY2hhaW5zIChnY2MtNC4yLngpIGdjYwogICAgd2lsbCByZWZ1c2UgdG8gdXNlIGxvYWQvc3RvcmUgbXVsdGlwbGUgaW5zbnM7IGluc3RlYWQsIGl0IGlzc3VlcyBhCiAgICBsaXN0IG9mIHNpbXBsZSBsb2FkL3N0b3JlIGluc3RydWN0aW9ucyB1cG9uIGZ1bmN0aW9uIGVudHJ5IGFuZCBleGl0LAogICAgcmVzdWx0aW5nIGluIGJpZ2dlciBjb2RlIHNpemUsIHdoaWNoIGluIHR1cm4gbWFrZXMgdGhlIGJ1aWxkIGZvciBhCiAgICBmZXcgYm9hcmRzIGZhaWwuCgogICAgVXNlIHIyIGluc3RlYWQuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAzYzIzNGVmYTY5M2JjNTk5MDZjMmJlNTVjNzkxOGVjYmI1NTM5MmVhCkF1dGhvcjogVXdlIEtsZWluZS1Lw7ZuaWcgPFV3ZS5LbGVpbmUtS29lbmlnQGRpZ2kuY29tPgpEYXRlOglXZWQgSmFuIDMwIDA5OjA4OjQ5IDIwMDggKzAxMDAKCiAgICBBUk06IG1ha2UgdGhlIG1hY2hpZCBjb25maWd1cmFibGUgdmlhIHRoZSBlbnZpcm9ubWVudAoKICAgIElmIHRoZSB2YXJpYWJsZSAibWFjaGlkIiBleGlzdHMsIGxldCBkb19ib290bV9saW51eCB1c2UgdGhhdCBpbnN0ZWFkCiAgICBvZiBiZC0+YmlfYXJjaF9udW1iZXIuCgogICAgU2lnbmVkLW9mZi1ieTogVXdlIEtsZWluZS1L9m5pZyA8VXdlLktsZWluZS1Lb2VuaWdAZGlnaS5jb20+Cgpjb21taXQgZGQyNDA1ODQwN2M1YWRkNDVjYzYwYWVjNmM3NTdkZGMxYTE3ZTFiMApBdXRob3I6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgpEYXRlOglXZWQgSmFuIDIzIDE2OjM0OjQ2IDIwMDggKzAyMDAKCiAgICBVc2UgI2lmZGVmIENPTkZJR19GU0xETUFGRUMKCiAgICBNQ0RfdGFza3MuYyBsYWNrcyBbc3ViamVjdF0gc28gY29tcGlsYXRpb24gb2YgbWlwcyB0YXJnZXRzIChhbmQgbW9yZSwgcHJvYmFibHkpCiAgICBmYWlscwoKICAgIFNpZ25lZC1vZmYtYnk6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgoKY29tbWl0IDI2YzdiYWI4MWUwOGRjN2JkNjk2YzQ4Zjc1MzQyOGE4Mjk2MjliZDgKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgSmFuIDE5IDEwOjI1OjU5IDIwMDggKzA5MDAKCiAgICBjb21tb24vbWlpcGh5dXRpbC5jOiBDbGVhbnVwIE1JSV9ERUJVRyBhbmQgZGVidWcoKQoKICAgIEN1cnJlbnQgTUlJX0RFQlVHIGlzIGNvbmZ1c2luZyBpbiB0d28gd2F5cy4gT25lIGlzIHVzZWxlc3MgZGVmaW5lLXRoZW4tCiAgICB1bmRlZiBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlLiBUaGUgb3RoZXIgaXMgdGhlcmUgaXMgb25seSBvbmUgZGVidWcoKSBpbgogICAgdGhpcyBmaWxlLCBhbmQgdGhhdCBkb2Vzbid0IHNlZW0gd29ydGh3aGlsZSB0byBib3RoZXIgaGF2aW5nIE1JSV9ERUJVRy4KICAgIFdoaWxlIHRoZXJlIGFyZSBtYW55IHVzZWZ1bCBwcmludGYoKS9wdXRzKCkgZGVidWcgY29kZXMsIGJ1dCB0aGV5IGFyZSBmb3IKICAgIERFQlVHLCBub3QgZm9yIE1JSV9ERUJVRy4KCiAgICBUaGlzIHBhdGNoIHRyaWVzIHRvIHB1dCB0aGVtIGFsbCB0b2dldGhlciBpbnRvIE1JSV9ERUJVRyBhbmQgZGVidWcoKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDc1MWI5YjUxODlmMzI3NGIwM2M4MDkxNzI2MzEzMTZkNmIwMDJjODIKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxrbXBhcmtAaW5mcmFkZWFkLm9yZz4KRGF0ZToJVGh1IEphbiAxNyAxNjo0MzoyNSAyMDA4ICswOTAwCgogICAgT25lTkFORCBJbml0aWFsIFByb2dyYW0gTG9hZGVyIChJUEwpIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGVuYWJsZXMgdGhlIE9uZU5BTkQgYm9vdCB3aXRoaW4gVS1Cb290LgogICAgQmVmb3JlIHRoaXMgd29yaywgd2UgdXNlZCBhbm90aGVyIE9uZU5BTkQgSVBMIGNhbGxlZCBYLUxvYWRlciBiYXNlZAogICAgb24gb3BlbiBzb3VyY2UuIFdpdGggdGhpcyB3b3JrLCB3ZSBjYW4gYnVpbGQgdGhlIG9uZWJvb3QuYmluIGltYWdlCiAgICB3aXRob3V0IG90aGVyIHByb2dyYW0uCgogICAgVGhlIGJ1aWxkIHNlcXVlbmNlIGlzIHNpbXBsZS4KICAgIEZpcnN0LCBpdCBjb21waWxlcyB0aGUgdS1ib290LmJpbgogICAgU2Vjb25kLCBpdCBjb21waWxlcyBPbmVOQU5EIElQTAogICAgRmluYWxseSwgaXQgYmVjb21lcyB0aGUgb25lYm9vdC5iaW4gZnJvbSBPbmVOQU5EIElQTCBhbmQgdS1ib290LmJpbgogICAgVGhlIG1lY2hhbmlzbSBpcyBzaW1pbGFyIHdpdGggTkFORCBib290IGV4Y2VwdCBpdCBib290cyBmcm9tIGl0c2VsZi4KCiAgICBBbm90aGVyIHRoaW5nIGlzIHRoYXQgeW91IGNhbiBvbmx5IHVzZSB0aGUgT25lTkFORCBJUEwgb25seSB0byB3b3JrCiAgICBvdGhlciBib290bG9hZGVyIHN1Y2ggYXMgUmVkQm9vdCBhbmQgc28gb24uCgogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCAyMWY2Zjk2MzZmMGU5NzgzOTc1NDg3NTEzNDc0MjVmYmY4ZDQyYmIzCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDE2IDEzOjA2OjU5IDIwMDggLTA2MDAKCiAgICBGaXggQ09ORklHX01NQyB1c2FnZSBpbiBmYXQgY29kZQoKICAgIEEgI2lmIHN0YXRlbWVudCBpbiBmYXQuYyBkZXBlbmRlZCBvbiBDT05GSUdfTU1DLCBpbnN0ZWFkIG9mCiAgICBkZWZpbmVkKENPTkZJR19NTUMpLiAgVGhpcyBtZWFudCBDT05GSUdfTU1DIG5lZWRlZCB0byBiZSBkZWZpbmVkCiAgICBhcyAiMSIgcmF0aGVyIHRoYW4ganVzdCBkZWZpbmVkLiAgTm93IGl0J3MgYmV0dGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNTdkN2QzNjRjZTE4OWUzOWIwYTY0MzM4ZDJmODAxMmMwNzRhMmJkCkF1dGhvcjogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiAxNSAxMjo1MjozMSAyMDA4ICswMTAwCgogICAgcHBjOiBSZWZhY3RvciBjYWNoZSByb3V0aW5lcywgc28gdGhlcmUgaXMgb25seSBvbmUgY29tbW9uIHNldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgoKY29tbWl0IDNmMmFjOGY5MjhjNzZjYmQyMzc0NDM3YjJkMDc5ZjhiNDMyNGFhYmEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSmFuIDIzIDE1OjU1OjAyIDIwMDggLTA2MDAKCiAgICA4Nnh4OiBGaXggY29tcGlsYXRpb24gd2FybmluZyBpbiBzeXNfZXByb20uYwoKICAgIHN5c19lZXByb20uYzo4Mjo5OiB3YXJuaW5nOiB1bmtub3duIGVzY2FwZSBzZXF1ZW5jZSAnXC8nCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2NTIzMDEwNzAyNTczM2U4OWUyOGZkNWU1Y2ZkOTE2ZDQ5NTNjMjhhCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbiBhdD4KRGF0ZToJRnJpIEZlYiAyMiAxMTo0MDo1MCAyMDA4ICswMDAwCgogICAgTW92ZSBBVDkxUk05MjAwREsgYm9hcmQgc3VwcG9ydCB1bmRlciBib2FyZC9hdG1lbAoKICAgIFdlIGFscmVhZHkgaGF2ZSBhIHZlbmRvciBzdWJkaXIgZm9yIEF0bWVsLCBzbyB3ZSBzaG91bGQgdXNlIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW4gPGF0PiBhdG1lbC5jb20+Cgpjb21taXQgNmQwOTQzYTZiZTk5OTc3ZDZkODUzZDUxNzQ5ZTk5NjNkNjhlYjE5MgpBdXRob3I6IEFuZHJlYXMgRW5nZWwgPGFuZHJlYXMuZW5nZWxAZXJpY3Nzb24uY29tPgpEYXRlOglNb24gSmFuIDE0IDA5OjA2OjUyIDIwMDggKzAwMDAKCiAgICBBUk06IGNsZWFudXAgZHVwbGljYXRlZCBleGNlcHRpb24gaGFuZGxpbmdjb2RlCgogICAgTW92ZSBkdXBsaWNhdGVkIGV4Y2VwdGlvbiBoYW5kbGluZyBjb2RlIGludG8gbGliX2FybS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmRyZWFzIEVuZ2VsIDxhbmRyZWFzLmVuZ2VsQGVyaWNzc29uLmNvbT4KCmNvbW1pdCBlYThkOTg5ZjRlZjgyMDNlMWMwMjkxZTYyNDM1YThjNjJlM2NmYjI5CkF1dGhvcjogVGltbyBUdXVuYWluZW4gPHRpbW8udHV1bmFpbmVuQHN5c2FydC5maT4KRGF0ZToJRnJpIEZlYiAxIDEwOjA5OjAzIDIwMDggKzAwMDAKCiAgICBTdXBwb3J0IGZvciBBcnRpbGEgTS01MDEgc3RhcnRlciBraXQKCiAgICBLaW1tbyBMZXBwYWxhIC8gU3lzYXJ0IGFuZAogICAgVGltbyBUdXVuYWluZW4gLyBTeXNhcnQKCmNvbW1pdCA5NjA0YjZlNTNkZGFlNGZlMDBhNDg4Y2JjZDZiMGU2Y2IzNDRiY2NjCkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJTW9uIEZlYiAxMSAxMDo1MDoxOSAyMDA4ICswMDAwCgogICAgQVQ5MUNBUDkgc3VwcG9ydAoKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgIHJlYWRfZGF0YWZsYXNoKCkgdGFrZXMgYSBzaWduZWQgY2hhciBwb2ludGVyIGFzIGEgcGFyYW1ldGVyLiBTaWxlbmNlIGEKICAgIGZldyB3YXJuaW5ncyBkdWVzIHRvIGluY29ycmVjdCBwYXJhbWV0ZXIgdHlwZXMgaW4gZW52X2RhdGFmbGFzaC5jLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+Cgpjb21taXQgNjRlOGEwNmFmNjhjZGExNzRhOGEwNmQwYTYxZmNlNWU1YmIxODlkNwpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+CkRhdGU6CVRodSBGZWIgNyAwOTo0Mjo1NyAyMDA4ICswMDAwCgogICAgQVQ5MUNBUDkgc3VwcG9ydCA6IG1vdmUgYm9hcmQgZmlsZXMgdG8gQXRtZWwgdmVuZG9yIGRpcmVjdG9yeS4KCiAgICBBVDkxQ0FQOSBzdXBwb3J0IDogbW92ZSBhdDkxY2FwOWFkayBib2FyZCBmaWxlcyB0byBBdG1lbCB2ZW5kb3IgZGlyZWN0b3J5LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuQHBvcGllcy5uZXQ+Cgpjb21taXQgNzI2M2VmMTkxYjg3ZGE5NDc2OGY3NjJjNzA5M2JlZGViNzBkYjk4ZgpBdXRob3I6IFN0ZWxpYW4gUG9wIDxzdGVsaWFuIGF0PgpEYXRlOglUaHUgSmFuIDMgMjE6MTU6NTYgMjAwOCArMDAwMAoKICAgIEFUOTFDQVA5IHN1cHBvcnQgOiBNQUNCIGNoYW5nZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbiA8YXQ+IHBvcGllcy5uZXQ+CiAgICBBY2tlZC1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbiA8YXQ+IGF0bWVsLmNvbT4KCmNvbW1pdCA2YWZjYWJmMTFkNzMyMTg1MGY0ZmVhYWRmZWU4NDE0ODhhY2U1NGM1CkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJVGh1IEZlYiA3IDE2OjM3OjU0IDIwMDggKzAwMDAKCiAgICBBVDkxQ0FQOSBzdXBwb3J0IDogYm9hcmQvIGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KCmNvbW1pdCBmZWZiNmMxMDkyOGNhYTllNzEzMzVjYWQ2NGRjYjY1YzgzZmNlOGFiCkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW4gYXQ+CkRhdGU6CVdlZCBKYW4gMzAgMjE6MTU6NTQgMjAwOCArMDAwMAoKICAgIEFUOTFDQVA5IHN1cHBvcnQgOiBjcHUvIGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW4gPGF0PiBwb3BpZXMubmV0PgoKY29tbWl0IGZhNTA2YTkyNmNlYzM0ODgwNTE0MzU3NmM5NDFmOGU2MWIzMzNjYzAKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglUaHUgSmFuIDMxIDIxOjE1OjUzIDIwMDggKzAwMDAKCiAgICBBVDkxQ0FQOSBzdXBwb3J0IDogaW5jbHVkZS8gZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IDIwYjE5N2M2ZjI3OTlhZjM5OWE2OGY5NmExYWZmNTQzYTc1NjIxYjgKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglTdW4gSmFuIDIwIDE5OjQ5OjIxIDIwMDggKzAwMDAKCiAgICBBVDkxQ0FQOSBzdXBwb3J0IDogYnVpbGQgaW50ZWdyYXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IGQ0OWZlNGJlZDViNjllYzkxMDkwOWQxYmQ2MmRhMjNlY2Q4ODAxZmQKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglTdW4gSmFuIDIwIDIxOjA3OjAwIDIwMDggKzAwMDAKCiAgICBJbXByb3ZlIERhdGFGbGFzaCBDUyBkZWZpbml0aW9uLgoKICAgIFVzZSBhIHN0cnVjdHVyZSBpbnN0ZWFkIG9mIHRoZSBlcnJvciBwcm9uZSB1bm5hbWVkIGFycmF5IHRvCiAgICBkZWZpbmUgdGhlIHBvc3NpYmxlIGRhdGFmbGFzaCBiYW5rcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IGE2Y2RkMjFiNTYwMTQyMDg3MDYyMzg3MTJhODUzYTllOWEwYTIyOTAKQXV0aG9yOiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgpEYXRlOglTYXQgSmFuIDE5IDIxOjA5OjM1IDIwMDggKzAwMDAKCiAgICBGaXggYXJtOTI2ZWpzIGNvbXBpbGUgd2hlbiBTS0lQX0xPV0xFVkVMX0lOSVQgaXMgb24KCiAgICBGaXggYXJtOTI2ZWpzIGNvbXBpbGUgd2hlbiBTS0lQX0xPV0xFVkVMX0lOSVQgaXMgb24uCgogICAgY3B1L2FybTkyNmVqcy9zdGFydC5vOiBJbiBmdW5jdGlvbiBgY3B1X2luaXRfY3JpdCc6CiAgICAuLi4vY3B1L2FybTkyNmVqcy9zdGFydC5TOjIyNzogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgbG93bGV2ZWxfaW5pdCcKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVsaWFuIFBvcCA8c3RlbGlhbkBwb3BpZXMubmV0PgoKY29tbWl0IGVhNjg2ZjUyZTQ1YjNkZjI5Mzg4NjZkM2Y1YTk4YmIyNTU2ZGZlMmIKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglGcmkgRmViIDEgMTY6NTA6MjQgMjAwOCArMDAwMAoKICAgIEZpeCB0aW1lciBvdmVyZmxvdyBpbiBEYVZpbmNpCiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdtYWlsLmNvbT4KCmNvbW1pdCBmNGU3Y2JmY2IwZmNiYzMyNWEyYmNmZWE3ZTAwZTNkZDM3ZjkzODQ2CkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJRnJpIEZlYiAxIDE2OjQ5OjA4IDIwMDggKzAwMDAKCiAgICBVcGRhdGUgYm9hcmQgTmV0U3RhcgogICAgU2lnbmVkLW9mZi1ieTogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgoKY29tbWl0IGI3ZjYxOTNlNzY2NTFlMWZkNjA2ZTQ2ZWIxMTkxNWI1M2NiNjYxOGIKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglUdWUgRmViIDUgMTA6MjY6NDIgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogSENVNC81LiBGaXggbWFrZSBPPS4uL3h4CgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCAyOWUzNTAwY2JjNDNjODllZmY2ZTcyMGNhODNlMzc1ZGVlZWNkOWIzCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CkRhdGU6CVR1ZSBKYW4gMjIgMDg6NTE6NTkgMjAwOCAtMDUwMAoKICAgIHBwYzR4eDogQWRkIENPTkZJR180eHhfRENBQ0hFIGNvbXBpbGUgc3dpdGNoIHRvIERlbmFsaS1jb3JlIFNQRCBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgZmU4OTFlY2Y0ZDE4N2U5ZDExZGRlODY5ZWQ0NjIzYWY1MmI1NDQ1MQpBdXRob3I6IEhpcm9zaGkgSXRvIDxpdG9AbWxiLmNvLmpwPgpEYXRlOglUaHUgSmFuIDMxIDE4OjM1OjA0IDIwMDggKzA5MDAKCiAgICBORlMgVGltZW91dCB3aXRoIGxhcmdlIGZpbGVzLgoKICAgIFJldHJ5IHRvIHNlbmQgTkZTIHBhY2tldCBiZWZvcmUgcmVhY2hpbmcgdGltZW91dC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIaXJvc2hpIEl0byA8aXRvQG1sYi5jby5qcD4KCmNvbW1pdCA4OGY3MjUyN2Y1Yjg5YzA5MDVhZDVjMzZjYzJlZjhkMjlkZDZiYmYwCkF1dGhvcjogSm9oYW5uZXMgU3RlemVuYmFjaCA8anNAc2lnMjEubmV0PgpEYXRlOglUdWUgSmFuIDI5IDAwOjExOjI1IDIwMDggKzAxMDAKCiAgICBBZGQgZGVwZW5kZW5jaWVzIHRvIGF2b2lkIHJhY2UgY29uZGl0aW9ucyB3aXRoIHBhcmFsbGVsIG1ha2UuCgogICAgU2lnbmVkLW9mZi1ieTogSm9oYW5uZXMgU3RlemVuYmFjaCA8anNAc2lnMjEubmV0PgoKY29tbWl0IDZkMWI2ZjlmODljODE1ZWFjYTQ0YWNmZjhlNzNlY2U3MTgxZjYxYjYKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBKYW4gMjggMDU6NDY6MDEgMjAwOCAtMDUwMAoKICAgIE1hcmsgYm9hcmRfaW5pdF9bZnJdIGFzIG5vcmV0dXJuCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDE2MWIyYWY0ZDdiNDhmZDYwMmNlMzMzYzM1NWE0ZGYwMzM3ODkyYmIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBKYW4gMjggMDU6Mjg6NTAgMjAwOCAtMDUwMAoKICAgIE9ubHkgdXNlIFRFWFRfQkFTRSBpZiBkZWZpbmVkIGJ5IHRoZSBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAxYjc2OTg4MTc1MDAzMGYxMDc0MzgwOGI5ZDYwMTNlMTFmNTU5MzUwCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIEphbiAyNSAwNzo1NDo0NyAyMDA4ICswMTAwCgogICAgRml4IHJlbWFpbmluZyBDT05GSUdfQ09NTUFORFMKCiAgICB1cGRhdGUgY29tbWVudHMKICAgIEZpeCBjb2Rpbmcgc3R5bGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDBjOWQ0MmU2YjBiODNkNTA3MzM1YTI5MWUzZWE5OTI0MDAzOGY0YjkKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglNb24gSmFuIDIxIDE2OjQ2OjAwIDIwMDggKzAxMDAKCiAgICBBZGQgKn4gdG8gLmdpdGlnbm9yZQoKICAgIE9uZSBzaG91bGQgbmV2ZXIgYWRkIGEgYmFja3VwIGZpbGUgZW5kaW5nIGluIHdpdGggfiB0byB0aGUgZ2l0IHJlcG9zaXRvcnkuCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCAzY2ZiMGM1MWIyYmI1ZWRlNTRlY2E4NWFjZTViMWJhMTJiZTMxNGIwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEphbiAxNyAwMDowMjoxMCAyMDA4IC0wNjAwCgogICAgUmVtb3ZlIGR1cGxpY2F0ZSBkZWZpbmVzIGZvciBBUlJBWV9TSVpFCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBjNzdjZTQ3NGIxYzU3YjEzZTlkMzZkOTgzMGYxNDc5NjZjMTQzNjk0CkF1dGhvcjogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KRGF0ZToJTW9uIEphbiAxNCAyMjowODoxNCAyMDA4ICswMTAwCgogICAgRml4IGluY29ycmVjdCBhZGRyZXNzIHRlc3QgaW4gQVQ5MUZfRGF0YWZsYXNoU2VsZWN0KCkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlbGlhbiBQb3AgPHN0ZWxpYW5AcG9waWVzLm5ldD4KCmNvbW1pdCBkOWFkMTE1YmJmN2JiMDg0MmRlN2RiZDI1MDJiN2U0MzBmODNjYzNkCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEZlYiAxMyAxNTowOTo1OCAyMDA4IC0wNjAwCgogICAgRml4IGJ1aWxkaW5nIG9mIGZkdF9zdXBwb3J0LmMgaWYgREVCVUcgc2V0CgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBjY2Q2ZTE0NjRlNTM5NmJjMWE5YWViZjcwNzdkZGY0MzQyZWFmZTAzCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEZlYiAxMiAxNDo1MzoyOCAyMDA4IC0wNjAwCgogICAgQWRkIENGR19NUEM4Nnh4X0REUl9BRERSIGFuZCBDRkdfTVBDODZ4eF9ERFIyX0FERFIgc3ltYm9scwoKICAgIFRoZXNlIHJlcGxhY2UgZGlyZWN0IHN0cnVjdHVyZSByZWZlcmVuY2VzIGZvciBJTU1SIHNlY3Rpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzYyNzc2YmU4ZGNhNDA5N2NhMDNkNGY5NDE1ZjA4ZDQ4ODdiNDVkMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMTIgMDA6NDU6MDYgMjAwOCArMDEwMAoKICAgIEdldCByaWQgb2YgIiN1bmRlZiBERUJVRyIgZnJvbSBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA3M2JmMWUyZGU3ODYyYmNkYmQ1YTlmOTkzYjNlODRiNjdjOGVhOWM4CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAxNSAxNzowOTo0MSAyMDA4IC0wNjAwCgogICAgUmVtb3ZlICN1bmRlZiBERUJVRyBmcm9tIE1QQzgzeHggYm9hcmQgaGVhZGVyIGZpbGVzCgogICAgUmVtb3ZlIHRoZSAiI3VuZGVmIERFQlVHIiBsaW5lIGZyb20gYWxsIEZyZWVzY2FsZSA4M3h4IGJvYXJkIGhlYWRlciBmaWxlcy4KICAgIFRoZSBpbmNsdXNpb24gb2YgdGhpcyBsaW5lIG1ha2VzIGl0IGltcG9zc2libGUgdG8gZW5hYmxlIGRlYnVnIGNvZGUgaW4KICAgIG90aGVyIHNvdXJjZSBmaWxlcywgYmVjYXVzZSAiI2RlZmluZSBERUJVRyIgdHlwaWNhbGx5IG5lZWRzIHRvIGJlIGRlZmluZWQKICAgIGJlZm9yZSBhbnkgaGVhZGVyIGZpbGVzIGFyZSBpbmNsdWRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY5MDE4Y2UyZTA4NmU5Y2FmMzViOTE0ZDY3NWI4MmJjNDg4OGYwNzcKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDE3IDA4OjI1OjQ1IDIwMDggLTA2MDAKCiAgICBRRTogTW92ZSBGRFQgc3VwcG9ydCBpbnRvIGEgY29tbW9uIGZpbGUKCiAgICBNb3ZlIHRoZSBmbGF0IGRldmljZSB0cmVlIHNldHVwIGZvciBRRSByZWxhdGVkIGRldmljZXMgaW50bwogICAgYSBjb21tb24gZmlsZSBzaGFyZWQgYmV0d2VlbiA4M3h4ICYgODV4eCBwbGF0Zm9ybXMgdGhhdCBoYXZlIFFFJ3MuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA1Y2Y3NDZjMzAzNzEwMzI5ZjgwNDBkOWM2MmVlMzU0MzEzZTNlOTFmCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEphbiAzMSAxMzo1OTowOSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIE1vdmUga2VybmVsIGRhdGEgZmluZCBjb2RlIHRvIGdldF9rZXJuZWwoKSByb3V0aW5lCgogICAgVmVyaWZpY2F0aW9uIG9mIHRoZSBrZXJuZWwgaW1hZ2UgKGluIG9sZCBmb3JtYXQpIGFuZCBmaW5kaW5nIGtlcm5lbAogICAgZGF0YSBpcyBtb3ZlZCB0byBhIGRlZGljYXRlZCByb3V0aW5lLiBUaGUgcm91dGluZSB3aWxsIGFsc28gaG9sZAogICAgc3VwcG9ydCBmb3IsIHRvIGJlIGFkZGVkLCBuZXcgaW1hZ2UgZm9ybWF0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgN2IzMjU0NTRmZDIzMWQ0MjczZGUzZmUzNzM4NTBmNzc3ZmIwODZiZgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBKYW4gMzEgMTM6NTg6MjAgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBDbGVhbnVwIEZEVCBoYW5kbGluZyBpbiBQUEMgZG9fYm9vdF9saW51eCgpCgogICAgTW92ZSBGRFQgYmxvYiBmaW5kaW5nIGFuZCByZWxvY2F0aW9uIHRvIGEgZGVkaWNhdGVkCiAgICBnZXRfZmR0KCkgcm91dGluZS4gSXQgaW5jcmVhc2VzIGNvZGUgcmVhZGFiaWxpdHkgYW5kCiAgICB3aWxsIG1ha2UgYWRkaW5nIHN1cHBvcnQgZm9yIG5ldyB1SW1hZ2UgZm9ybWF0IGVhc2llci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGI2YjBmZTY0NjBiNzA2M2FjNjBiOWEzNTMxZWYyMTBhZWRiMzE0NTEKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgSmFuIDMxIDEzOjU4OjEzIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQ2xlYW51cCBkb19ib3RtX2xpbnV4KCkgYm9vdCBhbGxvY2F0aW9ucwoKICAgIFRoaXMgcGF0Y2ggbW92ZXMgY29tbW9uIHByZS1ib290IGFsbG9jYXRpb24gc3RlcHMgc2hhcmVkIGJldHdlZW4gUFBDCiAgICBhbmQgTTY4SyB0byBhIGhlbHBlciByb3V0aW5lczoKCiAgICBjb21tb246CiAgICAtIGdldF9ib290X3NwX2xpbWl0KCkKICAgIC0gZ2V0X2Jvb3RfY21saW5lKCkKICAgIC0gZ2V0X2Jvb3Rfa2JkKCkKCiAgICBwbGF0Zm9ybToKICAgIC0gc2V0X2Nsb2Nrc19pbl9taHooKQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgY2VhZWQyYjFlNTRlYmYxNGQ2MDBlMDJmZWYwMTZjOGRmNWNjNGQ0MApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBKYW4gMzEgMTM6NTc6MTcgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBNb3ZlIHJhbWRpc2sgbG9hZGluZyB0byBhIGNvbW1vbiByb3V0aW5lCgogICAgUmFtZGlzayBsb2FkaW5nIGNvZGUsIGluY2x1ZGluZyBpbml0cmRfaGlnaCB2YXJpYWJsZSBoYW5kbGluZywKICAgIHdhcyBkdXBsaWNhdGVkIGZvciBQUEMgYW5kIE02OEsgcGxhdGZvcm1zLiBUaGlzIHBhdGNoIGNyZWF0ZXMKICAgIGNvbW1vbiBoZWxwZXIgcm91dGluZSB0aGF0IGlzIGJlaW5nIGNhbGxlZCBmcm9tIGJvdGggcGxhdGZvcm0KICAgIGRvX2Jvb3RtX2xpbnV4KCkgcm91dGluZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA2OGQ0ZjA1ZTZiMjM4M2E0NDJmYjcxZjgwZjJhOWZiYjNkOGRlZjY4CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEphbiAzMSAxMzo1NTo1MyAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIFJlbW92ZWQgZGVhZCByYW1kaXNrIGNvZGUgb24gbWljcm9ibGF6ZSBhcmNoaXRlY3R1cmVzCgogICAgTWljcm9ibGF6ZSBkb19ib290bV9saW51eCgpIGluY2x1ZGVzIHJhbWRpc2sgcHJvY2Vzc2luZyBjb2RlIGJ1dAogICAgdGhlIHJhbWRpc2sgZG9lcyBub3QgZ2V0IHVzZWQgYW55d2hlcmUgbGF0ZXIgb24uCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA1YWQwM2ViMzg1NGMxNjI2ODQyMjJhNzE4YjQ0YzA3MTZlYTBkYjAzCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEphbiAzMSAxMzo1NTozOSAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEZhY3RvciBvdXQgY29tbW9uIGltYWdlX2dldF9yYW1kaXNrKCkgcm91dGluZQoKICAgIEFyY2hpdGVjdHVyZSBzcGVjaWZpYyBkb19ib290bV9saW51eCgpIHJvdXRpbmVzIHNoYXJlIGNvbW1vbgogICAgcmFtZGlzayBpbWFnZSBwcm9jZXNzaW5nIGNvZGUuIE1vdmUgdGhpcyBjb2RlIHRvIGEgY29tbW9uCiAgICBoZWxwZXIgcm91dGluZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGQzYzVlYjZkZDFmNGVkM2MzMzg4Mzg2Y2YxZDFiZjgyYWE1MWQ1NmIKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgSmFuIDMxIDEzOjIwOjA4IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gTW92ZSBGRFQgZXJyb3IgcHJpbnRpbmcgdG8gY29tbW9uIGZkdF9lcnJvcigpIHJvdXRpbmUKCiAgICBGRFQgZXJyb3IgaGFuZGxpbmcgaW4gUFBDIGRvX2Jvb3RtX2xpbnV4KCkgc2hhcmVzIHRoZSBzYW1lIG1lc3NhZ2UgZm9ybWF0LgogICAgVGhpcyBwYXRjaCBtb3ZlcyBlcnJvciBtZXNzYWdlIHByaW50aW5nIHRvIGEgaGVscGVyIGZkdF9lcnJvcigpIHJvdXRpbmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDQyYjczZThlZTAwZDQ4MDA0NzkxZGVhNjRiODA5M2ZiOTc0YzU3ZTEKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgSmFuIDMxIDEzOjIwOjA3IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gRmFjdG9yIG91dCBjb21tb24gcm91dGluZXMgZm9yIGdldHRpbmcgb3MvYXJjaC90eXBlL2NvbXAgbmFtZXMKCiAgICBNb3ZlIG51bWVyaWMtaWQgdG8gbmFtZSB0cmFuc2xhdGlvbiBmb3IgaW1hZ2Ugb3MvYXJjaC90eXBlL2NvbXAgaGVhZGVyCiAgICBmaWVsZHMgdG8gYSBoZWxwZXIgcm91dGluZXM6IGltYWdlX2dldF9vc19uYW1lKCksIGltYWdlX2dldF9hcmNoX25hbWUoKSwKICAgIGltYWdlX2dldF90eXBlX25hbWUoKSwgaW1hZ2VfZ2V0X2NvbXBfbmFtZSgpLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgZTk5YzI2Njk0YTM4NDIyMWQzMzZmNjQ0OGMwNmE1NzQ3OWMwYmFhNApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBKYW4gMzEgMTM6MjA6MDcgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBSZW1vdmUgc3RhbmRhbG9uZSBhcHBsaWNhdGlvbnMgaGFuZGxpbmcgZnJvbSBib29vdG0KCiAgICBTdGFuZGFsb25lIGFwcGxpY2F0aW9ucyBhcmUgc3VwcG9zZWQgdG8gYmUgcnVuIHVzaW5nIHRoZSAiZ28iIGNvbW1hbmQuCiAgICBUaGlzIHBhdGNoIHJlbW92ZXMgc3RhbmRhbG9uZSBpbWFnZXMgaGFuZGxpbmcgZnJvbSB0aGUgZG9fYm9vdG0oKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDRhMmFkNWZmNjQwMDY5ODQzM2RkNzIwM2QzNDkzOWMzYzljYzliZmYKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgSmFuIDMxIDEzOjIwOjA3IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gUmVtb3ZlIE9GX0ZMQVRfVFJFRSBzdXBwb3J0IGZyb20gUFBDIGJvb3RtIGNvZGUKCiAgICBTdXBwb3J0IGZvciBPRl9GTEFUX1RSRUUgaXMgdG8gYmUgb2Jzb2xldGVkIGluIHRoZSBuZWFyIGZ1dHVyZSwKICAgIHJlbW92ZSByZWxhdGVkIGNvZGUgZnJvbSB0aGUgYm9vdG0gcm91dGluZXMuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA4Mjg1MGYzZDMyYTI2NjE4NjhlYzY4NzZiZWQ3YTIyYzU1Y2VmNzE4CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEphbiAzMSAxMzoyMDowNiAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIFVzZSBpbWFnZSBBUEkgaW4gU0ggZG9fYm9vdG1fbGludXgoKSByb3V0aW5lCgogICAgSW50cm9kdWNlIGltYWdlIGhhbmRsaW5nIEFQSSBmb3IgbGF0ZWx5IGFkZGVkIEhpdGFjaGkgU0ggYXJjaGl0ZWN0dXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgNGE5OTVlZGVjMWFjMTYzZDkzMjZkMTQzZmZlMmI0N2U3NTQzNDA3ZgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBKYW4gMzEgMTM6MjA6MDYgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBSZW5hbWUgYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGJvb3RtIGNvZGUgZmlsZXMKCiAgICBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgZG9fYm9vdG1fbGludXgoKSBhbmQgb3RoZXIgYm9vdG0gaGVscGVyIHJvdXRpbmVzIGlzCiAgICBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgY29kZS4gQXMgc3VjaCBpdCByZXNpZGVzIGluIGxpYl88YXJjaD4gZGlyZWN0b3JpZXMKICAgIGluIGZpbGVzIG5hbWVkIDxhcmNoPl9saW51eC5jCgogICAgVGhpcyBwYXRjaCByZW5hbWVzIHRob3NlIGZpbGVzIHRvIGEgbW9yZSBjbGVhciBhbmQgYWNjdXJhdGUKICAgIGxpYl88YXJjaD4vYm9vdG0uYyBmb3JtLgoKICAgIExpc3Qgb2YgdGhlIHJlbmFtZWQgZmlsZXM6CiAgICAgICBsaWJfYXJtL2FybWxpbnV4LmMgLT4gbGliX2FybS9ib290bS5jCiAgICAgICBsaWJfYXZyMzIvYXZyMzJfbGludXguYyAtPiBsaWJfYXZyMzIvYm9vdG0uYwogICAgICAgbGliX2JsYWNrZmluL2JmNTMzX2xpbnV4LmMgLT4gbGliX2JsYWNrZmluL2Jvb3RtLmMKICAgICAgIGxpYl9pMzg2L2kzODZfbGludXguYyAtPiBsaWJfaTM4Ni9ib290bS5jCiAgICAgICBsaWJfbTY4ay9tNjhrX2xpbnV4LmMgLT4gbGliX202OGsvYm9vdG0uYwogICAgICAgbGliX21pY3JvYmxhemUvbWljcm9ibGF6ZV9saW51eC5jIC0+IGxpYl9taWNyb2JsYXplL2Jvb3RtLmMKICAgICAgIGxpYl9taXBzL21pcHNfbGludXguYyAtPiBsaWJfbWlwcy9ib290bS5jCiAgICAgICBsaWJfbmlvcy9uaW9zX2xpbnV4LmMgLT4gbGliX25pb3MvYm9vdG0uYwogICAgICAgbGliX25pb3MyL25pb3NfbGludXguYyAtPiBsaWJfbmlvczIvYm9vdG0uYwogICAgICAgbGliX3BwYy9wcGNfbGludXguYyAtPiBsaWJfcHBjL2Jvb3RtLmMKICAgICAgIGxpYl9zaC9zaF9saW51eC5jIC0+IGxpYl9zaC9ib290bS5jCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA3NTgyNDM4YzI4NWJmMGNlZjgyOTA5ZDBmMjMyZGU2NGVjNTY3YThhCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IEphbiAzMSAxMzoyMDowNiAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIFJldHVybiBlcnJvciBvbiBpbWFnZSBtb3ZlL3VuY29tcHJlc3Mgb3ZlcndyaXRlcwoKICAgIENoZWNrIGZvciBvdmVyd3JpdGVzIGR1cmluZyBpbWFnZSBtb3ZlL3VuY29tcHJlc3MsIHJldHVybiB3aXRoIGVycm9yCiAgICB3aGVuIHRoZSBvcmlnaW5hbCBpbWFnZSBnZXRzIGNvcnJ1cHRlZC4gUmVwb3J0IGNsZWFyIG1lc3NhZ2UgdG8gdGhlIHVzZXIKICAgIGFuZCBwcmV2ZW50IGZ1cnRoZXIgdHJvdWJsZXMgd2hlbiBwb2ludGVyIHRvIHRoZSBjb3JydXB0ZWQgaW1hZ2VzIGlzIHBhc3NlZAogICAgdG8gZG9fYm9vdG1fbGludXggcm91dGluZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGYxM2U3YjJlOTkzYzYxZmVkMWY2MDc5NjI1MDFlMDUxOTQwZDZlODAKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDggMTg6MTI6MTcgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBDbGVhbnVwIGltYWdlIGhlYWRlciBwb2ludGVyIHVzZSBpbiBib290bSBjb2RlCgogICAgLSB1c2Ugc2luZ2xlIGltYWdlIGhlYWRlciBwb2ludGVyIGluc3RlYWQgb2YgYSBzZXQgb2YgYXV4aWxsaWFyeSB2YXJpYWJsZXMuCiAgICAtIGFkZCBtdWx0aSBjb21wb25lbnQgaW1hZ2UgaGVscGVyIHJvdXRpbmVzOiBnZXQgY29tcG9uZW50IHNpemUvZGF0YSBhZGRyZXNzCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAxZWUxMTgwYjZlOTNlNTZkMDI4MmFjOGQ5NDNlNDQ4ZTlkMGVhYjIwCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiA4IDE4OjE3OjEwIDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gQ2xlYW51cCBjbWRfYm9vdG0uYwoKICAgIC0gc29ydCBhbmQgY2xlYW51cCBoZWFkZXJzLCBkZWNsYXJhdGlvbnMsIGV0Yy4KICAgIC0gZ3JvdXAgcmVsYXRlZCByb3V0aW5lcwogICAgLSBjbGVhbnVwIGluZGVudGF0aW9uLCB3aGl0ZSBzcGFjZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGFmMTNjZGJjMDFlYWY4ODg4MDk3OGJmYjRmNjAzZTAxMjgxOGJhMjQKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDggMTg6MTE6NDUgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBBZGQgbWVtbW92ZV93ZCgpIGNvbW1vbiByb3V0aW5lCgogICAgTW92ZSBjb21tb24sIHdhdGNoZG9nIHNlbnNpYmxlIG1lbW1vdmUgY29kZSB0byBhIGhlbHBlciBtZW1tbW92ZV93ZCgpIHJvdXRpbmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA5NThmYzQ4YWJkZGVhYjUxM2VhNDg0N2UzNGYyMmEyZTlmZTY3ZmUxCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiA4IDE4OjExOjQ0IDIwMDggKzAxMDAKCiAgICBbbmV3IHVJbWFnZV0gRml4IEZEVCBoZWFkZXIgdmVyaWZpY2F0aW9uIGluIFBQQyBkb19ib290X2xpbnV4KCkgcm91dGluZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgMTUxNTg5NzFmNDkyNTVjY2VmNTRmMDk3OWE5NDJjZmQzZGUyYWU1MgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gOCAxODoxMTo0NCAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIEZpeCB1SW1hZ2UgaGVhZGVyIHBvaW50ZXIgdXNlIGluIGkzODYgZG9fYm9vdG1fbGludXgoKQoKICAgIFVzZSBpbWFnZSBoZWFkZXIgY29weSBpbnN0ZWFkIG9mIGEgKHBvc3NpYmx5IGNvcnJ1cHRlZCkgcG9pbnRlciB0bwogICAgYSBpbml0aWFsIGltYWdlIGxvY2F0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgMjYxZGNmNDYyNGIyNWYzYzU1MWVmY2Y4NjM0ZTkxOTRmYWJiYTljMwpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gOCAxODoxMTo0NCAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIFJlbW92ZSBJMzg2IHVJbWFnZSBmYWtlX2hlYWRlcigpIHJvdXRpbmUKCiAgICBJMzg2IHRhcmdldHMgYXJlIG5vdCB1c2luZyBhIHVJbWFnZSBmb3JtYXQsIGluc3RlYWQgZmFrZSBoZWFkZXIKICAgIGlzIGFkZGVkIHRvIHJhbSBpbWFnZSBiZWZvcmUgaXQgaXMgZnVydGhlciBwcm9jZXNzZWQgYnkgYm9vdG0uCgogICAgUmVtb3ZlIHRoaXMgZml4dXAgYW5kIGZvcmNlIHByb3BlciB1SW1hZ2UgdXNlIGZvciBJMzg2LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgNTU5MzE2ZmFmN2VhZTA2MTRjOTFkNzdmNTA5YjU3ZDZjNGMwOTFiYQpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gOCAxODoxMTo0NCAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIE1vdmUgQ0hVTktTWiBkZWZpbml0aW9uIHRvIGltYWdlLmgKCiAgICBDSFVOS1NaIGRlZmluZWQgZm9yIFBQQyBhbmQgTTY4SyBpcyBzZXQgdG8gdGhlIHNhbWUgdmFsdWUgb2YgNjRLLAogICAgbW92ZSB0aGlzIGRlZmluaXRpb24gdG8gYSBjb21tb24gaGVhZGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgMzIxMzU5ZjIwODIzZTBiOGM1YWQzOGI2NGQwMDdhNmM0OGNkYTE2ZQpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gOCAxODoxMTo0MyAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIE1vdmUgZ3VuemlwKCkgY29tbW9uIGNvZGUgdG8gY29tbW9uL2d1bnppcC5jCgogICAgTW92ZSBndW56aXAoKSwgemFsbG9jKCkgYW5kIHpmcmVlKCkgdG8gYSBzZXBhcmF0ZSBmaWxlLgogICAgU2hhcmUgemFsbG9jKCkgYW5kIHpmcmVlKCkgd2l0aCBjcmFtZnMgdW5jb21wcmVzcyByb3V0aW5lLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgZDQ1ZDVhMThiNmIzNjY4OGYyMzY1NjIzZjlkNTUwNTY2YzY2NGI1YgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gOCAxODoxMTo0MyAyMDA4ICswMTAwCgogICAgW25ldyB1SW1hZ2VdIENsZWFudXAgT0YvRkRUICNpZi8jZWxpZi8jZW5kaWYgdXNlIGluIGRvX2Jvb3RtX2xpbnV4KCkKCiAgICBNYWtlIENPTkZJR19PRl9MSUJGRFQgYW5kIENPTkZJR19PRl9GTEFUX1RSRUUgdXNlIG1vcmUKICAgIHJlYWRhYmxlIGluIFBQQyB2YXJpYW50IG9mIGRvX2Jvb3RtX2xpbnV4KCkgcm91dGluZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDVkM2NjNTVlY2JhZTI3N2UwOGY1ZmY3NzFkYTIwYjFkNmEzNmVjMzYKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDggMTg6MTE6NDMgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBNb3ZlIFBQQyBkb19ib290bV9saW51eCgpIHRvIGxpYl9wcGMvcHBjX2xpbnV4LmMKCiAgICBQUEMgaW1wbGVtZW50YXRpb24gb2YgZG9fYm9vdG1fbGludXgoKSByb3V0aW5lIGlzIG1vdmVkIHRvCiAgICBhIGRlZGljYXRlZCBmaWxlIGxpYl9wcGMvcHBjX2xpbnV4LmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGI5N2EyYTBhMjFmMjc5ZDY2ZGU4YTliZGJmZTIxOTIwOTY4YmNiMWMKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDggMTg6MTQ6MDkgMjAwOCArMDEwMAoKICAgIFtuZXcgdUltYWdlXSBEZWZpbmUgYSBBUEkgZm9yIGltYWdlIGhhbmRsaW5nIG9wZXJhdGlvbnMKCiAgICAtIEFkZCBpbmxpbmUgaGVscGVyIG1hY3JvcyBmb3IgYmFzaWMgaGVhZGVyIHByb2Nlc3NpbmcKICAgIC0gTW92ZSBjb21tb24gbm9uIGlubGluZSBjb2RlIGNvbW1vbi9pbWFnZS5jCiAgICAtIFJlcGxhY2UgZGlyZWN0IGhlYWRlciBhY2Nlc3Mgd2l0aCB0aGUgQVBJIHJvdXRpbmVzCiAgICAtIFJlbmFtZSBJSF9DUFVfKiB0byBJSF9BUkNIXyoKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IGVkMjliYzRlODE0MmI0NmI2MjZmNjc1MjQyMDdiMzZlNDNkOWFhZDYKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgSmFuIDMxIDEzOjE5OjU4IDIwMDggKzAxMDAKCiAgICBBZGQgbWlzc2luZyBjbWRfeGltZy5vIHRvIGNvbW1vbi9NYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+Cgpjb21taXQgMzdlM2M2MmZhMDdhODIzZTc1NjljODcyZTNhOTM5NWQyMjdlZDhlMwpBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglNb24gSmFuIDI4IDEwOjE1OjAyIDIwMDggKzAxMDAKCiAgICBBRFM1MTIxZTogRERSMiBpbml0L3RpbWluZyB1cGRhdGUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBhYzkxNTI4MzBkN2ZkZWJhY2U4YTI2MGI3NzM3ZWYyODcwYzIxY2EwCkF1dGhvcjogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMzAgMTM6MzY6NTcgMjAwOCAtMDcwMAoKICAgIERldmljZSB0cmVlIHVwZGF0ZXMKCiAgICBDaGFuZ2VzIHRvIG1hdGNoIDUxMjEgZGV2aWNlIHRyZWUgZ29pbmcgbWFpbmxpbmUgaW4gMi42LjI1LgoKICAgIENoYW5nZSBPRl9TT0MgZnJvbSAic29jNTEyMSIgdG8gcGxhaW4gInNvYyIuCiAgICBSZW1vdmUgdW5uZWVkZWQgInJlZi1mcmVxdWVuY3kiIGZpeHVwcy4KICAgIFJlbW92ZSAiYWRkcmVzcyIgZW5ldGFkZHIgZml4dXAuCgogICAgQWRkIGJ1cy1mcmVxdWVuY3kgZml4dXAgZm9yIG9sZCBPRl9TT0Mgc28gb2xkCiAgICBrZXJuZWxzIHdpdGggb2xkIGRldmljZSB0cmVlcyB3aWxsIHdvcmsgd2l0aCBuZXcKICAgIHUtYm9vdCB3aXRoIDY2TUh6IElQUyBjbG9jawoKICAgIFNpZ25lZC1vZmYtYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRlNTVkMThkZjNmZjJlYTYxNDYyNGU3NDc5M2RlN2M0MzUyMGUwZTcKQXV0aG9yOiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAzMCAxMzozNjo1NiAyMDA4IC0wNzAwCgogICAgQ2hhbmdlIElQUyBmcmVxIHRvIDY2TUh6CgogICAgUmVjb21tZW5kZWQgZnJlcXVlbmN5IGlzIDY2TUh6CiAgICBDaGFuZ2UgZGl2aWRlciBmcm9tIDQgdG8gMy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjZDljYjYyZjlkOGI3OGQ2YzNhZjVkMWU5YjVhM2Q2OGEzZDczOTc0CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJTW9uIEphbiAxNCAyMjozODo1NSAyMDA4ICswMTAwCgogICAgeHNlbmdpbmU6IHJlbmFtZSBib2FyZF9wb3N0X2luaXQgdG8gYm9hcmRfbGF0ZV9pbml0CgogICAgbWlzc2luZyBtaWdyYXRpb24gZnJvbSAiQ2xlYW51cCBvZiBzb21lIGluaXQgZnVuY3Rpb25zIgogICAgaW4gYzgzN2RjYjFhMzE2NzQ1MDkyNTY3YmZlNGZiMjY2ZDA5NDE4ODRmZgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOGRhZmE4NzQ3NmIwZDcxNzBlMjE5YzJmNWUzODQyYzgzM2E5MTgwNwpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgpEYXRlOglTYXQgSmFuIDEyIDIzOjM1OjMzIDIwMDggLTA1MDAKCiAgICBBZGQgYXR0cmlidXRlIFBPU1RfUFJFUkVMIHRvIEVDQyBtZW1vcnkgUE9TVAoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IGVkMmNmNTQ4Y2FjODBjZDNjZjgxNTRkY2ZlN2IyNjg1YmVmNDU5MzgKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDE3IDA4OjI1OjQ1IDIwMDggLTA2MDAKCiAgICBRRTogTW92ZSBGRFQgc3VwcG9ydCBpbnRvIGEgY29tbW9uIGZpbGUKCiAgICBNb3ZlIHRoZSBmbGF0IGRldmljZSB0cmVlIHNldHVwIGZvciBRRSByZWxhdGVkIGRldmljZXMgaW50bwogICAgYSBjb21tb24gZmlsZSBzaGFyZWQgYmV0d2VlbiA4M3h4ICYgODV4eCBwbGF0Zm9ybXMgdGhhdCBoYXZlIFFFJ3MuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBkMzhkYTUzNzk0M2NkMzYzNTZiOWQzZDlkOWI2MDUzMzU1NGI4MWQ4CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVdlZCBKYW4gMjMgMTc6MjA6MTQgMjAwOCArMDEwMAoKICAgIEFWUjMyOiBNYWtlIFNEUkFNIHJlZnJlc2ggcmF0ZSBjb25maWd1cmFibGUKCiAgICBUaGUgZXhpc3RpbmcgY29kZSBhc3N1bWVzIHRoZSBTRFJBTSByb3cgcmVmcmVzaCBwZXJpb2Qgc2hvdWxkIGFsd2F5cwogICAgYmUgMTUuNiB1cy4gVGhpcyBpcyBub3QgYWx3YXlzIHRydWUsIGFuZCBpbmRlZWQgb24gdGhlIEFUTkdXMTAwLCB0aGUKICAgIHJlZnJlc2ggcmF0ZSBzaG91bGQgcmVhbGx5IGJlIDcuODEgdXMuCgogICAgQWRkIGEgcmVmcmVzaF9wZXJpb2QgbWVtYmVyIHRvIHN0cnVjdCBzZHJhbV9pbmZvIGFuZCBpbml0aWFsaXplIGl0CiAgICBwcm9wZXJseSBmb3IgYm90aCBBVFNUSzEwMDAgYW5kIEFUTkdXMTAwLiBPdXQtb2YtdHJlZSBib2FyZHMgd2lsbAogICAgcGFuaWMoKSB1bnRpbCB0aGUgcmVmcmVzaF9wZXJpb2QgbWVtYmVyIGlzIHVwZGF0ZWQgcHJvcGVybHkuCgogICAgQmlnIHRoYW5rcyB0byBHZXJoYXJkIEJlcmdob2ZlciBmb3IgcG9pbnRpbmcgb3V0IHRoaXMgaXNzdWUuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNjExNTFjY2NiNjYwY2RiMDZhMDdmYjI4M2RlNjA4OTkxM2Q3YmRlMApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgQXByIDE5IDEwOjEwOjExIDIwMDcgKzAyMDAKCiAgICBBVFNUSzEwMDA6IEZpeCBwb3RlbnRpYWwgZmxhc2ggcHJvZ3JhbW1pbmcgYnVnCgogICAgVGhlIChub3cgb2Jzb2xldGUpIGF0bmd3MTAwIGZsYXNoIHByb2dyYW1taW5nIGNvZGUgd2FzIGhhdmluZyBwcm9ibGVtcwogICAgcHJvZ3JhbW1pbmcgdGhlIG9uYm9hcmQgYXQ0OWJ2NjQyIGNoaXAuIFRoZSBhdHN0azEwMDAgZmxhc2gKICAgIHByb2dyYW1taW5nIGNvZGUgbWF5IGhhdmUgdGhlIHNhbWUgYnVnLCBzbyBpbXBvcnQgZml4IGZvciB0aGlzIHByb2JsZW0KICAgIGZyb20gdGhlIEFWUjMyIExpbnV4IEJTUC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBiMmUxZDViNjQ0NjlmMTBkZmNjZTI3ZjdiMGFmZDkzNTY4NGE4ZTExCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBOb3YgMjIgMTc6MDQ6MTMgMjAwNyArMDEwMAoKICAgIEFUU1RLMTAwNDogRml4IGNvbW1lbnQgYWJvdXQgZGVmYXVsdCBsb2FkIGFkZHJlc3MKCiAgICBUaGUgZGVmYXVsdCBsb2FkIGFkZHJlc3MgaXMgU0RSQU0gKyAyTUIsIG5vdCBTRFJBTSArIDRNQi4gVGhlIGxhdHRlcgogICAgd291bGRuJ3QgaGF2ZSB3b3JrZWQgYW55d2F5IHNpbmNlIHRoZSBib2FyZCBjYW4gb25seSBhY2Nlc3MgNE1CIG9mCiAgICBTRFJBTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA4MjY5YWI1MzYwOGQ4ZGIyYWEwNjk2OWMzMzdhYjBiMDUxODIxMWU1CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBOb3YgMjIgMTc6MDE6MjQgMjAwNyArMDEwMAoKICAgIEFUU1RLMTAwMjogVXNlIFNEUkFNICsgNE1CIGFzIGRlZmF1bHQgbG9hZCBhZGRyZXNzCgogICAgTWFueSBwZW9wbGUgcnVuIGludG8gcHJvYmxlbXMgd2hlbiB0aGV5IGNvbXBpbGUgYSBiaWcga2VybmVsIGFuZCBsb2FkCiAgICB0aGUgdUltYWdlIGF0IHRoZSBkZWZhdWx0IFNEUkFNICsgMk1CIGFkZHJlc3MgYXMgdGhlIGtlcm5lbCB3aWxsCiAgICBvdmVyd3JpdGUgdGhlIHVJbWFnZSBhcyBpdCBpcyBiZWluZyB1bnBhY2tlZC4gSW5jcmVhc2UgdGhlIGRlZmF1bHQKICAgIGxvYWQgYWRkcmVzcyBzbyB0aGF0IHdlIGNhbiBsb2FkIGEgNE1CIGtlcm5lbCBpbWFnZSB3aXRob3V0IGFueQogICAgcHJvYmxlbXMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMmJjYWNjMmQ4NDFiNzdmM2QyZDM5MTBkYjcyMjAwMzc0MjcyN2U5ZgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgTm92IDIyIDE2OjUxOjM5IDIwMDcgKzAxMDAKCiAgICBBVE5HVzEwMDogRml4IGRlZmF1bHQgbXRlc3QgcmFuZ2UKCiAgICBMZXQgbXRlc3QgY292ZXIgdGhlIHdob2xlIFNEUkFNIGV4Y2VwdCB0aGUgbGFzdCBtZWdhYnl0ZSwgd2hpY2ggaXMKICAgIHdoZXJlIHUtYm9vdCBsaXZlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA5ODU2YTZiMzEwNGUwYmMyMTBiMDg2OGRmZTY5MWM1MmJmMDNjMjI3CkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglUdWUgSmFuIDIyIDE1OjMxOjU2IDIwMDggKzA5MDAKCiAgICBzaDogRml4IHJlZ2lzdGVyIGFkZHJlc3Mgb2YgU0g3NzIyLgoKICAgIFRoZSBhZGRyZXNzIG9mIFNINzcyMiBpcyB3cm9uZyBieSBvbGQgZG9jdW1lbnQuCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoaXMgcHJvYmxlbS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMzA5NDJiMThiNjZmMzVmMmNlZWRhYjM5YWYxMGU5ZWNjYWE5NDNjYwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU3IDIwMDggLTA1MDAKCiAgICBuZXcgY29tbWFuZCBmb3IgZGlzcGxheWluZyBzdHJpbmdzIGF0IHNwZWNpZmllZCBtZW1vcnkgbG9jYXRpb25zCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGI1OGQ4YjQ4ZTI1YjBjODY2ZDE2N2NjNTc3ZjExOGY1MjhjZDllMGEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NyAyMDA4IC0wNTAwCgogICAgcmV3cml0ZS9jbGVhbnVwIEJsYWNrZmluIFJUQyBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgOTRhOTFlMjQ4YjcxYzNmZjk1MWZjMjdjZmY2OTA5ZTgyY2EzN2QxNQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU3IDIwMDggLTA1MDAKCiAgICBnZW5lcmF0ZSB1LWJvb3QubGRyIGZvciBCbGFja2ZpbiB0YXJnZXRzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGI3NzlmN2E1OTUzMDQzNjA0MGYxNTdmNzg0MWRiN2FiNzk2NTQyZGYKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NyAyMDA4IC0wNTAwCgogICAgc2NydWIgdW51c2VkIHN5bWJvbHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgY2MyOTc3YWNjM2JiYmI3ODUwZjE2NjQ1ZGQxMDgxZjk1MzM1ODY4ZApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU3IDIwMDggLTA1MDAKCiAgICBtb3ZlIEJsYWNrZmluIGNwdSBvYmplY3QgbGlzdCB0byByZXNwZWN0aXZlIGNwdSBkaXJlY3RvcmllcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBkMGIwMWEyNDZkMGEzNTFiYzdkY2UxZDBjOWNmNmFlYmRmNmQ3NTA1CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTk6MjY6NTcgMjAwOCAtMDUwMAoKICAgIGludGVyZmFjZSB0byBCbGFja2ZpbiBvbi1jaGlwIE9uZS1UaW1lLVByb2dyYW1tYWJsZSBtZW1vcnkKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNGM3MjdjNzdlNDM4NzJkM2ExZDFmNzZhOTQ5ZmNiM2YyNmEzODc4OApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU2IDIwMDggLTA1MDAKCiAgICBhZGQgc3VwcG9ydCBmb3IgbWVtb3J5IGNvbW1hbmRzIHdpdGggQmxhY2tmaW4gTDEgaW5zdHJ1Y3Rpb24gbWVtb3J5CgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDZiOTA5N2U1ZTc0OTBhYTdiODI4YzZmMWExYzdhMGU4NzVkZjg0NjQKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NiAyMDA4IC0wNTAwCgogICAgdXNlIEMgY29kZSByYXRoZXIgdGhhbiBpbmxpbmUgYXNzZW1ibHkKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgOTdjMjZlMDA2ZDJmYTZkNGUxNTYwOTMzZWU2ZjM4NWQ4Yjg5MDhiOQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU2IDIwMDggLTA1MDAKCiAgICBhZGQgQmxhY2tmaW4tc3BlY2lmaWMgcmVnaW5mbyBjb21tYW5kCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDA4NThiODM1ZTdlYTUwMWVhMDg0ZDM0Y2VmNzU5MzJmMDk4MzQyYmIKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NSAyMDA4IC0wNTAwCgogICAgYWRkIHN1cHBvcnQgZm9yIEJsYWNrZmluIHN5bWJvbCBwcmVmaXhlcyB0byBleGFtcGxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCA4ZGM0OGQ3MWE0YmU3NTNlYTlmODQ5NTZjZDMzNjAwZGUzNWZhZDA0CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTk6MjY6NTUgMjAwOCAtMDUwMAoKICAgIGFkZCBCbGFja2Zpbi1zcGVjaWZpYyBiZGluZm8gY29tbWFuZAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCAwMDAzNjEzZTNjN2RmM2I4NGIyY2I5MmU3OTdkNzdmNDZmMTVhNDNhCkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTk6MjY6NTUgMjAwOCAtMDUwMAoKICAgIG1vdmUgLWZmaXhlZC1QNSB0byBibGFja2Zpbl9jb25maWcubWsgYW5kIGRyb3AgdW51c2VkIC1EX19CTEFDS0ZJTl9fCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDYwZmE3MmQ2NTYxMGM3ZWYzM2UxZDZkYjg1ODk3OWQwNWZmMGRmNTgKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NSAyMDA4IC0wNTAwCgogICAgdW5pZnkgdGhlIEJsYWNrZmluIGJvYXJkIHRhcmdldHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgZDRkNzczMDg1M2U1ZDY3NWY3NmVjNjY2ODA3ZGEzMDI4YzkxZDU5MgpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU1IDIwMDggLTA1MDAKCiAgICBwdW50IEJsYWNrZmluIFZEU1AgaGVhZGVycyBhbmQgaW1wb3J0IHNhbml0aXplZC9hdXRvLWdlbmVyYXRlZCBvbmVzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDZjZmNjZTY3NjcxYTM0MjUyMjlkNjYyMDMzODZmYTNjYmQwY2MzYmQKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NCAyMDA4IC0wNTAwCgogICAgYWx3YXlzIHB1bGwgaW4gYXNtL2JsYWNrZmluLmggZm9yIEJsYWNrZmluIHBvcnRzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGJmNTM5NzRjMmRkYWU2NzhkNzY2MGYyYjVjY2ZlYjA3MzJiNmY1ZGMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NCAyMDA4IC0wNTAwCgogICAgYWRkIG1pc3NpbmcgX19yYXcgdmVyc2lvbnMgb2YgQmxhY2tmaW4gcmVhZC93cml0ZSBpbyBmdW5jdGlvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMjRlMDJkMGZkM2FjYzUwZTczZTFhM2NkZDU2N2YwYTc3OTQ2ZjE1ZApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU0IDIwMDggLTA1MDAKCiAgICBhZGQgdGhlIGRlZmF1bHQgQmxhY2tmaW4gbG9nbyB1c2VkIGJ5IEJsYWNrZmluIGJvYXJkcyB3aXRoIHNwbGFzaCBzY3JlZW5zCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDRjNThlYjU1NTIyMjBlNDI1YzhhZjZhYzhkMjgzOTI0NGEyZjU3YjEKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NCAyMDA4IC0wNTAwCgogICAgYWRkIHNvbWUgbW9yZSBCbGFja2ZpbiBkb2NzCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDMyYTlmNWYyMTYwYTAzNGVhODdlYTY1MWIyMzNlZjdjNjM1ZTU1Y2YKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBGZWIgNCAxOToyNjo1NCAyMDA4IC0wNTAwCgogICAgbWFrZSBzbWM5MTExMV9lZXByb20gbWFuYWdtZW50IHNpbXBsZXIgYnkgZGVwZW5kaW5nIG9uIHRoZSBib2FyZCBjb25maWd1cmF0aW9uIGZpbGUgcmF0aGVyIHRoYW4gYSBoYXJkY29kZWQgbGlzdCBvZiBib2FyZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgNDA4N2JjODhjZWJlYzc1YzQzMmE3ZmU5ZjZhZmI1NDViMDkxOTgzMQpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEZlYiA0IDE5OjI2OjU0IDIwMDggLTA1MDAKCiAgICBmaXggYnVpbGRpbmcgb24gQmxhY2tmaW4gYXMgdGhlIGFzc2VtYmxlciBzdXBwb3J0cyB0aGUgLnNldCBzeW50YXgsIG5vdCB0aGUgPSBzeW50YXgsIGZvciBhc3NpZ25pbmcgc3ltYm9scwoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KCmNvbW1pdCBiNDUyNjRlZTg1Y2JkOTIwMjA2NDBhMzJlMDJmYjQzNGZkNTU3MTA4CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglNb24gRmViIDQgMTk6MjY6NTMgMjAwOCAtMDUwMAoKICAgIGFkZCBnaXRpZ25vcmVzIGZvciBCbGFja2ZpbiBwaWVjZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYTkzOTA3YzQzZjg0N2YwNzZkZDBlMzRlZTNiNjliNWU4ZTZkMGQyOQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBKYW4gMTggMDE6MTQ6MDMgMjAwOCArMDEwMAoKICAgIFRGVFA6IGFkZCBob3N0IGlwIGFkZHIgc3VwcG9ydAoKICAgIGFsbG93IHRvIHVzZSBhIGRpZmZlcmVudCBzZXJ2ZXIgYXMgc2V0IGluIHNlcnZlcmlwCiAgICBhZGQgQ09ORklHX1RGVFBfRklMRV9OQU1FX01BWF9MRU4gdG8gY29uZmlndXJlIHRoZSBmaWxlIG5hbWUgbGVuZ3RoCiAgICBpZiBub3QgZGVmaW5lZCB0aGUgbWF4IGxlbmd0aCB3aWxsIGJlIGF0IDEyOAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgZTU2YjRiNDk0Y2Q5MmRlZjU3Nzk2OWY5Njc4Mzk1YWEyMmQzNGM5ZgpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gOSAxNDozNToyNiAyMDA4IC0wNjAwCgogICAgODV4eCw4Nnh4OiBEZXRlcm1pbmUgSTJDIGNsb2NrIGZyZXF1ZW5jaWVzIGFuZCBzdG9yZSBpbiBnbG9iYWxfZGF0YQoKICAgIFVwZGF0ZSBnbG9iYWxfZGF0YSB0byBkZWZpbmUgaTJjMV9jbGsgYW5kIGkyYzJfY2xrIHRvIDg1eHggYW5kIDg2eHguCgogICAgVXBkYXRlIHRoZSBnZXRfY2xvY2tzKCkgZnVuY3Rpb24gaW4gODV4eCBhbmQgODZ4eCB0byBkZXRlcm1pbmUgdGhlIEkyQwogICAgY2xvY2sgZnJlcXVlbmN5IGFuZCBzdG9yZSBpdCBpbiBnZC0+aTJjMV9jbGsgYW5kIGdkLT5pMmMyX2Nsay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdlYzhiYjE1ZWUzNjhlYTU0ZDQ4ZDY0ODY3NzY3YTcwNGQ5YWI0YzIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgRGVjIDI3IDEwOjU2OjU0IDIwMDcgKzAxMDAKCiAgICBPTUFQNTkxMjogZml4IEZJRk8gaGFuZGxpbmcgaW4gVUFSVCBkcml2ZXIKCiAgICBBY2NvcmRpbmcgdG8gdGhlIE9NQVA1OTEyIFNlcmlhbCBJbnRlcmZhY2VzIFJlZmVyZW5jZSBHdWlkZSAoc2VlCiAgICBodHRwOi8vZm9jdXMudGkuY29tL2xpdC91Zy9zcHJ1NzYwYy9zcHJ1NzYwYy5wZGYsIHBhZ2UgMTUwKSwgdGhlCiAgICBGSUZPX0VOIGVuYWJsZSBiaXQgaW4gdGhlIEZJRk8gQ29udHJvbCBSZWdpc3RlciAoRkNSKSBjYW4gb25seSBiZQogICAgY2hhbmdlZCB3aGVuIHRoZSBiYXVkIGNsb2NrIGlzIG5vdCBydW5uaW5nLCBpLiBlLiB3aGVuIGJvdGggRExMIGFuZAogICAgRExIIGFyZSBzZXQgdG8gMC4KCiAgICBUaHVzIG1ha2Ugc3VyZSB0aGF0IERMTCBhbmQgRExIIGFyZSAwIHdoZW4gd3JpdGluZyB0aGUgRkNSLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMTYxNTg3NzhiNWY1MmYyMDFlOTVkZWQyZDJkOTA4NGIwZWQ1NjcwZApBdXRob3I6IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBvcGVubW9rby5vcmc+CkRhdGU6CVdlZCBEZWMgMTkgMTU6MTA6NTIgMjAwNyArMDEwMAoKICAgIEFSTTogUzNDMjR4MCBTb0MgTkFORCBjb250cm9sbGVyIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgTkFORCBzdXBwb3J0IHRvIHRoZSBTM0MyNHgwIFNvQyBjb2RlIGluIHUtYm9vdAoKICAgIFNpZ25lZC1vZmYtYnk6IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBvcGVubW9rby5vcmc+Cgpjb21taXQgYTdjMTg1ZWQzZDlmOGViZDg1Y2ZjMjg2ZTFmZmVlNzJlNDgwMzE2MwpBdXRob3I6IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBvcGVubW9rby5vcmc+CkRhdGU6CVdlZCBEZWMgMTkgMTQ6MjQ6NDAgMjAwNyArMDEwMAoKICAgIEFSTTogczNjMjR4eDogTXVsdGlwbGUgc2VyaWFsIHBvcnQgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBDT05GSUdfU0VSSUFMX01VTFRJIG9uIHMzYzI0eDAgQ1BVJ3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYXJhbGQgV2VsdGUgPGxhZm9yZ2VAb3Blbm1va28ub3JnPgoKY29tbWl0IGEyNWY3MmYxZjczYTExZGU2ODI1MWZiODhjODk5OTFlMjAyZTY4ZmEKQXV0aG9yOiBIYXJhbGQgV2VsdGUgPGxhZm9yZ2VAb3Blbm1va28ub3JnPgpEYXRlOglXZWQgRGVjIDE5IDE0OjE2OjU3IDIwMDcgKzAxMDAKCiAgICBBUk06IGFybTkyMHQ6IEFsbG93IHVzZSBvZiAnZ2QnIHBvaW50ZXIgZnJvbSBJUlEKCiAgICBUaGlzIHBhdGNoIGFsbG93cyB1cyB0byB1c2UgdGhlICdnZCcgcG9pbnRlciAoYW5kIHRodXMgZW52aXJvbm1lbnQKICAgIGFuZCBldmVyeXRoaW5nIGVsc2UgYXNzb2NpYXRlZCB3aXRoIGl0KSBmcm9tIGludGVycnVwdCBjb250ZXh0IG9uCiAgICBhcm05MjB0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBvcGVubW9rby5vcmc+Cgpjb21taXQgYmUxOWJkNWNkMGY0NTRiNjMyOTg4NDRhMGI1Mzc3ZTAyOWIyY2FhZApBdXRob3I6IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBvcGVubW9rby5vcmc+CkRhdGU6CVdlZCBEZWMgMTkgMTQ6MTk6MzggMjAwNyArMDEwMAoKICAgIEFSTTogYXJtOTIwL3MzYzI0eHg6IElSUSBkZW11bGl0cGxleGVyIGNhbGxiYWNrCgogICAgVGhpcyBwYXRjaCBhZGRzIGEgSVJRIGRlbXVsdGlwbGV4ZXIgY2FsbGJhY2sgdG8gdGhlIGFybTkyMCBjcHUgY29yZSBjb2RlLAogICAgcGx1cyBhIHN0dWIgaW1wbGVtZW50YXRpb24gb2YgaXQgZm9yIHRoZSBTM0MyNDEwLgoKICAgIFRoZSBwdXJwb3NlIGlzIHRvIGFsbG93IGFybTkyMHQgaW1wbGVtZW50YXRpb25zIHN1Y2ggYXMgdGhlIHMzYzI0eDAgdG8KICAgIGltcGxlbWVudCBpbnRlcnJ1cHQgaGFuZGxlcnMgaW4gdS1ib290IHdpdGhvdXQgaGF2aW5nIHRvIHRvdWNoIGNvcmUKICAgIGFybTkyMHQgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYXJhbGQgV2VsdGUgPGxhZm9yZ2VAb3Blbm1va28ub3JnPgoKY29tbWl0IGE0MWRiYmQ5OGQyMDFkOGFlYTMxYjVkMjFkZjQ3NDJjMjBjZDdlZGEKQXV0aG9yOiBIZWJiYXIgPGd1cnVyYWpha3JAc2FueW8uY28uaW4+CkRhdGU6CVR1ZSBEZWMgMTggMTY6MDM6MDcgMjAwNyAtMDgwMAoKICAgIEFSTTogRGlzcGxheSBFdGhlcm5ldCBpbmZvIGluIGRvX2JkaW5mbyBvbmx5IGlmIENPTkZJR19DTURfTkVUIGlzIGRlZmluZWQKCiAgICBBZGQgaWZkZWYgdG8gYmRpbmZvIGNvbW1hbmQgdG8gZGlzcGxheSBldGhlcm5ldCBpbmZvcm1hdGlvbgogICAgb25seSBpZiBDT05GSUdfQ01EX05FVCBpcyBkZWZpbmVkIGZvciBhcm0gbW9kdWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLIFIgR3VydXJhamEgSGViYmFyIDxndXJ1cmFqYWtyQHNhbnlvLmNvLmluPgoKY29tbWl0IGY3YWQ3OWI2ZjlmMGY0NTQzN2I2MmUxOWI0NTM1NmNjMmFhZjQ4ODQKQXV0aG9yOiBIZWJiYXIgPGd1cnVyYWpha3JAc2FueW8uY28uaW4+CkRhdGU6CVR1ZSBEZWMgMTggMTY6MDA6NTQgMjAwNyAtMDgwMAoKICAgIEFSTTogYWRkIEkyQyBpbml0IGZ1bmN0aW9uIGNhbGwgaW4gbGliX2FybS9ib2FyZC5jCgogICAgQWRkcyBJMkMgaW5pdCBmdW5jIGNhbGwgdG8gaW5pdCBzZXF1ZW5jZSBmb3IgQVJNIGJvYXJkcy4gVGhpcyBpcwogICAgcHJlc2VudCBpbiBwcGMsYmxhY2tmaW4gYW5kIG90aGVyIHByb2Nlc3NvciBpbml0IHNlcXVlbmNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEsgUiBHdXJ1cmFqYSBIZWJiYXIgPGd1cnVyYWpha3JAc2FueW8uY28uaW4+Cgpjb21taXQgZmYwMmYxMzk4MDRmM2NiNjE0MTRmN2JiY2JmZGFhMDI3OWUzZWZhZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEZlYiAxIDA5OjM4OjI5IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBuZGZjIEhXIEVDQyBieXRlIG9yZGVyCgogICAgVGhlIGN1cnJlbnQgbmRmYyBIVyBFQ0MgaW1wbGVtZW50YXRpb24gc3dhcHMgdGhlIGZpcnN0IHR3byBFQ0MgYnl0ZXMuCiAgICBCdXQgdGhlIDR4eCBOREZDIGFscmVhZHkgdXNlcyB0aGUgU01DIChTbWFydCBNZWRpYSBDYXJkKSBFQ0Mgb3JkZXJpbmcsCiAgICBzbyB0aGlzIHN3YXBwaW5nIGluIHRoZSBIVyBFQ0MgZHJpdmVyIGlzIGJvZ3VzLiBUaGlzIHBhdGNoIGZpeGVzIHRoaXMKICAgIHByb2JsZW0gYW5kIG5vdyByZWFsbHkgdXNlcyB0aGUgU01DIEVDQyBieXRlIG9yZGVyLgoKICAgIFRoYW5rcyB0byBTZWFuIE1hY0xlbm5hbiBmb3IgcG9pbnRpbmcgdGhpcyBvdXQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGUxZDE0MjliNDliMGVlNThjODBmOGM3YjI5YzFlYmFmOGJlN2Y1ZjEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMzAgMTU6MzU6NTAgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogRml4IEdQSU8gY29uZmlndXJhdGlvbiBmb3IgcGNzNDQwZXAKCiAgICBUaGUgU1JEMF9QRkMwIHJlZ2lzdGVyIHdhcyBub3QgY29uZmlndXJlZCBjb3JyZWN0bHkgdG8gZW5hYmxlIHRoZSBHUElPJ3MKICAgIDQ5LTYzIGZvciBHUElPLiBUaGV5IGhhdmUgYmVlbiBjb25maWd1cmVkIGFzIHRyYWNlIHNpZ25hbHMuIFRoaXMgcGF0Y2gKICAgIGZpeGVzIHRoaXMgYnkgY2xlYXJpbmcgdGhlIGNvcnJlc3BvbmRpbmcgYml0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyOGQ3N2Q5NjhiZmUwMzE2ZGViNWJmMTVjMTdmNTdkNWZmMmM4ODIxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDMwIDE0OjQ4OjI4IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBwcm9ibGVtIHdpdGggaW5pdC1yYW0gYmlnZ2VyIHRoYW4gNGsgb24gNDQwIHBsYXRmb3JtcwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0ZmVkZmRkZjk3NDYxYjg4NjY4YjlhZWM3NzRkZmI3YTBjNmRjMzY4CkF1dGhvcjogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgpEYXRlOglGcmkgRGVjIDcgMDA6NDI6MzIgMjAwNyArMDEwMAoKICAgIEFSTTogQm9hcmQgdm9pY2VibHVlIHVwZGF0ZQoKICAgIFNpZ25lZC1vZmYtYnk6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KCmNvbW1pdCAyYzUyNjBmNzExMTY4ZDVlZTkxYzcwZGRiYjdkODk3MDEzZWVmYzQ2CkF1dGhvcjogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgpEYXRlOglUaHUgRGVjIDYgMjM6MjQ6NTcgMjAwNyArMDEwMAoKICAgIEFSTTogQVQ5MVJNOTIwMCBiYXNlZCBib2FyZHMgY29uZmlnIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CgogICAgUmVtb3ZlIG5vd2hlcmUgdXNlZCBzdHJ1Y3QgYmRfaW5mb19leHQsIHJlbW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlcywgZml4CiAgICBpbmRlbnRhdGlvbi4KCmNvbW1pdCA0ODFmMjhiMWRiNWNkMjFkZWI1NWY2OTM5OWJhMjQwZTEwN2FmNGM3CkF1dGhvcjogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgpEYXRlOglUaHUgRGVjIDYgMjI6NTk6MTYgMjAwNyArMDEwMAoKICAgIEFSTTogRml4IGF0OTFybTkyMDBkayBiYXNlIGFkZHJlc3MKCiAgICBTb21ld2hlcmUgZHVyaW5nIGRldmVsb3BtZW50IG9mIFUtQm9vdC0xLjEuMyBDT05GSUdfQk9PVEJJTkZVTkMgd2FzCiAgICByZW5hbWVkIGludG8gQ09ORklHX0lOSVRfQ1JJVElDQUwgd2hpY2ggd2FzIDA0IEFwciAyMDA1IHJlcGxhY2VkCiAgICB3aXRoIENPTkZJR19TS0lQX0xPV0xFVkVMX0lOSVQgYW5kIENPTkZJR19TS0lQX1JFTE9DQVRFX1VCT09ULgogICAgSG93ZXZlciBDT05GSUdfU0tJUF9MT1dMRVZFTF9JTklUIGhhcyBvcG9zaXRlIG1lYW5pbmcgdG8KICAgIENPTkZJR19CT09UQklORlVOQywgc28gZml4IGNvbmZpZ3VyYXRpb24gdG8gcmVmbGVjdCB0aGlzIGZhY3QuCiAgICBJJ20gc2VuZGluZyB0aGlzIHBhdGNoIDR0aCAoISkgdGltZSBpbiBob3BlIGl0IHByb2R1Y2VzIGF0IGxlYXN0IHNvbWUKICAgIHJlYWN0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51eC1taXBzLm9yZz4KCiAgICBGaXggYXQ5MXJtOTIwMGRrIGJhc2UgYW5kIGVudmlyb25tZW50IGFkZHJlc3MuCgpjb21taXQgYzk1MjE5ZmFlMmE3YWRkN2RhYTJmOTFhZWRjYTY1YjE2OTg0NjVjNwpBdXRob3I6IHN0ZWZhbm8gYmFiaWMgPHNiYWJpY0BkZW54LmRlPgpEYXRlOglUdWUgTm92IDIwIDEwOjQwOjI0IDIwMDcgKzAxMDAKCiAgICBNTUMgZm9yIFBYQSAyN1ggKHJlc3VibWl0KQoKICAgIE1NQyBzdXBwb3J0IGZvciBYX1NjYWxlIFBYQSBpcyBicm9rZW4gYW5kIGRvZXMgbm90IHdvcmsuCiAgICBNYWlubHksIHRoZSBtbWNfaW5pdCgpIGZ1bmN0aW9uIGNhbm5vdCByZWNvZ25pemUgY3VycmVudCBTRC9NTUMgY2FyZHMuCiAgICBUaGVyZSB3ZXJlIGFscmVhZHkgc29tZSBwYXRjaGVzIGFyb3VuZCB0aGUgd29ybGQgYnV0IG5vbmUgb2YgdGhlbSB3YXMKICAgIG1lcmdlZCBpbnRvIHRoZSBvZmZpY2lhbCB1LWJvb3QgdHJlZS4KCiAgICBUaGlzIHBhdGNoIG1ha2VzIG9yZGVyIGZpeGluZyB0aGlzIGlzc3VlLiBSZXN1Ym1pdCBhZnRlciBjb2RlIGNsZWFudXAuCgogICAgQXBwbGllZCBhbmQgdGVzdGVkIG9uIFBYQSAyNzAgKFRyaXplcHNJViBtb2R1bGUpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gQmFiaWMgPHNiYWJpY0BkZW54LmRlPgoKY29tbWl0IDk2YmJmYTFlNjYyNWNlMjNhMTUwOTM2ODYzYjNlY2Y0Yzg1M2ViMzMKQXV0aG9yOiBzdGVmYW5vIGJhYmljIDxzYmFiaWNAZGVueC5kZT4KRGF0ZToJVHVlIE5vdiAyMCAxMDozNzowNCAyMDA3ICswMTAwCgogICAgRml4IGdjYyBpc3N1ZXMgaW4gcHhhLXJlZ3MuaAoKICAgIEZpeCBnY2M0IGlzc3VlLiBXaXRoIHNvbWUgdG9vbGNoYWluLCBhIHByZXZpb3VzIHBhdGNoIHRoYXQgZml4ZXMgZ2NjNAogICAgaXNzdWVzIGdlbmVyYXRlcyB3cm9uZyBjb2RlLgogICAgKFByb2JsZW0gd2FzIHJlcG9ydGVkIHdpdGggZ2NjLTQuMC4yLWdsaWJjLTIuMy42L2FybS1zb2Z0ZmxvYXQtbGludXgtZ251KS4KICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIHByb2JsZW0gYW5kIHNvbHZlcyB0aGUgZ2NjLTQgaXNzdWVzIGFzIHRoZSBsaW51eAogICAga2VybmVsIGRvZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFubyBCYWJpYyA8c2JhYmljQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBEbWl0cnkgSXZhbm92IDxpdmFkbWl0cnlAZ21haWwuY29tPgoKY29tbWl0IDcwNDdiMzg4ODc2ZTdiOTA1YjJlYzRlZGI4MDEwNTQzZTM2NDFiODUKQXV0aG9yOiBKZW5zIEdlaHJsZWluIDxzZXdfc0B0cXMuZGU+CkRhdGU6CVR1ZSBKYW4gMjkgMDg6NDU6MDMgMjAwOCArMDEwMAoKICAgIFRRTTgzNHg6IGVuYWJsZSBESENQCgogICAgU2lnbmVkLW9mZi1ieTogSmVucyBHZWhybGVpbiA8c2V3X3NAdHFzLmRlPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhODc3MDA0ZDQ0Y2E3ZGJjMWU2MThhZGQzZWViMWRhN2M4NGU0YmVjCkF1dGhvcjogSmVucyBHZWhybGVpbiA8c2V3X3NAdHFzLmRlPgpEYXRlOglUdWUgSmFuIDI5IDA4OjQ1OjAyIDIwMDggKzAxMDAKCiAgICBUUU04MzR4OiBzdXBwb3J0IGZvciBTcGFuc2lvbiBOLXR5cGUgRmxhc2hlcyAoc2VjdG9yIHNpemUgPSAyNTYgS2lCIGF0IDJ4MTYgQml0KS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZW5zIEdlaHJsZWluIDxzZXdfc0B0cXMuZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg5MzFhYjE3NjAyNWIwM2NmYzMyMGIzZmQxZWNhNDMyYTg4ZWQ1NjAKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglTYXQgSmFuIDI2IDIzOjQxOjE5IDIwMDggLTA1MDAKCiAgICBGaXggY29uZGl0aW9uYWwgY29tcGlsYXRpb24gb2YgbXB4OHh4eF9zcGkgZHJpdmVyCgogICAgVGhpcyBkcml2ZXIgc2hvdWxkIG9ubHkgY29tcGlsZSBpZiBDT05GSUdfTVBDOFhYWF9TUEkgaXMgc2V0CgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjNmNzMyZDNkMzg4MGZlYjUzMWY0OGFmMjQ3YzAyNWJmMDE0NjJiMApBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gMjkgMTc6MDA6MzQgMjAwOCArMDEwMAoKICAgIEFQSTogUHJvdmlkZSBkdW1teSBoYWx0KCkgaW4gdGhlIGdsdWUgbGF5ZXIuCgogICAgVGhpcyBmaXhlcyBhIGRlbW8gYXBwIGxpbmsgZmFpbHVyZSBvbiBwbGF0Zm9ybXMgY29uZmlndXJlZCB3aXRoIENPTkZJR19QQU5JQ19IQU5HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+Cgpjb21taXQgMGRjMWZjMjJhZjg2ZDE2OTkzMzg4ZDllZDk2MzBkYmFhMmQ1MTgyNgpBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gMjkgMTY6NTc6MzggMjAwOCArMDEwMAoKICAgIEFQSTogQ29udmVydCBjb25kaXRpb25hbCBidWlsZGluZyB0byB0aGUgbmV3IHNjaGVtZS4KCiAgICBUaGlzIGZpeGVzIGEgYnVpbGQgYnJlYWthZ2Ugd2l0aCBDT05GSUdfQVBJIGVuYWJsZWQsIHdoaWNoIGFwcGVhcmVkIGFmdGVyCiAgICB0aGUgcmVjZW50IGNoYW5nZXMgaW4gdGhlIFUtQm9vdCBidWlsZCBzeXN0ZW0uCgogICAgU2lnbmVkLW9mZi1ieTogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA5OGI3NDI0ODljMDk3ODBiZTZhODMyZWVhYTRlNWVmZjgyNDc5MmJiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIEphbiAyNSAwOTo1NjoxNyAyMDA4ICswMTAwCgogICAgaW5rYTR4MDogcmVtb3ZlIGRlYWQgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNGY5M2Y4YjFhNGQzNWI2ZDMwMjg0MjEzMmVkYmE5MjBlZjhmNjJhYQpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDIzIDE2OjMxOjA2IDIwMDggLTA2MDAKCiAgICA4Nnh4OiBBZGQgcmVnaW5mbyBjb21tYW5kCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGRjZWJjYjYzODcxNWE2Mjc4ZGE5M2I1NTNkNTAxNmY5OTgyMzgxNgpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDIzIDE2OjMxOjA1IDIwMDggLTA2MDAKCiAgICA4Nnh4OiBBZGQgcHJpbnRfbGF3cyBmdW5jdGlvbiB0byBmc2xfbGF3LmMKCiAgICBUaGlzIGNhbiBiZSB1c2VkIGZvciBkZWJ1ZywgYW5kIHdpbGwgYmUgdXNlZCBieSBib2FyZCBjb2RlCiAgICB0byBoZWxwIGltcGxlbWVudCByZWdpbmZvLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDljZDMyNDI2ZjI2YTA1NjdiYjYxZjMzOWVkZDgzYzZhMmNlOWJmYzMKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAyMyAxNjozMTowNCAyMDA4IC0wNjAwCgogICAgODZ4eDogUmVtb3ZlIG9sZC1zdHlsZSBsYXcgc2V0dXAgY29kZQoKICAgIFRoaXMgaW5jbHVkZXMgbXBjODYxMGhwY2QsIG1wYzg2NDFocGNuLCBhbmQgc2JjODY0MWQuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzEzZDgxODY2NDlkYWU4NzQ2MTNkNDk1YjBjZWNhYTAzOWE5OGIzMApBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDIzIDE2OjMxOjAzIDIwMDggLTA2MDAKCiAgICA4Nnh4OiBDb252ZXJ0IHNiYzg2NDFkIHRvIHVzZSBuZXcgbGF3IHNldHVwIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDMxOTc2ZjYzNjRiOTM4MzNlOTg5ZjU3ZTlmMWUwMjNlMGJlOGM0YwpBdXRob3I6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDIzIDE2OjMxOjAyIDIwMDggLTA2MDAKCiAgICA4Nnh4OiBDb252ZXJ0IG1wYzg2MTBocGNkIHRvIG5ldyBsYXcgc2V0dXAgbWV0aG9kLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ5MzNiOTFmOGE0OWU0MzY2ODFmMTYzZGYzMTczYmViOTFjYWM0NGEKQXV0aG9yOiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAyMyAxNjozMTowMSAyMDA4IC0wNjAwCgogICAgODZ4eDogU3VwcG9ydCBuZXcgbGF3IHNldHVwIG1ldGhvZCBhbmQgY29udmVydCBtcGM4NjQxCgogICAgQWRkcyB0aGUgc3VwcG9ydCBjb2RlIGluIGNwdS9tcGM4Nnh4IGZvciB0aGUgbmV3IGxhdyBzZXR1cCBjb2RlCiAgICByZWNlbnRseSBjcmVhdGVkIGZzbF9sYXcuYywgYW5kIGNoYW5nZXMgdGhlIE1QQzg2NDFIUENOIGNvbmZpZwogICAgdG8gdXNlIHRoaXMgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZWNreSBCcnVjZSA8YmVja3kuYnJ1Y2VAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxYTQxZjdjZTljMDg2ZTIwOGMwZWFiZjUyNTY1YTIzN2FmMmEyYmQxCkF1dGhvcjogQmVja3kgQnJ1Y2UgPGJlY2t5LmJydWNlQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMjMgMTY6MzE6MDAgMjAwOCAtMDYwMAoKICAgIDg2eHg6IFJlYXJyYW5nZSB0aGUgc2VxdWVuY2UgaW4gc3RhcnQuUwoKICAgICogc3BsaXQgdGhlIEJBVCBpbml0aWFsaXphdGlvbiBzbyB0aGF0IG9ubHkgMiBCQVRzIChmb3IgdGhlIGJvb3QgcGFnZQogICAgYW5kIHN0YWNrKSBhcmUgcHJvZ3JhbW1lZCB2ZXJ5IGVhcmx5IG9uLiAgVGhlIHJlc3QgYXJlIGluaXRpYWxpemVkIGxhdGVyLgogICAgKiBNb3ZlIG90aGVyIEJBVCBzZXR1cCwgIGNjc3JiYXIgc2V0dXAsIGFuZCBsYXcgc2V0dXAgbGF0ZXIgaW4gdGhlIGNvZGUKICAgIGFmdGVyIHRyYW5zbGF0aW9uIGhhcyBiZWVuIGVuYWJsZWQuCgogICAgVGhlc2UgY2hhbmdlcyB3aWxsIGZhY2lsaXRhdGUgdGhlIG1vdmluZyBvZiBsYXcgYW5kIEJBVCBpbml0aWFsaXphdGlvbgogICAgdG8gQyBjb2RlLCBhbmQgd2lsbCBhaWQgd2l0aCAzNi1iaXQgcGh5c2ljYWwgYWRkcmVzc2luZyBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZWNreS5icnVjZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDMzZGFjMDNiMWI1ZDYxZTRmZWQ3YmFkNDQ1YmE0MGI0Yzk3ZmViYTAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDIzIDE0OjQxOjM3IDIwMDggKzAxMDAKCiAgICBDb2RpbmcgU3R5bGUgQ2xlYW51cDsgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgODY1ZjBmOTc1NGI5NTE4M2NhZDM5NWRlN2U4Y2I4NWRmMGM2ZWExZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMjMgMTQ6MzE6MTcgMjAwOCArMDEwMAoKICAgIENvZGluZyBTdHlsZSBDbGVhbnVwOyB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBjZmU1Y2E3Nzk3NmFmZGJlN2VjYjg2ZTM5ZmQ3NTA1YmRlNjM2YWNlCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSmFuIDE4IDEwOjA3OjA0IDIwMDggKzA4MDAKCiAgICBtcGM4M3h4OiBDb3JyZWN0IHRoZSBzdHJ1Y3Qgc3BpOHh4eCBpbiBtcGM4eHh4X3NwaS5oCgogICAgVGhlIGNvbW1pdCAwNGE5ZTExODBhYzc2YTdiYWNjMTVhNmZjZDk1YWQ4MzlkNjViZGRiCiAgICBjYXVzZSB0aGUgODN4eCBpbW1hcCBicm9rZW4sIHNvIHRoZSBETUEgYW5kIFBDSSB3aWxsCiAgICBiZSBmYWlsZWQuCgogICAgVGhlIHBhdGNoIGZpeCB0aGUgc3RydWN0IHNwaTh4eHggYW5kIHJtIHN0cnVjdCBzcGk4M3h4LgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZiNDQzOTQ0NDI4NmUwZmNkMDE1OTZkZjUwNGU2Y2E4OTdhZDNlNWEKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU2F0IEFwciAxNCAxNzoxMTo0OSAyMDA3ICswMjAwCgogICAgQVZSMzI6IEFUTkdXMTAwIGJvYXJkIHN1cHBvcnQKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIEFUTkdXMTAwIE5ldHdvcmsgR2F0ZXdheSByZWZlcmVuY2UgZGVzaWduLAogICAgaW5jbHVkaW5nIGZsYXNoLCBldGhlcm5ldCBhbmQgTU1DIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZTAwNjkyN2EwYjlhNTRlOGVlNzY4NWQ4YWM3NDhhYWFkNjgwMTg2MgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTYXQgTm92IDI0IDE4OjE1OjMxIDIwMDcgKzAxMDAKCiAgICBBVlIzMjogSW5pdGlhbGl6ZSBpcGFkZHIsIGxvYWRhZGRyIGFuZCBib290ZmlsZSBhdCBzdGFydHVwCgogICAgSSBkb24ndCBrbm93IHdoeSB0aGUgcmVsZXZhbnQgbGF5ZXJzIGNhbid0IGRvIHRoaXMgYnkgaXRzZWxmLCBidXQgdGhpcwogICAgaXMgd2hhdCBwcGMgZG9lcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA3OTk4OTFlZjdiMWIzNDMyMDMyZWMyMzQ2NmRmNmI2NjVhNzk3ZmE0CkF1dGhvcjogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KRGF0ZToJRnJpIEphbiAxOCAwMDowNDoyOCAyMDA4ICswMTAwCgogICAgQWRkIEFjVHV4IGJvYXJkIHN1cHBvcnQKCiAgICBIaSwKCiAgICBUaGUgcGF0Y2ggYWRkcyA0IGJvYXJkcywgY2FsbGVkIEFjVHV4LTEgLi4gQWNUdXgtNC4gVGhpcyBwYXRjaCBjb250YWlucyB0aGUKICAgIGZpbGVzIHRoYXQKICAgIGNvbnRhaW4gY2hhbmdlcyBmb3IgbXVsdGlwbGUgYm9hcmRzLCB0aGUgYm9hcmQtc3BlY2lmaWMgZmlsZXMgZm9sbG93IGFzCiAgICBzZXBhcmF0ZSBwYXRjaGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgU2Nod2luZ2VuIDxtaWNoYWVsQHNjaHdpbmdlbi5vcmc+Cgpjb21taXQgNjZhNDM0NGE0ZDkxMGExMTEyNWRmNzc2ODg5OWFkNTI5NzE5ODU1ZQpBdXRob3I6IE1pY2hhZWwgU2Nod2luZ2VuIDxtaWNoYWVsQHNjaHdpbmdlbi5vcmc+CkRhdGU6CVdlZCBKYW4gMTYgMTk6NTM6MjMgMjAwOCArMDEwMAoKICAgIGFkZCBBY1R1eC00IGJvYXJkIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFNjaHdpbmdlbiA8bWljaGFlbEBzY2h3aW5nZW4ub3JnPgoKY29tbWl0IGJjMjQzNDVlNDEwMWE1Yzk5NmQ2YjQ4Y2U0OTdiMDljNTMwMjVkYzYKQXV0aG9yOiBNaWNoYWVsIFNjaHdpbmdlbiA8bWljaGFlbEBzY2h3aW5nZW4ub3JnPgpEYXRlOglXZWQgSmFuIDE2IDE5OjUxOjU1IDIwMDggKzAxMDAKCiAgICBhZGQgQWNUdXgtMyBib2FyZCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KCmNvbW1pdCBhZWJmMDBmYzRkMTM0M2IyNDcxNTM3Mzg5M2Y3YjIwYmY0NjJkMWU5CkF1dGhvcjogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KRGF0ZToJV2VkIEphbiAxNiAxOTo1MToxNCAyMDA4ICswMTAwCgogICAgYWRkIEFjVHV4LTIgYm9hcmQgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgU2Nod2luZ2VuIDxtaWNoYWVsQHNjaHdpbmdlbi5vcmc+Cgpjb21taXQgZWE5OWU4ZjA1YjcyNDBmZDY1NzczOWUyODY2NjQ2NjRhZTE2MGFiZQpBdXRob3I6IE1pY2hhZWwgU2Nod2luZ2VuIDxtaWNoYWVsQHNjaHdpbmdlbi5vcmc+CkRhdGU6CVdlZCBKYW4gMTYgMTk6NTA6MzcgMjAwOCArMDEwMAoKICAgIGFkZCBBY1R1eC0xIGJvYXJkIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFNjaHdpbmdlbiA8bWljaGFlbEBzY2h3aW5nZW4ub3JnPgoKY29tbWl0IDNkOWYzYmZiN2EzM2VmZThlNDFlMDFiMDI1NTYzY2Q3MTJjNTdkNjQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglNb24gSmFuIDE0IDE5OjIwOjA4IDIwMDggKzAxMDAKCiAgICBBUk06IHJlbW92ZSB1c2VsZXNzIGZ1bmN0aW9uIGJvYXJkX3Bvc3RfaW5pdAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOTZiZDQ2Mjk0MjAyMmU0NTY5YjU4MmMwNzJhMGVkMjZkZTFjZDE5YgpBdXRob3I6IE1pY2hhZWwgU2Nod2luZ2VuIDxtaWNoYWVsQHNjaHdpbmdlbi5vcmc+CkRhdGU6CVRodSBKYW4gMTAgMTQ6NTk6NDYgMjAwOCArMDEwMAoKICAgIElYUDogZW5hYmxlIFJUUwoKICAgIGVuYWJsZXMgdGhlIFJUUyBzaWduYWwgd2l0aCBDT05GSUdfU0VSSUFMX1JUU19BQ1RJVkUuCiAgICBObyBoYW5kc2hha2luZyBpcyBkb25lLCBidXQgdGhlIGFjdGl2ZSBSVFMgc2lnbmFsIGFsbG93cyB0bwogICAgY29ubmVjdCB0byB0aGUgdGFyZ2V0IHVzaW5nIGEgUEMgd2hpY2ggaXMgdXNpbmcgUlRTL0NUUwogICAgaGFuZHNoYWtlLCBhbmQgZG9lcyBubyBoYXJtIGlmIHRoZSBQQyBpcyBzZXQgdG8gaWdub3JlIFJUUy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIFNjaHdpbmdlbiA8bWljaGFlbEBzY2h3aW5nZW4ub3JnPgoKY29tbWl0IGExY2YwMjdhMDhmOWRjMWMwZTc2OTQ5OWU2ZjRmYmRkY2Y5Y2FiOTMKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglNb24gSmFuIDcgMDg6NDE6MzQgMjAwOCArMDEwMAoKICAgIElYUDogYWRkIGR5bmFtaWMgbWljcm9jb2RlIGFkZHIKCiAgICBhbGxvdyB0byBsb2FkIHRoZSBtaWNyb2RlIGZyb20gZmxhc2ggb3IgcmFtIGJ5IGRvd25sb2FkIGl0IHRocm91Z2gKICAgIHRoZSBzZXJpYWwgb3Igb3RoZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNjNlYmNjNDYxNWRkMzk5MjZjY2Y2MWYxZDVmMzUxMDI2MmVmNjU2NApBdXRob3I6IE1pY2hhZWwgU2Nod2luZ2VuIDxtaWNoYWVsQHNjaHdpbmdlbi5vcmc+CkRhdGU6CVNhdCBOb3YgMTAgMTU6NDQ6MTIgMjAwNyArMDEwMAoKICAgIGxvYWQgaXhwNDJ4IE5QRSBmaXJtd2FyZSBmcm9tIHNlcGFyYXRlIGZsYXNoIGJsb2NrLCByZW1vdmUgZGVhZCBjb2RlCgogICAgSGksCgogICAgdGhlIGZvbGxvd2luZyBwYXRjaCBhZGRzIHN1cHBvcnQgdG8gbW92ZSB0aGUgSVhQNDJYIE5QRSBmaXJtd2FyZSB0byBhCiAgICBzZXBhcmF0ZSBmbGFzaCBibG9jaywgd2hvc2Ugc3RhcnQgYWRkcmVzcyBpcyBkZWZpbmVkIGluCiAgICBDT05GSUdfSVhQNFhYX05QRV9FWFRfVUNPREVfQkFTRS4gVXNpbmcgdGhhdCwgaXQgaXMgcG9zc2libGUgdG8gYnVpbGQKICAgIE5QRS1lbmFibGVkIHUtYm9vdCB3aXRob3V0IGNvcHlyaWdodCBwcm9ibGVtcyBkdWUgdG8gdGhlIE5QRSBmaXJtd2FyZS4KCiAgICBJIGhvcGUgdGhlIHBhdGNoIGFwcGxpZXMsIEkgZ2V0IHdoaXRlc3BhY2UtcmVsYXRlZCBkaWZmZXJlbmNlcyBpbiB0aGUgTlBFCiAgICBmaWxlcyBkdWUgdG8gdHJhaWxpbmcgd2hpdGVzcGFjZSBpbiB0aGUgb3JpZ2luYWwgdmVyc2lvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNTdhMTI3MjAxZWIzZDhjYzE5MTcwYTAwOGUwYmQ3YWY2MDhiZDcyZgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAxNSAxNDoxNTo0NiAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IE1DRjU0N3hfOHggLSBBZGQgTTU0NzVFVkIgYW5kIE01NDg1RVZCIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxYWVlMTExMTM1ZDg2NjBhMTY0ZDRmNmJmN2Q2NmIwMzJlYTUzNWNmCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDE1IDE0OjAyOjQ5IDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogTUNGNTQ3eF84eCAtIEFkZCBNNTQ3eEVWQiBhbmQgTTU0OHhFVkIgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3NzdkMWFiZDk3OTZmMWMyZTE0ODQxN2NjMTA2NTdlODQ3ZDMxOGNlCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDE1IDE0OjAwOjI1IDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogQWRkIE1DRjU0N3hfOHggRkVDIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MmY1NmFkYzBiMjVkNDM4NzVhZDA2N2JhZTZiZTFiY2VhODZiNzlmCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDE1IDEzOjU0OjA5IDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogQWRkIE1DRjU0N3hfOHggZG1hIGNvZGUgYW5kIGhlYWRlciBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNlMDlmYzQ5YjU2ZWEzYzQ0Mjc5NGI2YmU5YjdkYjRiOTlkZmRjODcKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMTUgMTM6NTI6MDMgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBBZGQgTUNGNTQ3eF84eCBkbWEgY29kZSAtIDIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxMTg2NWVhODQ0ZTcxNTRmZDMwYzdlMjg2MGRhNGVlZDRhMTJhZDFmCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDE1IDEzOjQ4OjUyIDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogQWRkIE1DRjU0N3hfOHggZG1hIGNvZGUgLSAxCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZiBieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDYyMWZjM2ZlN2NkNjViNzhiM2NiZDMxZjY1YzlmN2Y3MmIyMmJkMwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAxNSAxMzozOTo0NCAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IEFkZCBNQ0Y1NDd4Xzh4IHJlbGF0ZWQgaGVhZGVyIGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU3MGMwMTg2YWVjYWIxYjc0N2IyZDQ0ZDBlMWQzYzFhYzRjYjI3ZjUKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMTUgMTM6Mzc6MzQgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBBZGQgTUNGNTQ3eF84eCBjcHUgYXJjaAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGUyNzU2ZjRiNTRhYmEwZTA1MjNiODFkZDE0NTY2NjgyOWNmN2ZkNTkKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKYW4gMTQgMTc6NDc6MjMgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBBZGQgTUNGNTIyN3ggY3B1IGFuZCBNNTIyNzdFVkIgc3VwcG9ydC0zCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZiBieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzg3NTgxMDI3OTk0YzE0ODEzMWIyZjExYWE3NTUwMWY3ODJlYzE5YQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEphbiAxNCAxNzo0NjoxOSAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IEFkZCBNQ0Y1MjI3eCBjcHUgYW5kIE1DRjUyMjc3RVZCIHN1cHBvcnQtMgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE1NTJhZjcwZWNhYjExYjlmM2RjZWZmNzUyOGVkMTVmYWY2NzhiOWQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKYW4gMTQgMTc6NDM6MzMgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBBZGQgTUNGNTIyN3ggY3B1IGFuZCBNNTIyNzdFVkIgc3VwcG9ydC0xCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZiBieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzk3YjdiODFhMWYxMDA4Nzk4YWUxMjA2OTEzNTA4Y2M4OWNiM2E3ZApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEphbiAxNCAxNzozNTo0NCAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IEZpeCBDRkkgRmxhc2ggbG93IGxldmVsIFJlYWQvV3JpdGUgbWFjcm8KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhYTVmMWY5ZGM4MTVhNzZmNmRmZmI1ODA3OTg1OTljMDI4ZmU3ZmViCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSmFuIDE0IDE3OjIzOjA4IDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogQWRkIE01MzczRVZCIHBsYXRmb3JtIHN1cHBvcnQgLSAyCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZiBieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWFjNTU5ZDRhYTM1OGY2M2I0OGM2MmI1NjQyMjRjMDZmZWViNGUzNgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEphbiAxNCAxNzoxOTo1NCAyMDA4IC0wNjAwCgogICAgQ29sZEZpcmU6IEFkZCBNNTM3M0VWQiBwbGF0Zm9ybSBzdXBwb3J0IC0gMQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDMyMGQ2MTk5MWZhMzE5MGVlNDE3NjU2MDFlZDAxN2I2YjVmZjdiMmIKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKYW4gMTQgMTc6MTc6MDMgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBVcGRhdGUgRmxleEJ1cyBDUyBmb3IgTUNGNTMyeAoKICAgIERlZmluaXRpb24gdXBkYXRlIGFuZCBjaGFuZ2UgZnJvbSAxNmJpdCB0byAzMmJpdAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDJlNzJhZDA2NDRiOTQwODE3YTg5YTM1OTBjZTBkN2I5OWMwNWMzOTYKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKYW4gMTQgMTc6MTE6NDcgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBQQ0kgYW5kIG1pc2MgdXBkYXRlcyBmb3IgTUNGNTQ0NXgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkMmIxNjQ5MzQ4MGFjM2Q0YTYwYWQ3ZDgzNWIwZGMyN2QyZTk5Y2VlCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSmFuIDE0IDE3OjA2OjU1IDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogTUNGNTQ0NXggaGVhZGVyIGZpbGVzIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkOWFhZTYyNjA5OTNhOTNmN2ZjZjEzYWJmZjg1YTYwMWY0ZjUwZWE3CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSmFuIDE0IDE2OjU5OjQyIDIwMDggLTA2MDAKCiAgICBDb2xkRmlyZTogTUNGNTMyeCBoZWFkZXIgZmlsZXMgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYgYnk6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdhZjc3NTFkMDQ3ZTc0YjJlYzU4NDAwZjk3Yjg3OWM1NjQ0NmIzZTgKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKYW4gMTQgMTU6MzA6MTUgMjAwOCAtMDYwMAoKICAgIENvbGRGaXJlOiBBZGQgbW9kdWxlcyBoZWFkZXIgZmlsZXMKCiAgICBBZGQgQ0Ygc3BlY2lmaWMgbW9kdWxlcyBoZWFkZXIgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBSaWdieSA8anJpZ2J5QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjk1NmFjZDVlZjkzYTQ5ODMzN2Y4YWMyZWM2YWU2YTc3ZDQ5MWRjNQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKYW4gMTcgMTI6NDg6MDAgMjAwOCAtMDYwMAoKICAgIGNvZGluZ3N0eWxlIGNsZWFudXAgZm9yIHNwaSBkcml2ZXIKCiAgICAuLmFuZCBybSB1bnVzZWQgQ09ORklHX0ZTTF9TUEkgZGVmaW5lCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkNTlmZWZmYjQyYzlmMTc0MTE2ZGI3YTgyYTMxMWRmOTg5ODNkZmNlCkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAxNiAxNzoxMjoxMiAyMDA4IC0wNTAwCgogICAgRlNMOiBGaXggY29tbW9uIEVFUFJPTV9kYXRhIHN0cnVjdHVyZSBkZWZpbml0aW9uCgogICAgLSBGaXggRUVQUk9NX2RhdGEgc3RydWN0dXJlIGRlZmluaXRpb24gYWNjb3JkaW5nIHRvIFN5c3RlbSBFRVBST00gRGF0YSBGb3JtYXQuCiAgICAtIFJlYWQgTUFDIGFkZHJlc3NlcyBmcm9tIEVFUFJPTSB0byBldGhYYWRkciBiZWZvcmUgc2F2aW5nIGV0aFhhZGRyIHRvCiAgICAgIGJkLT5iaV9ldGhhZGRyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmJlZTc2NGJkNmRhNTEwYTRhYWQ2MTQ4ODAzMDBjOTY4YmM3MzE4ZApBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMTYgMTU6NDg6MTIgMjAwOCAtMDYwMAoKICAgIDg2eHg6IGVuYWJsZSBjb21tYW5kLWxpbmUgZWRpdGluZwoKICAgIEVuYWJsZSBjb21tYW5kLWxpbmUgZWRpdGluZyBmb3IgYWxsIE1QQzg2eHggYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODBkZGQyMjYyNmQzMjFhNzcyZWJmYmEzMDRlYjc4MzBjYjRmNmJhYwpBdXRob3I6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CkRhdGU6CVdlZCBKYW4gMTYgMjI6Mzc6NDIgMjAwOCAtMDUwMAoKICAgIEltcGxlbWVudCBoYXJkIFNQSSBkcml2ZXIgb24gTVBDODM0OUVNRFMKCiAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIGZzbF9zcGkgZHJpdmVyIG9uIHRoZSBNUEM4MzQ5RU1EUyBldmFsdWF0aW9uIGJvYXJkLgogICAgVGhpcyBib2FyZCBoYXMgYW4gU1QgTTI1UDQwIDRNYml0IEVFUFJPTSBvbiBpdHMgU1BJIGJ1cwoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA0YTllMTE4MGFjNzZhN2JhY2MxNWE2ZmNkOTVhZDgzOWQ2NWJkZGIKQXV0aG9yOiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgpEYXRlOglXZWQgSmFuIDE2IDIyOjM3OjM1IDIwMDggLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgYSBGcmVlc2NhbGUgbm9uLUNQTSBTUEkgY29udHJvbGxlcgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgU1BJIGNvbnRyb2xsZXIgZm91bmQgb24gRnJlZXNjYWxlIFBvd2VyUEMKICAgIHByb2Nlc3NvcnMgc3VjaCBhcyB0aGUgTUNQODM0eCBmYW1pbHkuICBBZGRpdGlvbmFsbHksIGEgbmV3IGNvbmZpZyBvcHRpb24sCiAgICBDT05GSUdfSEFSRF9TUEksIGlzIGFkZGVkIGZvciBnZW5lcmFsIHB1cnBvc2UgU1BJIGNvbnRyb2xsZXIgdXNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE4Y2I0M2E4OWJlNmNmZDI4MzI1N2E2MDNkZDk4NDE1MDNjY2NlMGYKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKYW4gMTcgMTg6MjM6MTkgMjAwOCArMDgwMAoKICAgIG1wYzgzeHg6IEZpeCB0aGUgZmF0YWwgY29uZmxpY3Qgb2YgbWVyZ2UKCiAgICBUaGUgY29tbWl0IDllODk2NDc4ODljZDRiNWFkYTViNWU3Y2FkNmNiZTU1NzM3YTA4ZDcKICAgIHdpbGwgY2F1c2UgdGhlIG1wYzgzMTVlcmRiIGJvYXJkIGNhbid0IGJvb3QgdXAuCgogICAgVGhlIHBhdGNoIGZpeCB0aGF0IGJ1ZywgYW5kIHJlbW92ZSB0aGUgZHVwbGljYXRlZCAjaWZkZWYKICAgIENGR19TUENSX1RTRUNFUCBjb2RlIGFuZCBjbGVhbiB0aGUgU0NDUl9UU0VDMiBmb3IKICAgIE1QQzgzMTNFIHByb2Nlc3Nvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzMjU5ZWVhYTQxNDgxMjVhODE0MTc0NzdmNjJjMDViZDY3ZjYwNTg3CkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CkRhdGU6CVRodSBKYW4gMTcgMDg6NTA6MDkgMjAwOCAtMDUwMAoKICAgIE1lcmdlIFNlcXVvaWEgYmVhdXRpZmljYXRpb24gaW50byBLb3JhdCBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgZTE2OTI1NzczMjExMjkxYjU2MmU3NzE4NzA2MWU5ZGQxZDc1NzIxNwpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUaHUgSmFuIDE3IDA3OjQ1OjA1IDIwMDggKzAxMDAKCiAgICBuZXQ6IGFkZCAnZXRocm90YXRlJyBlbnZpcm9ubWVudCB2YXJpYWJsZQoKICAgIFtQQVRDSF0gbmV0OiBhZGQgJ2V0aHJvdGF0ZScgZW52aXJvbm1lbnQgdmFyaWFibGUKCiAgICBUaGlzIHBhdGNoIHJlcGxhY2VzIHRoZSBidWlsZHRpbWUgY29uZmlndXJhdGlvbiBvcHRpb24KICAgIENPTkZJR19ORVRfRE9fTk9UX1RSWV9BTk9USEVSIHRocm91Z2ggdGhlICdldGhyb3RhdGUnIHJ1bnRpbWUKICAgIGNvbmZpZ3VyYXRpb24gdmVyaWFibGUuIFNlZSBSRUFETUUuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IGJhNTJiZTNkMGU2MThjMjYwNzBlOTNhYWYzYzFmMmQyYWRmNTU3MWYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBKYW4gMTcgMTQ6Mjk6MDQgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogRml4IGNvbXBpbGF0aW9uIHdhcm5pbmdzIGFuZCBjb2Rpbmcgc3R5bGUgaXNzdWVzIGluIEhDVTQvSENVNQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1NWVkMTUxNmNiYzFkYWQzYWUyNzdjNjdlZTA2ZmM0YTQ2ZWFhYzdkCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglUaHUgSmFuIDE3IDE4OjA3OjMyIDIwMDggKzA5MDAKCiAgICBzaDogUmVtb3ZlIENPTkZJR19DT01NQU5EUyBmcm9tIE1TNzcyMFNFIGNvbmZpZyBmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDA1NTYwNmJkMjVlODhjMGNkMDRhZDM0OGE2NzlhMDRiMWI2MTZiZWUKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgpEYXRlOglXZWQgSmFuIDE2IDE4OjM5OjIwIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IE5ldHN0YWwgSENVNCBib2FyZDogYWRkZWQgdmFyaW91cyBmaXhlcyBhbmQgUE9TVAoKICAgIC0gTW92ZWQgc29tZSBjb21tb24gY29kZSB0byBuZXRzdGFsL2NvbW1vbi9ubV9ic3AuYy4KICAgIC0gc2RyYW0gaW5pdGlhbGlzYXRpb24gZ29lcyBnbyBuZXRzdGFsL2NvbW1vbi9maXhlZF9zZHJhbS5jLgogICAgLSBBZGRlZCBzdXBwb3J0IGZvciBQT1NULgogICAgLSBTdHlsaXN0aWMgY2xlYW51cHMgKG11bHRpLWxpbmUgY29tbWVudHMvIGVuZm9yY2UgODAgY29sb21uIHdpZHRoKQoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgNjliMDYzNGE0ZWU5OGM5NzkxODE1NjAwZDQzYjk5ZjYyNmE5NTJmMwpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CkRhdGU6CVRodSBKYW4gMTcgMTI6NTM6NTYgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogbmV0c3RhbC9jb21tb24gZGVmaW5lIHJvdXRpbmVzIHVzZWQgYnkgYWxsIGJvYXJkcwoKICAgIEFkZGVkIHNvbWUgcm91dGluZXMgdXNlZCBieSBhbGwgTmV0c3RhbCBib2FyZHM6CiAgICAtIG5tX2JzcC5jOiAtIG5tX3Nob3dfcHJpbnQgYW5kCgkgICAgLSAgY29tbW9uX21pc2NfaW5pdF9yCgkgICAgLSBzZXRfcGFyYW1zX2Zvcl9zd19pbnN0YWxsLiBWZXJ5IHNwZWNpZmljIGNvZGUgdG8gaGFuZGxlIG91ciBTVwoJICAgICAgaW5zdGFsbGF0aW9uIHByb2NlZHVyZQogICAgLSBmaXhlZF9zZHJhbS5jOiBDb21tb24gcm91dGluZXMgZm9yIEhDVTQgKGFuZCB1cGNvbWluZykgTUNVMjUgYm9hcmRzCiAgICAgIHRvIGhhbmRsZSBzZHJhbSBpbml0aWFsaXphdGlvbi4KICAgIC0gbm0uaDogQ29tbW9uIGhlYWRlcgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgZWZlZmY1MzgyYjdhOTFiNDhhMWFhNjhiMmI3NWY5MmFkMWQzM2ZmOApBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CkRhdGU6CVdlZCBKYW4gMTYgMTg6Mzk6MTggMjAwOCArMDEwMAoKICAgIHBwYzR4eDogTmV0c3RhbCBIQ1U1IGJvYXJkOiBhZGRlZCB2YXJpb3VzIGZpeGVzIGFuZCBQT1NUCgogICAgLSBNb3ZlZCBzb21lIGNvbW1vbiBjb2RlIHRvIG5lc3RhbC9jb21tb24vbm1fYnNwLmMuCiAgICAtIEFkZGVkIHN1cHBvcnQgZm9yIHRoZSB2eFdvcmtzIEVEUi4KICAgIC0gRW5hYmxlIHRyYWNlIGZvciBMYXV0ZXJiYWNoLCBpZiBwcmVzZW50LgogICAgLSBBZGRlZCBzdXBwb3J0IGZvciBQT1NULgogICAgLSBTdHlsaXN0aWMgY2xlYW51cHMgKG11bHRpLWxpbmUgY29tbWVudHMvIGVuZm9yY2UgODAgY29sb21uIHdpZHRoKQoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgNDM3MTA5MGU1ZGE3N2VkYzdiZjlmMjk2MzY0ZGI0ODAxNjM5ZDljNApBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CkRhdGU6CVdlZCBKYW4gMTYgMTg6Mzk6MDggMjAwOCArMDEwMAoKICAgIHBwYzR4eDogTmV0c3RhbCBIQ1U1IGJvYXJkLiBBZGRlZCBQT1NULiBWYXJpb3VzIGZpeGVzCgogICAgLSBWYXJpb3VzIGZpeGVzCiAgICAtIFJlZHVjZWQgcm9tX3NpemUgZnJvbSAzODQgdG8gMzIwIGtCCiAgICAtIEVudmlyb25tZW50IGlzIG5vdyBpbiBmbGFzaAogICAgLSBBZGRlZCBQT1NUCiAgICAtIFN1cHBvcnQgZm9yIE9GCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCA0YmQ1MDM2ZTYwYWZhYzM3ZTQ4NGMyZDM1Y2JiZTdmNmNjMTYyM2U3CkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJV2VkIEphbiAxNiAxODozNzo1MCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBOZXRzdGFsIEhDVTQgYm9hcmQuIEFkZGVkIFBPU1QuIFZhcmlvdXMgZml4ZXMKCiAgICAtIFZhcmlvdXMgZml4ZXMKICAgIC0gUmVkdWNlZCByb21fc2l6ZSBmcm9tIDM4NCB0byAzMjAga0IKICAgIC0gRW52aXJvbm1lbnQgaXMgbm93IGluIGZsYXNoCiAgICAtIEFkZGVkIFBPU1QKICAgIC0gU3VwcG9ydCBmb3IgT0YKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDFhM2FjODZiNzlmY2I2OTAyNzVjODU4NjFjOGVmYTZhMzg5OTA2MGEKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVGh1IEphbiAxNyAxMDo1MzowOCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBDb21wbGV0ZSBEVTQ0MCBib2FyZCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgMTVhMDhiYzJiZWY5MWU1ZjFlYTRiOWNmNjBlNDY4MzJkODZiY2MxZgpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUaHUgSmFuIDE3IDEwOjUyOjMwIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEFkZCBEVTQ0MCBib2FyZCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgYWMzMzFkYTA3ZGIzODYwZjExZmExZDBmZDNkYjdjODEwYmNlMTE5OApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJVGh1IEphbiAxNyAxNTo1Mzo1MiAyMDA4ICswOTAwCgogICAgc2g6IFVwZGF0ZSBTdXBlckggU0NJRiBkcml2ZXIKCiAgICBUaGlzIHBhdGNoIGZpeGVkIHdyb25nIFNINzcyMCBDUFUgbWFjcm8gYW5kIGNoYW5nZWQgbWFjcm8gdGhhdAogICAgY2FsY3VsYXRlZCB2YWx1ZSBvZiBTQ0JSUiByZWdpc3Rlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMzM0ZTQ0MmU2ZmFjNTliZTkxMjQ0MDYzZTliM2Y2Y2EyNWU4ZGFmOApBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgSmFuIDE2IDE1OjEyOjQ3IDIwMDggKzAxMDAKCiAgICBTZXQgaXBzIGRpdmlkb3IgdG8gMS80IG9mIGNzYiBjbG9jay4KCiAgICBQcmV2aW91cyBzZXR0aW5nIGNhdXNlIGlwcyBjbG9jayB0byBiZSBvdXQgb2Ygc3BlYy4gVGhpcyBidWcgd2FzIGZvdW5kIGJ5IEpvaG4KICAgIFJpZ2J5IGZyb20gRnJlZXNjYWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDdkYzM1OGJiMGRlOWUyZmEzNDFmM2I0YzkxNDQ2NmIxZjM0YjJkODkKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDE3IDAyOjE5OjE4IDIwMDggLTA2MDAKCiAgICA4NXh4OiBHZXQgcmlkZSBvZiBvbGQgVExCIHNldHVwIGNvZGUKCiAgICBOb3cgdGhhdCBhbGwgYm9hcmRzIGhhdmUgYmVlbiBjb252ZXJ0ZWQsIHJlbW92ZSBvbGQgY29uZmlnIGNvZGUgYW5kIHRoZQogICAgY29uZmlnIG9wdGlvbiBmb3IgdGhlIG5ldyBzdHlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDNiNTU4ZTI2YTVlZjMxNjM1Nzg3ZDZkNmU5N2Q3MDkzOWQ0Zjg5MmQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDE3IDAyOjAyOjEwIDIwMDggLTA2MDAKCiAgICA4NXh4OiBDb252ZXJ0IFRRTTg1eHggdG8gbmV3IFRMQiBzZXR1cAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNzQxMjFiNDcwYzE0ZjdlYWYyODRlZTgzOGJmZmNhNmY5NTIxMDY5ZQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBKYW4gMTcgMDE6NTY6MzIgMjAwOCAtMDYwMAoKICAgIDg1eHg6IENvbnZlcnQgU1RYR1AzICYgU1RYU1NBIHRvIG5ldyBUTEIgc2V0dXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDE0M2I1MThkOTEyNWI1NGY5NmYxZDdmMWFmYzY0MGI4YWFlODFmZjAKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDE3IDAxOjQ0OjM0IDIwMDggLTA2MDAKCiAgICA4NXh4OiBDb252ZXJ0IFNCQzg1NDAvU0JDODU2MC9TQkM4NTQ4IHRvIG5ldyBUTEIgc2V0dXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDgxODIxOGJhYzZhMTE1OTFlMjU0MmMzNDRkMjMzMGUwZjRlMTk2OGIKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDE3IDAxOjMxOjM0IDIwMDggLTA2MDAKCiAgICA4NXh4OiBDb252ZXJ0IFBNODU0L1BNODU2IHRvIG5ldyBUTEIgc2V0dXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGZmNDY4MWM5Mjg1YjJiNGQyNDU1MmExOWNhY2MxNzY5ZmUyZmM3ZTAKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDE3IDAxOjI1OjMzIDIwMDggLTA2MDAKCiAgICA4NXh4OiBDb252ZXJ0IE1QQzg1NDBFVkFMIHRvIG5ldyBUTEIgc2V0dXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDczYWE5YWMyYjQ2ZjFjZmQwMzkxMDZlYmQ2Yjk4NjUwMTYwMDUyMzQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDE3IDAxOjEyOjIyIDIwMDggLTA2MDAKCiAgICA4NXh4OiBDb252ZXJ0IE1QQzg1NjggTURTIHRvIG5ldyBUTEIgc2V0dXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDBkYjM3ZGMyZWVkMzA4ODRkYjJkYWEyNGRiZDlhMTEzYjVkMDA2MTAKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDE3IDAxOjAxOjA5IDIwMDggLTA2MDAKCiAgICA4NXh4OiBDb252ZXJ0IE1QQzg1NDEvTVBDODU1NS9NUEM4NTQ4IENEUyB0byBuZXcgVExCIHNldHVwCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAyMTlhODFiOThkODM0ZjkwNzFiNmY3YzNiZGM2YjdlYzM5Y2M0NmNjCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IEphbiAxNyAwMDo1MjoyOSAyMDA4IC0wNjAwCgogICAgODV4eDogQ29udmVydCBNUEM4NTQwL01QQzg1NjAgQURTIHRvIG5ldyBUTEIgc2V0dXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDgwZDBiNmExNDk4NzYxYzQzNTViMmRiOWM4MDAxYjA0YzI5NWU3YjgKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgSmFuIDE3IDAwOjMyOjE3IDIwMDggLTA2MDAKCiAgICA4NXh4OiBDb252ZXJ0IEFUVU04NTQ4IHRvIG5ldyBUTEIgc2V0dXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDBmN2EzZGM5NWNiZmYzYzIxYmQ2ZGJjNjM5MzEzNzk2NDEyYmJiYWIKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgSmFuIDE2IDIzOjExOjU3IDIwMDggLTA2MDAKCiAgICA4NXh4OiBDb252ZXJ0IE1QQzg1NDQgRFMgdG8gbmV3IFRMQiBzZXR1cAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgODcxNjMxODA1N2E1ZjYwYWIxYmEwODFlY2UyZGJlODJhZTAwZTFlZQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBKYW4gMTYgMjI6Mzg6MzQgMjAwOCAtMDYwMAoKICAgIDg1eHg6IFJld29ya2VkIGluaXRpYWwgcHJvY2Vzc29yIGluaXQKCiAgICBSZXdvcmtlZCB0aGUgaW5pdGlhbCBwcm9jZXNzb3IgaW5pdGlhbHphdGlvbiBzZXF1ZW5jZToKICAgICogaW50cm9kdWNlZCBjcHVfZWFybHlfaW5pdF9mIHRoYXQgaXMgcnVuIGluIGFkZHJlc3Mgc3BhY2UgMSAoQVM9MSkKICAgICogTW92ZWQgVExCL0xBVyBhbmQgQ0NTUiBpbml0IGludG8gY3B1X2Vhcmx5X2luaXRfZigpCiAgICAqIFJld29ya2VkIGluaXRpYWwgYXNtIGNvZGUgdG8gZG8gbW9zdCBvZiB0aGUgY29yZSBpbml0IGJlZm9yZSBUTEJzCgogICAgVGhlIG1haW4gcmVhc29ucyBmb3IgdGhlc2UgY2hhbmdlcyBhcmUgdG8gYWxsb3cgaGFuZGxpbmcgb2YgMzYtYml0IHBoeXMKICAgIGFkZHJlc3NlcyBpbiB0aGUgZnV0dXJlIGFuZCBzb21lIG9mIHRoZSBpc3N1ZXMgdGhhdCB3aWxsIGV4aXN0IHdoZW4gd2UKICAgIGRvIHRoYXQuCgogICAgVGhlcmUgYXJlIGEgZmV3IGNhdmVhdHMgb24gd2hhdCBjYW4gYmUgaW5pdGlhbGl6ZWQgdmlhIHRoZSBMQVcgYW5kIFRMQgogICAgc3RhdGljIHRhYmxlczoKICAgICogVExCIGVudHJ5IDE0LzE1IGNhbid0IGJlIGluaXRpYWxpemVkIHZpYSB0aGUgVExCIHRhYmxlCiAgICAqIGFueSBMQVcgdGhhdCBjb3ZlcnMgdGhlIGltcGxpY2l0IGJvb3Qgd2luZG93ICg0Ry04TSB0byA0RykgbXVzdCBtYXAgdG8KICAgICAgdGhlIGNvZGUgdGhhdCBpcyBjdXJyZW50bHkgZXhlY3V0aW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNDRhMjNjZmQ2MzYwYTY4ZWFhNDFmOTQ1MTkwNjE4YTU1NTE5ZWFjMwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBKYW4gMTYgMjI6MzM6MjIgMjAwOCAtMDYwMAoKICAgIDg1eHg6IEludHJvZHVjZSBuZXcgdGxiIEFQSQoKICAgIEFkZCBhIHNldCBvZiBmdW5jdGlvbnMgdG8gbWFuaXB1bGF0ZSBUTEIgZW50cmllczoKICAgICAqIHNldF90bGIoKSAtIHdyaXRlIGEgdGxiIGVudHJ5CiAgICAgKiBpbnZhbGlkYXRlX3RsYigpIC0gaW52YWxpZGF0ZSBhIHRsYiBhcnJheQogICAgICogZGlzYWJsZV90bGIoKSAtIGRpc2FibGUgYSB2YXJpYWJsZSBzaXplIHRsYiBlbnRyeQogICAgICogaW5pdF90bGJzKCkgLSBzZXR1cCBpbml0aWFsIHRsYnMgYmFzZWQgb24gc3RhdGljIHRhYmxlCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBiZTg4YjE2OTk4NjNjMjYyODE4ZjNhZjdmNjAxNzNiNGQ0OGRmOGZjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSmFuIDE3IDA3OjUwOjE3IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEZpeCByZW1haW5pbmcgQ09ORklHX0NPTU1BTkRTIGluIDR4eCBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjOGM0MWQ0YTgwYjFhOGFkNTk4NGEyODdkODFlYTc4MDQ5NjI1OWY4CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEphbiAxNiAxMDowNDo0MiAyMDA4IC0wNjAwCgogICAgODV4eDogVXNlIHByb3BlciBkZWZpbmVzIGZvciBQQ0kgYWRkcmVzc2VzCgogICAgV2Ugc2hvdWxkIGJlIHVzaW5nIHRoZSBfTUVNX1BIWVMgZm9yIExBVyBhbmQgVExCIHNldHVwIGFuZCBub3QgX01FTV9CQVNFLgogICAgV2hpbGUgX01FTV9CQVNFICYgX01FTV9QSFlTIGFyZSBub3JtYWxseSB0aGUgc2FtZSwgX01FTV9CQVNFIHNob3VsZCBvbmx5CiAgICBiZSB1c2VkIGZvciBjb25maWd1cmluZyB0aGUgUENJIEFUTVUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA1NGE1MDcwMTE1ZWZmMzhlOWIzMjRiNzhhYmRmYTBiNDUyMDU4MGI5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEphbiAxNiAwOToyMjoyOSAyMDA4IC0wNjAwCgogICAgODV4eDogUmVtb3ZlIG9sZCBzdHlsZSBvZiBMQVcgaW5pdAoKICAgIEFsbCBib2FyZHMgYXJlIG5vdyB1c2luZyB0aGUgbmV3IGZzbF9sYXcgY29kZSBzbyB3ZSBjYW4gZHJvcCB0aGUgb2xkIHZlcnNpb24uCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA0ZDM1MjFjYzc5Y2FiYzYxZWRmMTJjNDhjMGNlMzE4ZDRlZmI3MTJmCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEphbiAxNiAwOToxNToyOSAyMDA4IC0wNjAwCgogICAgODV4eDogY29udmVydCByZW1haW5pbmcgODV4eCBib2FyZHMgb3ZlciB0byB1c2UgbmV3IExBVyBpbml0IGNvZGUKCiAgICBDb252ZXJ0ZWQgQVRVTTg1NDgsIE1QQzg1NjggTURTLCBNUEM4NTQwIEVWQUwsIGFuZCBUUU04NXh4IGJvYXJkcyBvdmVyCiAgICB0byB1c2UgbmV3IExBVyBpbml0IGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA1NzJiMTNhZmM0MjcxMGYyOTU3YzM4MmE3MTAzNjA0MjljMGUwOTliCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEphbiAxNiAwOToxMTo1MyAyMDA4IC0wNjAwCgogICAgODV4eDogY29udmVydCBTVFhHUDMvU1RYU1NBIG92ZXIgdG8gdXNlIG5ldyBMQVcgaW5pdCBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA0NWYyMTY2YWMwMjMzYTkyNjMwNTgzNzhmMzk2MTJiZDExZjYxMTk2CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIEphbiAxNiAwOTowNjo0OCAyMDA4IC0wNjAwCgogICAgODV4eDogY29udmVydCBQTTg1NC9QTTg1NiBvdmVyIHRvIHVzZSBuZXcgTEFXIGluaXQgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZTJiMTU5ZDAwNzBlZTA2ZTRhYzdlMmY5MzgxZDNlOGU1NDJlNjE0YQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBKYW4gMTYgMDk6MDU6MjcgMjAwOCAtMDYwMAoKICAgIDg1eHg6IGNvbnZlcnQgU0JDODU0MC9TQkM4NTYwL1NCQzg1NDggb3ZlciB0byB1c2UgbmV3IExBVyBpbml0IGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDJjZmFhMWFhMWFhYzM5YTgxMDA2YjdiMjdlMGU0MzFiZjIxZjZkZmEKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgSmFuIDE2IDAxOjQ1OjEwIDIwMDggLTA2MDAKCiAgICA4NXh4OiBjb252ZXJ0IE1QQzg1NDEvTVBDODU1NS9NUEM4NTQ4IENEUyBvdmVyIHRvIHVzZSBuZXcgTEFXIGluaXQgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNzIzMmEyNzI0Y2NjOWRjYmMzZWM0ZWY4NGFkYTAyZjEzY2NkMTIzOApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBKYW4gMTYgMDE6MzI6MDYgMjAwOCAtMDYwMAoKICAgIDg1eHg6IGNvbnZlcnQgTVBDODU0MC9NUEM4NTYwIEFEUyBvdmVyIHRvIHVzZSBuZXcgTEFXIGluaXQgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNGJjYWU5YzkyYWVlMGQ3MmEyZjE5YjgxY2FiMjdlZjM4MTA3Y2U3NQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBKYW4gMTYgMDE6MTY6MTYgMjAwOCAtMDYwMAoKICAgIDg1eHg6IGNvbnZlcnQgTVBDODU0NCBEUyBvdmVyIHRvIHVzZSBuZXcgTEFXIGluaXQgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgODNkNDBkZmQ3OWZlODY4Nzk2Mjc1ODAyZjYwMTE2ZDg0YjllNDM5NQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBKYW4gMTYgMDE6MTM6NTggMjAwOCAtMDYwMAoKICAgIDg1eHg6IE1vdmUgTEFXIGluaXQgY29kZSBpbnRvIEMKCiAgICBNb3ZlIHRoZSBpbml0aWFsaXphdGlvbiBvZiB0aGUgTEFXcyBpbnRvIEMgY29kZSBhbmQgcHJvdmlkZSBhbiBBUEkKICAgIHRvIGFsbG93IG1vZGlmaWNhdGlvbiBvZiBMQVdzIGFmdGVyIGluaXQuCgogICAgQm9hcmQgY29kZSBpcyByZXNwb25zaWJsZSB0byBwcm92aWRlIGEgbGF3X3RhYmxlIGFuZCBudW1fbGF3X2VudHJpZXMuCgogICAgV2Ugc2hvdWxkIGJlIGFibGUgdG8gdXNlIHRoZSBzYW1lIGNvZGUgb24gODZ4eCBhcyB3ZWxsLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYmVkOGNlODM4YTYwOWFhYWIxMzZkNDNiMjVlNmRmMmE1MjBiYzg1NApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBEZWMgMjIgMTU6MDM6MTIgMjAwNyArMDEwMAoKICAgIHFlbXUtbWlwczogYWN0aXZlIEhVU0ggUEFSU0VSLCBBVVRPX0NPTVBMRVRFIGFuZCBDTURMSU5FX0VESVRJTkcKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDA3NjRjMTY0ZmVkNjI3N2QzNTljZjEzMmQ1NTE4N2VhMzQyOTAxMTQKQXV0aG9yOiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KRGF0ZToJV2VkIEphbiAxNiAxOToyNzo1MSAyMDA4ICswMjAwCgogICAgTUlQUzpUYXJnZXQgc3VwcG9ydCBmb3IgcWVtdSAtTSBtaXBzCgogICAgV2l0aCBzZXJpYWwsIE5FMjAwMCwgSURFIHN1cHBvcnQuIFRlc3RlZCBpbiBiaWctZW5kaWFuIG1vZGUuCiAgICBNZW1vcnkgc2l6ZSBoYXJkLWNvZGVkIHRvIDEyOE0gZm9yIG5vdywgc28gZG9uJ3QgcGxheSB3aXRoCiAgICB0aGUgLW0gb3B0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgoKY29tbWl0IDdmNTJmYTNjMmRmNTllNDlkYzJiYWRkN2MwODRjZjJkMDA3YzQzOGYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgSmFuIDExIDAwOjAxOjM3IDIwMDggKzAxMDAKCiAgICBGaXggbmZzIGNvbW1hbmQgaGVscCB0byByZWZsZWN0IHRoYXQgdGhlIHNlcnZlcmlwIGlzIG9wdGlvbmFsCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgYjhmNDE2MmE0ZjdhOWJlZTVlOWQwMzA1YzE3ZjJkMzRkZTQ2NmE5YgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CU1vbiBEZWMgMTAgMjI6MzI6MTQgMjAwNyArMDEwMAoKICAgIGJmNTM3LXN0YW1wOiByZW1vdmUgYWxyZWFkeSBkZWZpbmVkIGlzX3plcm9fZXRoZXJfYWRkciBhbmQgaXNfbXVsdGljYXN0X2V0aGVyX2FkZHIKCiAgICBhbmQgbW92ZSBpc192YWxpZF9ldGhlcl9hZGRyIGJvYXJkIGZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBjMmY4OTZiOGZjNDcyMmUzNjkxNTkwM2UxOTQyZTEzOGU2OGNlODA0CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglXZWQgSmFuIDE2IDE2OjEzOjMxIDIwMDggKzA5MDAKCiAgICBkcml2ZXJzL25ldC9ydGw4MTM5LmM6IHJ4X3N0YXR1cyBzaG91bGQgYmUgbGUzMl90b19jcHUocnhfc3RhdHVzKS4KCiAgICByeF9zdGF0dXMgb24gdGhlIG1lbW9yeSBpcyBiYXNpY2FsbHkgaW4gTEUsIGJ1dCBuZWVkcyB0byBiZSBoYW5kbGVkIGluIENQVQogICAgZW5kaWFuLiBsZTMyX3RvX2NwdSgpIHRha2VzIHVwIHRoaXMgbWlzc2lvbi4gRXZlbiBpZiBvbiB0aGUgc2FuZSBoYXJkd2FyZSwKICAgIGl0J2xsIHdvcmsgZmluZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CiAgICBDYzogTWFzYW1pIEtvbWl5YSA8bWtvbWl5YUBzb25hcmUuaXQ+CiAgICBDYzogTHVjYXMgSmluIDxsdWNhc2ppbkBnbWFpbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDk2YTIzNjc0NmZlNmE3Yjg0ODAyYWZiNGVkMzE1MzY2OTZkMzQ4MTIKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CVdlZCBKYW4gMTYgMTY6MTI6MjYgMjAwOCArMDkwMAoKICAgIGRyaXZlcnMvbmV0L3J0bDgxMzkuYzogRml4IGNhY2hlIGNvaGVyZW5jeSBpc3N1ZXMKCiAgICBDdXJyZW50IGRyaXZlciBpcyBtZWFudCBmb3IgY2FjaGUgY29oZXJlbnQgc3lzdGVtcy4gVGhpcyBwYXRjaCBhZGRzCiAgICBmbHVzaF9jYWNoZSgpIHJvdXRpbmVzIHRvIHN1cHBvcnQgY2FjaGUgbm9uLWNvaGVyZW50IHN5c3RlbXMuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgogICAgQ2M6IE1hc2FtaSBLb21peWEgPG1rb21peWFAc29uYXJlLml0PgogICAgQ2M6IEx1Y2FzIEppbiA8bHVjYXNqaW5AZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBkMTI3NmM3NmMxZTJiNTAzNTI5NjY4OTI4MGJhMWFjYjJjNDI1MTA0CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglXZWQgSmFuIDE2IDE2OjExOjE0IDIwMDggKzA5MDAKCiAgICBkcml2ZXJzL25ldC9ydGw4MTM5LmM6IEZpeCB0eCB0aW1lb3V0CgogICAgInRvID0gKGN1cnJ0aWNrcygpICsgUlRMX1RJTUVPVVQpIiBoYXMgcG9zc2liaWxpdGllcyB0byB3cmFwIGFyb3VuZC4gSWYgaXQKICAgIGRvZXMsIHRoZSBjb25kaXRpb24gIihjdXJydGlja3MoKSA8IHRvKSIgYmVjb21lcyBpbnZhbGlkIGFuZCBpbW1lZGlhdGVseQogICAgbGVhZHMgdG8gdHggdGltZW91dCBlcnJvci4gVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHRoZSBmaW5lLWdyYWRlZCB1ZGVseSgxMCkKICAgIGxvb3BzIHRvIGVhc2UgdGhlIGltcGFjdCBvZiB3cmFwcGluZyBhcm91bmQuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgogICAgQ2M6IE1hc2FtaSBLb21peWEgPG1rb21peWFAc29uYXJlLml0PgogICAgQ2M6IEx1Y2FzIEppbiA8bHVjYXNqaW5AZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCAxOGVlMzIwZmY2M2VkYmY3YjI3YmJlYjA1ZjBlMTJhNTIzMDJjNjhhCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSmFuIDExIDE4OjQ1OjI4IDIwMDggKzA4MDAKCiAgICBUU0VDOiBBZGQgdGhlIHN1cHBvcnQgZm9yIFJlYWxUZWsgUlRMODIxMUIgUEhZCgogICAgQWRkIHRoZSBzdXBwb3J0IG9mIFJlYWxUZWsgUlRMODIxMUIgUEhZLCB0aGUgUlRMODIxMUIKICAgIFBIWSBvbmx5IHN1cHBvcnRzIFJHTUlJIGFuZCBNSUkgbW9kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA4NGEzMDQ3YjcyYjcwZTg2MmIwYjdhOGUyMDU4MDc3NDU3Zjg5YTMyCkF1dGhvcjogSm9ha2ltIFRqZXJubHVuZCA8Sm9ha2ltLlRqZXJubHVuZEB0cmFuc21vZGUuc2U+CkRhdGU6CVdlZCBKYW4gMTYgMDk6NDA6NDEgMjAwOCArMDEwMAoKICAgIFJlbW92ZSBhbm5veWluZyBkZWJ1ZyBwcmludG91dCBmb3IgUEhZIGxlc3MgYm9hcmRzLgoKICAgIFBIWSBsZXNzIGJvYXJkIHByaW50cyBvdXQgbG90cyBvZiAicmVhZCB3cm9uZyAuLi4iOgogICAgcmVhZCB3cm9uZyB2YWx1ZSA6IG1paV9pZCAzLG1paV9yZWcgMiwgYmFzZSBlMDEwMjMyMAogICAgcmVhZCB3cm9uZyB2YWx1ZSA6IG1paV9pZCAzLG1paV9yZWcgMywgYmFzZSBlMDEwMjMyMAogICAgVUVDOiBQSFkgaXMgR2VuZXJpYyBNSUkgKGZmZmZmZmZmKQogICAgcmVhZCB3cm9uZyB2YWx1ZSA6IG1paV9pZCAzLG1paV9yZWcgNCwgYmFzZSBlMDEwMjMyMAogICAgcmVhZCB3cm9uZyB2YWx1ZSA6IG1paV9pZCAzLG1paV9yZWcgMCwgYmFzZSBlMDEwMjMyMAogICAgcmVhZCB3cm9uZyB2YWx1ZSA6IG1paV9pZCAzLG1paV9yZWcgMSwgYmFzZSBlMDEwMjMyMAogICAgcmVhZCB3cm9uZyB2YWx1ZSA6IG1paV9pZCAzLG1paV9yZWcgMSwgYmFzZSBlMDEwMjMyMAogICAgcmVhZCB3cm9uZyB2YWx1ZSA6IG1paV9pZCAzLG1paV9yZWcgNSwgYmFzZSBlMDEwMjMyMAogICAgcmVhZCB3cm9uZyB2YWx1ZSA6IG1paV9pZCAzLG1paV9yZWcgMSwgYmFzZSBlMDEwMjMyMAogICAgcmVhZCB3cm9uZyB2YWx1ZSA6IG1paV9pZCAzLG1paV9yZWcgMSwgYmFzZSBlMDEwMjMyMAogICAgcmVhZCB3cm9uZyB2YWx1ZSA6IG1paV9pZCAzLG1paV9yZWcgNSwgYmFzZSBlMDEwMjMyMAogICAgRlNMIFVFQzA6IEZ1bGwgRHVwbGV4CiAgICBGU0wgVUVDMDogU3BlZWQgMTAwQlQKICAgIEZTTCBVRUMwOiBMaW5rIGlzIHVwCiAgICBVc2luZyBGU0wgVUVDMCBkZXZpY2UKCiAgICBNYWtlIHRoaXMgcHJpbnRvdXQgZGVwZW5kIG9uIFVFQ19WRVJCT1NFX0RFQlVHIGFuZAogICAgcmVtb3ZlIGl0cyBkZWZpbml0aW9uIGluIHVlY19waHkuYwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvYWtpbSBUamVybmx1bmQgPEpvYWtpbS5UamVybmx1bmRAdHJhbnNtb2RlLnNlPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBlZTYyZWQzMjg2ZjgzYjk4Yjc3ODVlMDMxOGRjNjM3OWU3OGY3ZmY2CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAxNSAxNDoxMTowMCAyMDA4IC0wNjAwCgogICAgbmV0OiByZWR1Y2UgYm9vdCBsYXRlbmN5IG9uIFFFIFVFQyBiYXNlZCBib2FyZHMKCiAgICBhY3R1YWxseSBwb2xsaW5nIGZvciBQSFkgYXV0b25lZ290aWF0aW9uIHRvIGZpbmlzaCBlbmFibGVzIHVzIHRvIHJlbW92ZSB0aGUKICAgIDUgc2Vjb25kIGJvb3QgcHJvbXB0IGxhdGVuY3kgcHJlc2VudCBvbiBRRSBiYXNlZCBib2FyZHMuCgogICAgY2FsbCB0byBxZV9zZXRfbWlpX2Nsa19zcmMgaW4gaW5pdF9waHksIGFuZCBtdiBjYWxsIHRvIGluaXRfcGh5IGZyb20KICAgIHVlY19pbml0aWFsaXplIHRvIHVlY19pbml0IGJ5IEpvYWtpbSBUamVybmx1bmQ7IGF1dG9uZWdvdGlhdGlvbiB3YWl0CiAgICBjb2RlIHNoYW1lbGVzc2x5IHN0b2xlbiBmcm9tIHRzZWMgZHJpdmVyLgoKICAgIGFsc28gcm0gdW51c2VkIENPTkZJR19STUlJX01PREUgY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9ha2ltIFRqZXJubHVuZCA8Sm9ha2ltLlRqZXJubHVuZEB0cmFuc21vZGUuc2U+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDU1ZmU3YzU3YThiOTlhMTMwOTI1MDUyZGNkYmI3N2YwNTNkYzUwZTMKQXV0aG9yOiBtaWNoYWVsLmZpcnRoQGJ0LmNvbSA8bWljaGFlbC5maXJ0aEBidC5jb20+CkRhdGU6CVdlZCBKYW4gMTYgMTE6NDA6NTEgMjAwOCArMDAwMAoKICAgIFRTRUMgZHJpdmVyOiBDaGFuZ2UgTURJTyBzdXBwb3J0IHRvIGFsbG93IGFjY2VzcyB0byBhbnkgUEhZcyBvbiB0aGUgTURJTyBidXMKCiAgICBUaGUgY3VycmVudCBUU0VDIGRyaXZlciBsaW1pdHMgTURJTyBhY2Nlc3MgdG8gdGhlIGRldmljZXMgdGhhdCBoYXZlIGJlZW4gY29uZmlndXJlZCBhcyBhdHRhY2hlZAogICAgdG8gYSBUU0VDIE1BQy4gVGhpcyBwYXRjaCBhbGxvd3MgYWNjZXNzIHRvIGFueSBQSFkgZGV2aWNlIG9uIHRoZSBNRElPIGJ1cyB0aHJvdWdoIHRoZSAnbWlpJyBjb21tYW5kcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEZpcnRoIDxtaWNoYWVsLmZpcnRoQGJ0LmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgoKY29tbWl0IDVlOTE4YTk4YzI2ZThhYjliNWQyZDQ4ZDk5OGEyY2VkMmI1Yjg1YjMKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDE2IDAwOjM4OjA1IDIwMDggLTA2MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIE1QQzgzN3hFUkRCCgogICAgTVBDODM3eEVSREIgYm9hcmQgc3VwcG9ydCBpbmNsdWRlczoKICAgICogRERSMiAzMzBNSHogaGFyZGNvZGVkIChzb2xkZXJlZCBvbiB0aGUgYm9hcmQpCiAgICAqIExvY2FsIEJ1cyBOT1IgRmxhc2gKICAgICogSTJDLCBVQVJUIGFuZCBSVEMKICAgICogZVRTRUMgUkdNSUkgKFRTRUMwIC0gUlRMODIxMUIgd2l0aCBNSUk7CiAgICAqCSAgICAgICBUU0VDMSAtIFZTQzczODUgbG9jYWwgYnVzLCBoYXJkY29kZWQsIHJlcXVpcmVzIHNlcGVyYXRlIGZpcm13YXJlCiAgICAqCQkgICAgICAgbG9hZCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBLZXZpbiBMYW0gPGtldmluLmxhbUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9lIEQnQWJicmFjY2lvIDxqb2UuZCdhYmJyYWNjaW9AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOWU4OTY0Nzg4OWNkNGI1YWRhNWI1ZTdjYWQ2Y2JlNTU3MzdhMDhkNwpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gMTYgMTI6MDY6MTYgMjAwOCAtMDYwMAoKICAgIG1wYzgzeHg6IGFkZCBzdXBwb3J0IGZvciBtb3JlIHN5c3RlbSBjbG9jayBwZXJmb3JtYW5jZSBjb250cm9scwoKICAgIFN5c3RlbSByZWdpc3RlcnMgdGhhdCBhcmUgbW9kaWZpZWQgYXJlIHRoZSBBcmJpdGVyIENvbmZpZ3VyYXRpb24KICAgIFJlZ2lzdGVyIChBQ1IpLCB0aGUgU3lzdGVtIFByaW9yaXR5IENvbnRyb2wgUmVnaXN0ZXIgKFNQQ1IpLCBhbmQgdGhlCiAgICBTeXN0ZW0gQ2xvY2sgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAoU0NDUikuCgogICAgU2lnbmVkLW9mZiBieTogTWljaGFlbCBGLiBSZWlzcyA8TWljaGFlbC5GLlJlaXNzQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmIGJ5OiBKb2UgRCdBYmJyYWNjaW8gPGxqZDAxNUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxNmMzY2RlMDUwZTJkMjQzZTYyYjM3NDg2ZjE1NTg1NzA3ODdiZWI4CkF1dGhvcjogSmFtZXMgWWFuZyA8amFtZXMueWFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDE2IDExOjU4OjA4IDIwMDggLTA2MDAKCiAgICBGU0w6IEdlbmVyYWxpemUgUElYSVMgcmVzZXQgY29tbWFuZCBwYXJzaW5nLgoKICAgIEJlZm9yZSwgdGhlIG9yZGVyIG9mIGFyZ3VtZW50cyB0byB0aGUgcGl4aXNfcmVzZXQKICAgIGNvbW1hbmQgbmVlZGVkIHRvIGJlIHN1cHBsaWVkIGluIGEgaGFyZC1jb2RlZCBvcmRlci4KICAgIEdlbmVyYWxpemUgdGhlIGNvbW1hbmQgcGFyc2luZyB0byBhbGxvdyBhbnkgb3JkZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSmFtZXMgWWFuZyA8amFtZXMueWFuZ0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWQ4Zjg2ODdiNzhjM2U5MTdiMTczZjAzODkyNjY5NTM4M2M1NTU1NQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMTUgMTM6NDI6NDEgMjAwOCAtMDYwMAoKICAgIEZTTDogQ29udmVydCBib2FyZC9mcmVlc2NhbGUvY29tbW9uL01ha2VmaWxlIHRvIHVzZSBDT05GSUdfCgogICAgQ29udmVydCB0aGUgYm9hcmQvZnJlZXNjYWxlL2NvbW1vbi9NYWtlZmlsZSB0byB1c2UKICAgIENPTkZJR18qIG9wdGlvbnMgdG8gc2VsZWN0IHdoaWNoIGZpbGVzIHRvIGNvbmRpdGlvbmFsbHkKICAgIGNvbXBpbGUgaW50byB0aGUgYm9hcmQvZnJlZXNjYWxlL2NvbW1vbiBsaWJyYXJ5IHJhdGhlcgogICAgdGhhbiBjb25kaXRpb25hbGx5IGNvbXBpbGluZyBlbnRpcmUgZmlsZXMuCgogICAgTm93IGhhbmRsZXM6OgoJQ09ORklHX0ZTTF9QSVhJUwoJQ09ORklHX0ZTTF9ESVVfRkIKCUNPTkZJR19QUV9NRFNfUElCCgogICAgQ09ORklHX0lEX0VFUFJPTSBpcyBpbnRyb2R1Y2VkIHVudGlsIENGR19JRF9FRVBST00gaXMgZ29uZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdjMjIyMWViMjMwMzcyYTllNTM3YzRmNjYzNmIxNDdiMDkwOTMyNWYKQXV0aG9yOiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMTUgMTY6Mzg6MzggMjAwOCArMDgwMAoKICAgIFVzZSBDT05GSUdfVUxJNTI2WCBhcyBNUEM4NjEwSFBDRCBkZWZhdWx0IEV0aGVybmV0IGRyaXZlcgoKICAgIFVzZSBkcml2ZXIvbmV0L3VsaTUyNnguYyBhcyBNUEM4NjEwSFBDRCBkZWZhdWx0IEV0aGVybmV0IGRyaXZlci4KICAgIFJlbW92ZSB1bnVzZWQgZXRoZXJuZXQgQ09ORklHXyBvcHRpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDcxMWE3OTQ2Mjc3ZDJlMjlhZjQ4MTAxMWU4NjM1ZTk5NzVjNTRlNDUKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDE1IDE0OjA1OjE0IDIwMDggLTA2MDAKCiAgICBtcGM4M3h4OiBmaXggUUUgRVRIUFJJTUVzIHRvIGNvcnJlY3QgJ0ZTTCBVRUMwJyB2YWx1ZQoKICAgIGNvbnRpbnVhdGlvbiBvZiBjb21taXQgYjk2YzgzZDRhZTQ3NWE3MGVmMjYzNWNkMGU3NDgxNzRjNDRjODYwMQoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzYzZWVhOWZmN2YxOWEyY2JhMTdmMjYyYmQxNzU1OWYxNjZlMTM0ZQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMTUgMDk6NTE6MTIgMjAwOCAtMDYwMAoKICAgIG1wYzgzeHg6IGNsZWFuIHVwIG1wYzgzNjBlbWRzLmMgd2FybmluZ3MKCiAgICBtcGM4MzYwZW1kcy5jOiBJbiBmdW5jdGlvbiAnZnRfYm9hcmRfc2V0dXAnOgogICAgbXBjODM2MGVtZHMuYzozMjc6IHdhcm5pbmc6IGFzc2lnbm1lbnQgbWFrZXMgcG9pbnRlciBmcm9tIGludGVnZXIgd2l0aG91dCBhIGNhc3QKICAgIG1wYzgzNjBlbWRzLmM6MzI5OiB3YXJuaW5nOiBwYXNzaW5nIGFyZ3VtZW50IDIgb2YgJ2ZkdF9nZXRwcm9wJyBtYWtlcyBpbnRlZ2VyIGZyb20gcG9pbnRlciB3aXRob3V0IGEgY2FzdAogICAgbXBjODM2MGVtZHMuYzozMzQ6IHdhcm5pbmc6IHBhc3NpbmcgYXJndW1lbnQgMiBvZiAnZmR0X3NldHByb3AnIG1ha2VzIGludGVnZXIgZnJvbSBwb2ludGVyIHdpdGhvdXQgYSBjYXN0CiAgICBtcGM4MzYwZW1kcy5jOjM0MTogd2FybmluZzogYXNzaWdubWVudCBtYWtlcyBwb2ludGVyIGZyb20gaW50ZWdlciB3aXRob3V0IGEgY2FzdAogICAgbXBjODM2MGVtZHMuYzozNDM6IHdhcm5pbmc6IHBhc3NpbmcgYXJndW1lbnQgMiBvZiAnZmR0X2dldHByb3AnIG1ha2VzIGludGVnZXIgZnJvbSBwb2ludGVyIHdpdGhvdXQgYSBjYXN0CiAgICBtcGM4MzYwZW1kcy5jOjM0ODogd2FybmluZzogcGFzc2luZyBhcmd1bWVudCAyIG9mICdmZHRfc2V0cHJvcCcgbWFrZXMgaW50ZWdlciBmcm9tIHBvaW50ZXIgd2l0aG91dCBhIGNhc3QKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGYwOTg4MGVhNzJhMWM4MDZkYjIyM2NlNTk0YzVmYjFiNjU0MmZmNmEKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSmFuIDE0IDE2OjE0OjQ2IDIwMDggLTA2MDAKCiAgICBtcGM4M3h4OiBmaXggcGh5LWNvbm5lY3Rpb24tdHlwZSBmaXh1cCBjb2RlCgogICAgdXNlIHRyZWUgcGFzc2VkIHRvIHVzIGluIGxvY2FsIGJsb2IsIG5vdCBnbG9iYWwgZmR0LgoKICAgIEFsc28gdXNlIGZkdF9wYXRoX29mZnNldCB0byBjb252ZXJ0IHRvIHJlbGF0aXZlIG9mZnNldCwgc2luY2UgYWJzb2x1dGUKICAgIHJlZmVyZW5jZSBpcyBuZWVkZWQgdG8gY2hlY2sgZm9yIHJnbWlpLWlkIG1vZGUgc3RyaW5nIHZhbHVlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmI0Yzk1MmJlN2M0MzU3YTEzZTgzOWQ0OGRmODA4NTM4MjBjMzNlYgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBKYW4gMTQgMDk6MDE6NDAgMjAwOCAtMDYwMAoKICAgIG1wYzgzeHg6IGZpeCBtcGM4MzEzL21wYzgzMTUvbXBjODM0OWl0eCBNYWtlZmlsZXMgZm9yIHNpbGVudCBidWlsZCAod2l0aCAtcykKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlMWQ4ZWQyYzA4ZGExNGIxNjg2NThjYzVmYTc4NTI5ZDQ2MWFlYTcwCkF1dGhvcjogUG9vbmFtIEFnZ3J3YWwgPGIxMDgxMkBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSmFuIDE0IDA5OjQxOjE0IDIwMDggKzA1MzAKCiAgICBDaGFuZ2VzIGluIHVib290IEREUiBjb25maWd1cmF0aW9uIGZvciBNUEM4MzEzZVJEQgoKICAgIFRoZXNlIGNoYW5nZXMgd2VyZSBpZGVudGlmaWVkIGJ5IEhpZ2hTbWl0aCBCaWxsICxNYXp6eWFyIGFuZCBKb3NlcGggZm9yCiAgICBERFIgY29uZmlndXJhdGlvbiBpbiB1LWJvb3QgY29kZS4gU29tZSBhcmUgcmVsYXRlZCB0byBwZXJmb3JtYW5jZSwgc29tZQogICAgYWZmZWN0IHN0YWJpbGl0eSBhbmQgc29tZSBjb3JyZWN0IGZldyBiYXNpYyBlcnJvcnMgaW4gdGhlIGN1cnJlbnQKICAgIGNvbmZpZ3VyYXRpb24uCgogICAgVGhlIGNoYW5nZXMgaGF2ZSBiZWVuIHRlc3RlZCBhbmQgZm91bmQgdG8gZ2l2ZSBiZXR0ZXIgbWVtb3J5IGxhdGVuY3kKICAgIGZpZ3VyZXMgb24gTVBDODMxM2VSREIuTE1CZW5jaCBmaWd1cmVzIHByb3ZlIGl0LgoKICAgIFRoZSBjaGFuZ2VzIGFyZToKCiAgICAtIENTMF9DT05GSUdbIEFQX25fRU5dIGlzIGNoYW5nZWQgZnJvbSAxIHRvIDAKICAgICAgKHRoaXMgbWF5IGltcHJvdmUgcGVyZm9ybWFuY2UgZm9yIGFwcGxpY2F0aW9uIHdpdGggbWFueSByZWFkCiAgICAgIG9yIHdyaXRlIHRvIG9wZW4gcGFnZXMpLgogICAgLSBDUzBfQ09ORklHW09EVF9XUl9DRkddIGlzIGN1cnJlbnRseSBjaGFuZ2VkIGZyb20gMTAwIHRvCiAgICAgIDAwMSAoYWN0aXZhdGluZyBhbGwgdGhlIENTIHdoZW4gb25seSBvbmUgaXMgdXNlZCBtYXkgY2F1c2UKICAgICAgdW53YW50ZWQgbm9pc2Ugb24gdGhlIHN5c3RlbSkKCiAgICAtIFRJTUlOR19DRkdfMVtBQ1RUT1BSRV0gaXMgY2hhbmdlZCBmcm9tIDljbGtzIHRvIDhjbGtzIChiYXNlZCBvbgogICAgICBUcmFzPTQ1bnMpCiAgICAtIFRJTUlOR19DRkdfMVtSRUZSRUNdIGNoYW5nZWQgZnJvbSAyMSBjbGtzIHRvIDE4Y2xrcy4KCiAgICAtIFRJTUlOR19DRkdfMltBTF0gdmFsdWUgY2hhbmdlZCBmcm9tIDAgc2V0dGluZyB0byAxIGNsayB0bwogICAgICBjb21wbHkgd2l0aCB0aGUgMyBPRFQgY2xrIHJlcXVpcmVtZW50cykKICAgIC0gVElNSU5HX0NGR18yW0NQT10gd2FzIHNldCB0byBhIHJlc2VydmVkIHZhbHVlLCBjaGFuZ2VkIHRvIFJMKzMvNC4KICAgIC0gVElNSU5HX0NGR18yW0ZPVVJfQUNUXSBpcyBjaGFuZ2VkIGZyb20gMTAgY2xrcyB0byA2Y2xrcy4KCiAgICAtIEREUl9TRFJBTV9NT0RFW0FMXWNoYW5nZWQgZnJvbSAwIHRvIDEuCiAgICAtIEREUl9TRFJBTV9NT0RFW1dSUkVDXSBjaGFuZ2VkIGZyb20gMSBjbGsgdG8gMyBjbGtzLgoKICAgIC0gRERSX1NEUkFNX0lOVEVSVkFMW1JFRklOVF0gaXMgY2hhbmdlZCBmcm9tIDB4MDMyMCB0byAweDA1MTAuCiAgICAtIEREUl9TRFJBTV9JTlRFUlZBTFtCU1RPUFJFXSBpcyBjaGFuZ2VkIGZyb20gMHg2NCB0byAweDA1MDAuCgogICAgVGhlIHBhdGNoIGlzIGJhc2VkIG9mIGdpdDovL3d3dy5kZW54LmRlL2dpdC91LWJvb3QtbXBjODN4eC5naXQKICAgIFRoZSBsYXN0IGNvbW1pdCBvbiB0aGlzIHRyZWUgd2FzIDY3NzVjNjg2ODNhNTNjN2FiYzc3ODc3NDY0MWFhYzZmODMzYTJjYmYKCiAgICBTaWduZWQtb2ZmLWJ5OiBQb29uYW0gQWdncndhbC1iMTA4MTIgPGIxMDgxMkBmcmVlc2NhbGUuY29tPgogICAgQ2M6IEJpbGwgSGlnaFNtaXRoIDxCaWxsLkhpZ2hzbWl0aEBmcmVlc2NhbGUuY29tPgogICAgQ2M6IFJhenpheiBNYXp5YXIgPE1SYXp6YXpAZnJlZXNjYWxlLmNvbT4KICAgIENjOiBKb3NlcCBQIEogPFBKLkpvc2VwaEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNWNkZDdkZjRhMDZlZGI5MTUzOWM5YTJlYTdjMTc4YTg3MGMzYTk1CkF1dGhvcjogSmVycnkgVmFuIEJhcmVuIDxndmIudWJvb3RAZ21haWwuY29tPgpEYXRlOglTYXQgSmFuIDEyIDEzOjI0OjE0IDIwMDggLTA1MDAKCiAgICBFbmFibGUgdGhlIGlzZHJhbSBjb21tYW5kIG9uIHRoZSBNUEM4MzYwRU1EUyBib2FyZAoKICAgIFRoZSBpc2RyYW0gY29tbWFuZCBwcmludHMgb3V0IGRlY29kZWQgaW5mb3JtYXRpb24gdGhlICJzZXJpYWwgcHJlc2VuY2UKICAgIGRldGVjdCIgKFNQRCkgY2hpcCBvbiB0aGUgU0RSQU0gU0lNTXMuICBUaGlzIGNhbiBiZSB2ZXJ5IGhlbHBmdWwgd2hlbgogICAgZGVidWdnaW5nIG1lbW9yeSBjb25maWd1cmF0aW9uIHByb2JsZW1zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhiZDUyMmNlNGFmZGEzZDQ4NjhlZThjOTEzZjUzOTQwOTQzMjZiZTEKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKYW4gMTEgMTg6NDg6MjQgMjAwOCArMDgwMAoKICAgIG1wYzgzeHg6IEFkZCB0aGUgc3VwcG9ydCBmb3IgTVBDODMxNUVSREIgYm9hcmQKCiAgICBUaGUgZmVhdHVyZXMgbGlzdDoKICAgIC0gQm9vdCBmcm9tIE5PUiBGbGFzaAogICAgLSBERFIyIDI2Nk1IeiBoYXJkY29kZWQgY29uZmlndXJhdGlvbgogICAgLSBMb2NhbCBidXMgTk9SIEZsYXNoIFIvVyBvcGVyYXRpb24KICAgIC0gSTJDLCBVQVJULCBNSUkgYW5kIFJUQwogICAgLSBlVFNFQzAvMSBzdXBwb3J0CiAgICAtIFBDSSBob3N0CgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjA1ODg0ZWZhNjE0ZTRkOGE5NDEzMTU4ZmMyMjhlMGRjMDJhYjcwNApBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEphbiAxMSAxODo0Njo1MCAyMDA4ICswODAwCgogICAgbXBjODN4eDogQWRkIGNvbmZpZyBvZiBlVFNFQyBlbWVyZ2VuY3kgcHJpb3JpdHkgaW4gU1BDUgoKICAgIFRoZSBUU0VDIGVtZXJnZW5jeSBwcmlvcml0eSBkZWZpbml0aW9uIG9mIDgzMXgvODM3eAogICAgaXMgZGlmZmVyZW50IHRoYW4gdGhlIGRlZmluaXRpb24gb2YgODM0eCBpbiBTUENSIHJlZ2lzdGVyLgoKICAgIEFkZCB0aGUgb3RoZXIgY29uZmlnIG9mIFRTRUMgZW1lcmdlbmN5IHByaW9yaXR5IGludG8KICAgIGNwdV9pbml0LmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5Yjk1ODIzNGIwNzgzZjEzZDkyZjAwN2Y3NTNmZDJjM2FlMmM4NjgwCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSmFuIDExIDE4OjQyOjE5IDIwMDggKzA4MDAKCiAgICBtcGM4M3h4OiBSZW1vdmUgY2FjaGUgY29uZmlnIGZyb20gTVBDODM2MEVSREsuaAoKICAgIFRoZSBNUEM4MzYwRVJESyBib2FyZCBzdXBwb3J0IHBhdGNoIGlzIGFkZGVkIGJlZm9yZQogICAgdGhlIGNvbW1pdCAyYzViNDhmYzIwNWMzZTI3NTI5MTBkYThmMzkyMDllZDA3NTkyOWU1CiAgICBzbywgbWlzcyBjbGVhbiB1cCBpdC4KCiAgICBUaGUgcGF0Y2ggY2xlYW4gdXAgdGhlIG1pc3MgY2FjaGUgY29uZmlnLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNkOWQyMzA1M2Q0MzVjMDhmYzg2OTUwMTdiNWNiOTAwM2ZjZGE3ODYKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIEphbiAxNCAyMzowOTozMiAyMDA4ICswMzAwCgogICAgbmFuZDogRlNMIFVQTSBOQU5EIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IDZjYjIyMzlhZTc2ZmFlZTY0NDM0Mjg2YzRmOGZjNzEzNzQ3MDJkZDIKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxrbXBhcmtAaW5mcmFkZWFkLm9yZz4KRGF0ZToJVHVlIEphbiAxNSAwODo1OTo0NCAyMDA4ICswOTAwCgogICAgT25lTkFORDogU2VwYXJhdGUgVS1Cb290IGRlcGVuZGVudCBjb2RlIGZyb20gT25lTkFORAoKICAgIE9uZU5BTkQ6IFNlcGFyYXRlIFUtQm9vdCBkZXBlbmRlbnQgY29kZSBmcm9tIE9uZU5BTkQKCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgoKY29tbWl0IDgzYTQ5YzhkZDc5OThiZTJkMWYwZDQyMDU5N2EzNmJiZjBiZjQxNjQKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJV2VkIEphbiAxNiAxMDozMzo0NiAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBTZXF1b2lhIGNvZGluZyBzdHlsZSBjbGVhbnVwIGFuZCBiZWF1dGlmaWNhdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDRiM2NjNmVjZTljNDU1NTA0Y2YxMjkwOWZhZTM4ZDA4NWQ4NDhhYzAKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJVHVlIEphbiAxNSAxNDozNTo1OCAyMDA4IC0wNTAwCgogICAgcHBjNHh4OiBSZWZhY3RvciBFQ0MgUE9TVCBmb3IgQU1DQyBEZW5hbGkgY29yZQoKICAgIFRoZSBFQ0MgUE9TVCByZXBvcnRlZCBpbnRlcm1pdHRlbnQgZmFpbHVyZXMgcnVubmluZyBhZnRlciBwb3dlci11cCBvbgogICAgdGhlIEtvcmF0IFBQQzQ0MEVQeCBib2FyZC4JRXZlbiB3aGVuIHRoZSB0ZXN0IHBhc3NlZCwgdGhlIGRlYnVnZ2luZwogICAgb3V0cHV0IG9jY2FzaW9uYWxseSByZXBvcnRlZCBhZGRpdGlvbmFsIHVuZXhwZWN0ZWQgRUNDIGVycm9ycy4KCiAgICBUaGlzIHJlZmFjdG9yaW5nIGhhcyB0aHJlZSBtYWluIG9iamVjdGl2ZXM6ICgxKSBtaW5pbWl6ZSB0aGUgY29kZQogICAgZXhlY3V0ZWQgd2l0aCBFQ0MgZW5hYmxlZCBkdXJpbmcgdGhlIHRlc3RzLCAoMikgYWRkIG1vcmUgY2hlY2tpbmcgb2YgdGhlCiAgICByZXN1bHRzIHNvIGFueSB1bmV4cGVjdGVkIEVDQyBlcnJvcnMgd291bGQgY2F1c2UgdGhlIHRlc3QgdG8gZmFpbCwgYW5kCiAgICAoMykgdXNlIHN5bmNocm9uaXphdGlvbiAob25seSkgd2hlcmUgcmVxdWlyZWQgYnkgdGhlIHByb2Nlc3Nvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCAyNDY1NjY1YjczYWMyZjY4OGFmOTQ1YjFlZDUxMDc1MmFmYTgxNmE0CkF1dGhvcjogRGF2aWQgU2FhZGEgPERhdmlkLlNhYWRhQGVjaXRlbGUuY29tPgpEYXRlOglUdWUgSmFuIDE1IDEwOjQwOjI0IDIwMDggKzAyMDAKCiAgICBRRSBVRUM6IEV4dGVuZCBudW1iZXIgb2Ygc3VwcG9ydGVkIFVFQ3MgdG8gNAoKICAgIFRoaXMgcGF0Y2ggZXh0ZW5kcyB0aGUgbnVtYmVyIG9mIHN1cHBvcnRlZCBVRUNzIHRvIDQuIE5vdGUgdGhhdCB0aGUKICAgIHByb2JsZW0gb2YgUUUgdGhyZWFkIHJlc291cmNlcyBleGhhdXN0aW9uIGlzIHJlc29sdmVkIGJ5IHNldHRpbmcgdGhlCiAgICBjb3JyZWN0IG51bWJlciBvZiBRRSB0aHJlYWRzIGFjY29yZGluZyB0byBFdGhlcm5ldCB0eXBlIChHQkUgb3IgRkUpLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFNhYWRhIDxkYXZpZC5zYWFkYUBlY2l0ZWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJpZ2dlcmJhZGRlcmJlbkBnbWFpbC5jb20+Cgpjb21taXQgNThkMjA0MjU2Y2IxY2UxYmQzMjM4NDdkOWY2NDRhY2Y3MGE3MmU2YQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMTYgMDA6MDE6MDEgMjAwOCArMDEwMAoKICAgIExXTU9ONTogZW5hYmxlIGh1c2ggc2hlbGwgYXMgY29tbWFuZCBsaW5lIHBhcnNlcgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNjZmZmIxODgzZmVlZGRkYzgxM2Q4YTUwN2QwNjBmMmE5NDBlYjJiMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gMTUgMTc6MjI6MjggMjAwOCArMDEwMAoKICAgIEFEUzUxMjE6IGRpc2FibGUgd2F0Y2hkb2c7IGVuYWJsZSBpbWFnZSB0aW1lc3RhbXBzCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyYjRmNzc4ZmU5ZDFkZTYxZDc0NDViYWU3YjMyNTM0MGFiYTY5NjhkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEphbiAxNSAxNzoyMToyOCAyMDA4ICswMTAwCgogICAgVEs4ODVEOiBmaXhlcyBmb3IgYmlnZ2VyIGZsYXNoIHNlY3RvciBzaXplcyBvbiBuZXcgbW9kdWxlczsKICAgIGFkanVzdCBkZWZhdWx0IGVudmlyb25tZW50OwogICAgZGlzYWJsZSBTQ0MgZXRoZXJuZXQgKG5vdCB1c2VkIG9uIHRoaXMgYm9hcmQpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZjkxZDdhZTVjYTg5YWNmOWZhMWVkMTAxNWRjMDc4Y2YyOTU4MTYwNwpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJVHVlIEphbiAxNSAxNzo0ODoxMyAyMDA4ICswOTAwCgogICAgcGNtY2lhOiBSZW1vdmUgQ09ORklHX0NPTU1BTkRTIGZyb20gbWFydWJ1biBwY21jaWEgZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDc2ZTQ5YWE3ZmI4ZTc2Y2M0OTA5MmMxYWNkNTNmZmY5MjFlMjYzNjAKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVR1ZSBKYW4gMTUgMjM6MjU6MjUgMjAwOCArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBTSDc3MTAvU0g3NzEyCgogICAgU0g3NzEwL1NINzcxMiBvZiBTSDMgQ1BVIGFyZSBzdXBwb3J0ZWQuCiAgICBTSDc3MVggaXMgY2FsbGVkIFNILUV0aGVyLCBhbmQgaGFzIHRoZSBFdGhlciBjb250cm9sbGVyIGluIENQVS4KICAgIFRoZSBkcml2ZXIgb2YgRXRoZXIgaXMgbm90IGluY2x1ZGVkIGluIHRoaXMgcGF0Y2guCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDYzYTExYmU2ODMwNjg3MGUwNGQzODUxZWQ5ZmE0MTk1NWNkZjQ4OTQKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVR1ZSBKYW4gMTUgMjM6MDY6MTcgMjAwOCArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBvZiBtYXBfcGh5c21lbSgpIGFuZCB1bm1hcF9waHlzbWVtKCkgdG8gU3VwZXJICgogICAgVGhpcyBwYXRjaCBhZGQgdGhlIHN1cHBvcnQgb2YgbWFwX3BoeXNtZW0oKSBhbmQgdW5tYXBfcGh5c21lbSgpCiAgICB1c2VkIHdpdGggQ29tbW9uIEZsYXNoIEludGVyZmFjZShDRkkpIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgZGIzOTk1ZmU1MTY0YWM1ZDYzMGI3ZWNiOTYyODZhOTgyOGRmYmI1NApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJV2VkIEphbiA5IDE0OjQyOjI3IDIwMDggKzA5MDAKCiAgICBzaDogQWRkIG1haW50YWluZXIgb2YgTVM3NzIwU0UgdG8gdGhlIE1BSU5UQUlORVIgZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBkY2Q5OWU4OGUwM2Q1NmEwYWVlY2Q0MmI1MDdkMmQyOWQyMGFiMGUzCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglXZWQgSmFuIDkgMTQ6Mzk6NTggMjAwOCArMDkwMAoKICAgIHNoOiBGaXggYm9hcmQgbmFtZSBpbiBNUzc3MjBTRSdzIGNvbmZpZy5tawoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBjMGEwNGQ5MzczNGQ3NjhiMzlkYmI3MmZiNTAxYjY1NjE0Yzg2MTVkCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglXZWQgSmFuIDkgMTQ6Mzc6MzYgMjAwOCArMDkwMAoKICAgIHNoOiBBZGQgTVM3NzIwU0UgdG8gTUFLRUFMTAoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBiMmI1ZTJiYjc4YTFlZjRhZTg1MDRmNWEyNmJmZGMzMjkzZWE3NGFlCkF1dGhvcjogWW9zaGloaXJvIFNoaW1vZGEgPHNoaW1vZGEueW9zaGloaXJvQHJlbmVzYXMuY29tPgpEYXRlOglNb24gRGVjIDMgMjI6NTg6NTAgMjAwNyArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBmb3IgTVM3NzIwUlAwMiBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFlvc2hpaGlybyBTaGltb2RhIDxzaGltb2RhLnlvc2hpaGlyb0ByZW5lc2FzLmNvbT4KICAgIENDOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CiAgICBBY2tlZC1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDdjMTBjNTcyNzU5MDE5MzlhOGVjZTRhOWVmM2U3Y2NiN2MxMmEwZWQKQXV0aG9yOiBZb3NoaWhpcm8gU2hpbW9kYSA8c2hpbW9kYS55b3NoaWhpcm9AcmVuZXNhcy5jb20+CkRhdGU6CVdlZCBKYW4gOSAxNDozMDowMiAyMDA4ICswOTAwCgogICAgc2g6IEFkZCBzdXBwb3J0IGZvciBTSDc3MjAgaW4gc2VyaWFsX3NoIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBZb3NoaWhpcm8gU2hpbW9kYSA8c2hpbW9kYS55b3NoaWhpcm9AcmVuZXNhcy5jb20+CiAgICBDQzogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgogICAgQWNrZWQtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBmOTkxM2E4ZWU3MWZmMTRmY2ZjMWM3ZmQwZTY5MTJmODk3ZTY5NDAzCkF1dGhvcjogWW9zaGloaXJvIFNoaW1vZGEgPHNoaW1vZGEueW9zaGloaXJvQHJlbmVzYXMuY29tPgpEYXRlOglNb24gRGVjIDMgMjI6NTg6NDUgMjAwNyArMDkwMAoKICAgIHNoOiBBZGQgc3VwcG9ydCBTSDMgYW5kIFNINzcyMAoKICAgIFNpZ25lZC1vZmYtYnk6IFlvc2hpaGlybyBTaGltb2RhIDxzaGltb2RhLnlvc2hpaGlyb0ByZW5lc2FzLmNvbT4KICAgIENDOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CiAgICBBY2tlZC1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDlhZGZjOWZiOWFkZTY0Y2RmMWVkOWZmODQyZTRmOTAwY2JkYTc4YmQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gMTUgMTA6MTE6MDIgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogUmVtb3ZlIGNvbXBpbGVyIHdhcm5pbmcgaW4gY3B1L3BwYzR4eC80NHhfc3BkX2RkcjIuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxN2JlZjY4MDk3YWIzNjkyNTAwYTM2ZmIzMTExNWJmZjc5MTBhYTk5CkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1c2dpZ2VyQGdteC5jaD4KRGF0ZToJTW9uIEphbiAxNCAxNDowNDo0MiAyMDA4ICswMTAwCgogICAgcHBjXzR4eDogRml4IHBvc3Qgc3ByLmMgZm9yIFBQQzQwNQoKICAgIHBvc3QvY3B1L3BwYzR4eC9zcHIuYyBjb250YWluZWQgYSBmZXcgY2hlY2tzIGZvciByZWdpc3RlcnMgb25seSBwcmVzZW50CiAgICBmb3IgUFBDNDQwIGFuZCBkZXJpdmF0ZXMgcHJvY2Vzc29yLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgMDZjNDI4YmNkNDQxMzAxNGI0MzIzNmU3Nzc2NTAyMjA3MTQyNGZhNgpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEphbiAxNCAxMToxMjowMSAyMDA4ICswODAwCgogICAgUUU6IGZpeCBjb21waWxlIHdhcm5pbmcKCiAgICBxZS5jOiBJbiBmdW5jdGlvbiAncWVfdXBsb2FkX2Zpcm13YXJlJzoKICAgIHFlLmM6MzkwOiB3YXJuaW5nOiBwb2ludGVyIHRhcmdldHMgaW4gcGFzc2luZyBhcmd1bWVudCAyCiAgICB1ZWMuYzogSW4gZnVuY3Rpb24gJ3VlY19pbml0aWFsaXplJzoKICAgIHVlYy5jOjEyMzY6IHdhcm5pbmc6ICd1ZWNfaW5mbycgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZAoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTBkZDk5ZDUxZWZhNTVmZTAyM2UxOWM5N2VhZDkyNjgzNzI1ZWIxMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEphbiAxNCAxMDowNTowNSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBVcGRhdGUgS2lsYXVlYSBDUExEIGNvbmZpZ3VyYXRpb24gd2l0aCBVU0IgUEhZIHJlc2V0IGJpdAoKICAgIE5vdyB0aGF0IGJpdCAyOSBpcyB0aGUgVVNCIFBIWSByZXNldCBiaXQsIHVwZGF0ZSB0aGUgS2lsYXVlYSBwb3J0CiAgICB0byByZW1vdmUgdGhlIFVTQiBQSFkgcmVzZXQgYWZ0ZXIgcG93ZXJ1cC4gVGhlIENQTEQgd2lsbCBrZWVwIHRoZQogICAgVVNCIFBIWSBpbiByZXNldCAoYWN0aXZlIGxvdykgdW50aWwgdGhlIGJpdCBpcyBzZXQgdG8gMSBpbgogICAgYm9hcmRfZWFybHlfaW5pdF9mKCkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGY0M2FkNTM5MDhmMWVhODNhN2MyNmMzNTA1YmJlODQzODJlNDdhYWQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gSmFuIDEzIDIzOjI2OjQ1IDIwMDggKzAxMDAKCiAgICBBUk06IHVwZGF0ZSBtYWNoLXR5cGVzLmggZnJvbSAyLjYuMjQtcmM3IExpbnV4IGtlcm5lbCB0cmVlCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4ZDEwMzA3MWI3YjBlM2VjODg4ODU5YmZjYjlkNDIyNTY1ZTZkNzUwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEphbiAxMyAyMzozNzo1MCAyMDA4ICswMTAwCgogICAgQURTNTEyMTogRml4IHR5cG8gaW4gYWRzNTEyMS5jLCBhZGp1c3QgZGVmYXVsdCBlbnZpcm9ubWVudAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNTFiNjdkMDZmYWE2NzBjNjVkZTZmMjllYzViNWFhY2U3NGIyYTA0NwpBdXRob3I6IEpvaG4gUmlnYnkgPGpyaWdieUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXVnIDI0IDE4OjE4OjQzIDIwMDcgLTA2MDAKCiAgICBBRFM1MTIxOiBNQVggc2xldyByYXRlIGZvciBQQVRBIHBpbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2huIFJpZ2J5IDxqcmlnYnlAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZDUzMWFhYzM0YWFhZDEzOGYxNmNhY2RiNTFkNjE5MDhkNTljMGUyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEphbiAxMyAyMTowNTo1MiAyMDA4ICswMTAwCgogICAgRml4IE1ha2VmaWxlIGRlcGVuZGVuY3kgcHJvYmxlbSB3aXRoIHBhcmFsbGVsIGJ1aWxkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDg5OTY3ODQxZTNlYTAyZTNkMGU1ZTEyOTVhYjY4NzU3NmU1YjEwODkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gSmFuIDEzIDE5OjUxOjM5IDIwMDggKzAxMDAKCiAgICBNUEM4NTQ0RFM6IGZpeCBib2FyZCBNYWtlZmlsZSBmb3Igc2lsZW50IGJ1aWxkICh3aXRoIC1zKQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNmQ3MTRmODJmYjRiOGJiN2UyNjdlOWM3MWI4MDA5YmM2NzBiZmU4OApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBKYW4gMTMgMTY6NDQ6MDggMjAwOCArMDEwMAoKICAgIFBNQzQ0MCBib2FyZDogZml4IGJvYXJkIE1ha2VmaWxlIGZvciBvdXQtb2YtdHJlZSBidWlsZGluZwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNmViM2ZiMTU1ODhkMzE5YmQzMDk5ZDVmOWI5MTAwNTFkZmVhYjZiMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBKYW4gMTMgMTY6MDc6NDQgMjAwOCArMDEwMAoKICAgIE1ha2FsdTogZml4IGNvbXBpbGUgd2FybmluZwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMGExZTAzYmNhZGM3NzM0Njg4YTIxZThkZDJlNDZhNGY2MDgxOTNjMApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBKYW4gMTMgMTI6MzY6MTIgMjAwOCArMDEwMAoKICAgIGNtZF9uYW5kIDogZml4IGNvbXBpbGVyIHdhcm5pbmcuCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA4MjI1ZDFlM2FjMGFiMTQ3Y2RkZTRiMDA0MjgxMjU4MzM4MGFmYjhhCkF1dGhvcjogTWljaGFlbCBTY2h3aW5nZW4gPHJpbmNld2luZEBkaXNjd29ybGQuZGFzY29uLmRlPgpEYXRlOglTYXQgSmFuIDEyIDIwOjI5OjQ3IDIwMDggKzAxMDAKCiAgICBDRkk6IEZpeCBDT05GSUdfRkxBU0hfQ0ZJX0xFR0FDWSBjb21waWxhdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgU2Nod2luZ2VuIDxtaWNoYWVsQHNjaHdpbmdlbi5vcmc+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDJiMmY0M2VkNmEzMGVjZTc3Zjc2MTkxYzg0NWFjOTUyNjdkYWEzMWEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gSmFuIDEzIDAyOjE5OjQ0IDIwMDggKzAxMDAKCiAgICBNUEM4MzYwRVJESzogZml4IGluY29ycmVjdCBpbml0aWFsaXphdGlvbiBvZiBDRkdfSTJDX05PUFJPQkVTCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAwOGU5OWUxZGQwMWEzZTBlM2RjM2E3MTM4ZWI4MjdjOTk3ZTJiNzRkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEphbiAxMyAwMjoxOToxMyAyMDA4ICswMTAwCgogICAgTVBDOHh4IEZFQyBkcml2ZXI6IGZpeCBjb21waWxlciB3YXJuaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYWU2ZDEwNTZkMmMyZTRkMTI2NjQxM2MwYWU4YTZkNTUyOWVjZGU0YgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBKYW4gMTMgMDA6NTk6MjEgMjAwOCArMDEwMAoKICAgIEZpeCBNYWtlZmlsZSBkZXBlbmRlbmNpZXMgaXNzdWVzOyBhbGxvdyBzaWxlbnQgYnVpbGQKCiAgICAtIGdldCByaWQgb2YgInZlcnNpb24iIHRhcmdldCB3aGljaGRpZG4ndCByZWFsbHkgd29yawogICAgLSBtYWtlIGF1dG9jb25mLm1rIGRlcGVuZCBvbiB2ZXJzaW9uX2F1dG9nZW5lcmF0ZWQuaCB0byBtYWtlIHN1cmUKICAgICAgdG8gcmVidWlsZCBmaWxlcyBhcyBuZWVkZWQKICAgIC0gYWRkIFhFQ0hPIG1hY3JvIHRvIGFsbG93IGZvciBzaWxlbnQgYnVpbGQgdXNpbmcgIm1ha2UgLXMiCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBlMzQzYWI4M2Q1MTM1YjU1OGFhNThkYjliZThmYzdmYWE2OGQ3N2VkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEphbiAxMyAwMDo1NTo0NyAyMDA4ICswMTAwCgogICAgQURTNTEyMWU6IGZpeCBjb21waWxlIHdhcm5pbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGYyYjZmNDYxMDYyN2ZlM2Q2MDc2MjBlMjUwODI5MTZhMDE1Mzg4NzUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gSmFuIDEzIDAwOjU1OjE4IDIwMDggKzAxMDAKCiAgICBNVU5JQ2VzOiBmaXggYm9hcmQgTWFrZWZpbGUgZm9yIHJlbW90ZSBidWlsZCBkaXJlY3RvcnkKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDJhZDRkMzk5OWZlODAxYWE3MTYyMjFkN2Q5YTRjNWJkYWQ3NDc4M2EKQXV0aG9yOiBPbGl2ZXIgV2ViZXIgPGFsbW9lbGlAZ214LmRlPgpEYXRlOglXZWQgSmFuIDkgMTc6MDQ6MzggMjAwOCArMDEwMAoKICAgIE1QQzUyMDA6IGRvbid0IHVzZSBoYXJkY29kZWQgTUJBUiBhZGRyZXNzIGluIEJlc3Rjb21tIGZpcm13YXJlCgogICAgU2lnbmVkLW9mZi1ieTogT2xpdmVyIFdlYmVyIDxhbG1vZWxpQGdteC5kZT4KCmNvbW1pdCAwMGFjNTBlMzQ4ZDFiYWNlMjdhMTc0YjdmNTI4ZDExM2JjN2NkZjdmCkF1dGhvcjogQW5kcmVhcyBFbmdlbCA8YW5kcmVhcy5lbmdlbEBlcmljc3Nvbi5jb20+CkRhdGU6CVdlZCBKYW4gOSAxNzoxMDo1NiAyMDA4ICswMTAwCgogICAgTWFrZSBib290cmV0cnkgd29yayB3aGVuIGNvbW1hbmQgbGluZSBlZGl0aW5nIGlzIGVuYWJsZWQKCiAgICBDdXJyZW50bHksIHdoZW4gQ09ORklHX0NNRExJTkVfRURJVElORyBpcyBzZXQsIGJvb3RyZXRyeSBkb2Vzbid0IHdvcmsuCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBwcm9ibGVtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgRW5nZWwgPGFuZHJlYXMuZW5nZWxAZXJpY3Nzb24uY29tPgoKY29tbWl0IDYzMmRlMDY3MmQzYzNhYjUzYWQ3OThjNDdmNWYxZWIyNjAwOGEwZTQKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJRnJpIEphbiAxMSAyMzoyNjoxOCAyMDA4IC0wNTAwCgogICAgUmVmYWN0b3IgY29kZSBmb3IgImkyYyBzZHJhbSIgY29tbWFuZAoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDBkZjZiODQ0NmM0NzIxYjkxY2UzMTE1NDgxMTQ4OTExMzAzNzEwODMKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJVGh1IEphbiAxMCAyMjoyMzozOSAyMDA4IC0wNTAwCgogICAgRml4ICJpMmMgc2RyYW0iIGNvbW1hbmQgZm9yIEREUjIgRElNTXMKCiAgICBNYW55IG9mIHRoZSBTUEQgYnl0ZXMgZm9yIEREUjIgU0RSQU0gYXJlIG5vdCBpbnRlcnByZXRlZCBjb3JyZWN0bHkgYnkgdGhlCiAgICAiaTJjIHNkcmFtIiBjb21tYW5kLiAgVGhpcyBwYXRjaCBwcm92aWRlcyBjb3JyZWN0IGFsdGVybmF0aXZlCiAgICBpbnRlcnByZXRhdGlvbnMgd2hlbiBERFIyIG1lbW9yeSBpcyBkZXRlY3RlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCA2NDEzNGYwMTEyNTQxMjM2MTg3OThmZjc3YzQyYmExOTZiMmVjNDg1CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IEphbiAxMiAyMDozMTozOSAyMDA4ICswMTAwCgogICAgRml4IGxpbmtlciBzY3JpcHRzOiBhZGQgTk9MT0FEIGF0cmlidXRlIHRvIC5ic3MvLnNic3Mgc2VjdGlvbnMKCiAgICBXaXRoIHJlY2VudCB0b29sY2hhaW4gdmVyc2lvbnMsIHNvbWUgYm9hcmRzIHdvdWxkIG5vdCBidWlsZCBiZWNhdXNlCiAgICBvciBlcnJvcnMgbGlrZSB0aGlzIG9uZSAoaGVyZSBmb3Igb2NvdGVhIGJvYXJkIHdoZW4gYnVpbGRpbmcgd2l0aAogICAgRUxESyA0LjIgYmV0YSk6CiAgICBwcGNfNHh4LWxkOiBzZWN0aW9uIC5ib290cGcgW2ZmZmZmMDAwIC0+IGZmZmZmMjNiXSBvdmVybGFwcyBzZWN0aW9uIC5ic3MgW2ZmZmVlOTAwIC0+IGZmZmZmOGFiXQoKICAgIEZvciBtYW55IGJvYXJkcywgdGhlIC5ic3Mgc2VjdGlvbiBpcyBiaWcgZW5vdWdoIHRoYXQgaXQgd3JhcHMgYXJvdW5kCiAgICBhdCB0aGUgZW5kIG9mIHRoZSBhZGRyZXNzIHNwYWNlICgweEZGRkZGRkZGKSwgc28gdGhlIHByb2JsZW0gd2lsbCBub3QKICAgIGJlIHZpc2libGUgdW5sZXNzIHlvdSB1c2UgYSA2NCBiaXQgdG9vbCBjaGFpbiBmb3IgZGV2ZWxvcG1lbnQuIE9uCiAgICBzb21lIGJvYXJkcyBob3dldmVyLCBjaGFuZ2VzIHRvIHRoZSBjb2RlIHNpemUgKGR1ZSB0byBkaWZmZXJlbnQKICAgIG9wdGltaXphdGlvbnMpIHdlIGJhaWwgb3V0IHdpdGggc2VjdGlvbiBvdmVybGFwcyBsaWtlIGFib3ZlLgoKICAgIFRoZSBmaXggaXMgdG8gYWRkIHRoZSBOT0xPQUQgYXR0cmlidXRlIHRvIHRoZSAuYnNzIGFuZCAuc2JzcwogICAgc2VjdGlvbnMsIHRlbGxpbmcgdGhlIGxpbmtlciB0aGF0IC5ic3MgZG9lcyBub3QgY29uc3VtZSBhbnkgc3BhY2UgaW4KICAgIHRoZSBpbWFnZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDNhZmFjNzllYzI3YjkxZGYxODVmMDkwYjMxZGFkOTYyMDc3OWY0NDAKQXV0aG9yOiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSmFuIDExIDIwOjQyOjU4IDIwMDggLTA2MDAKCiAgICBVU0I6IEFkZCBQaGlsaXBzIDE1NjEgUENJLU9IQ0kgaWRzCiAgICAobmVlZGVkIGZvciBNNTQ3NUVWQikKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWU4ZGVmNjczMWNkN2JlYzc0YmZmNDJhMTZiMTM5ZGUwNDAxMDM1MwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gMTIgMTU6NTE6MzQgMjAwOCArMDEwMAoKICAgIEFkZCBNQUlOVEFJTkVSUyBlbnRyaWVzIGZvciBpZHM4MjQ3LCBqdXBpdGVyLCBtdW5pY3NlLCBzYzMgYW5kIHVjMTAxCiAgICBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDVkNDllMGUxNTJhOGI4MWNjMDYwMjI3MWU4ZmQyNTkzNzFmNTU5YjcKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEphbiAxMSAxMjowMzo0MyAyMDA4ICswMTAwCgogICAgTVBDNTEyWDogQ2xlYW51cCBidXMgY2xvY2sgbmFtZXMuCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+Cgpjb21taXQgNjZhOTQ1NWI2YmY0NmQ2OWNlYzVjODhkMWE2MDBkMWQ5YTEwNjcwZApBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDggMTc6MTY6NTkgMjAwOCArMDEwMAoKICAgIE1QQzUxMlg6IEZpeGVkIHR5cG8gaW4gbWFjcm8gbmFtZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCAyODFmZjlhNDVjZjllYjE3YjhhOWFmYzQzNmNiNzgzY2YxZjYyMzYzCkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gOCAxNzoxNjoxNSAyMDA4ICswMTAwCgogICAgYWRzNTEyMTogQWRkZWQgc3VwcG9ydCBmb3IgRkRULgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGExMGZmOTE5NjE4M2U3ZTVmMmFlM2M0ZjVmM2NiZTkyYWU5Y2I3MTkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDEyIDAxOjA1OjUwIDIwMDggKzAxMDAKCiAgICBDb2RpbmcgU3R5bGUgY2xlYW51cDsgdXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGY2ZGI5NDU2NDllNWU5ZDBjN2VmZTMzYjUwN2QyNDNjZGM4NmNmMDMKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxMSAxNToxNToxNyAyMDA4ICswMTAwCgogICAgRml4ZWQgc3ludGF4IGVycm9yIGluIGZ1bmN0aW9uIGluaXRfZTMwMF9jb3JlKCkgb2YgbXBjODN4eC9zdGFydC5TIGlmCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGZhMDU2NjRjZDhjN2FiMWVjZjA2MmFhNzNiOTkyYjdiNThiYmE0OWMKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxMSAxNToxNToxNiAyMDA4ICswMTAwCgogICAgTVVOSUNlczogU2V0IHRoZSByaWdodCBDRkdfREVGQVVMVF9NQkFSIHZhbHVlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDVmYjJiMjM0MmVjZThkNzg2YzZmN2ZkYmExYmMyNzNmZWJkM2IzZDIKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxMSAxNToxNToxNSAyMDA4ICswMTAwCgogICAgYWRkZWQgdGhlIGNvbmZpZyBGaWxlIGZvciB0aGUgTVVOSUNlcyBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA2MzQxZDlkNzIzYjcxYjRjMGJmODZmOTc5ZTRjYjIyOGMwMmZkMDlkCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMTEgMTU6MTU6MTQgMjAwOCArMDEwMAoKICAgIGFkZGVkIGJhc2ljIHN1cHBvcnQgZm9yIHRoZSBNVU5JQ2VzIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDNiYjc3ZmIwOWExY2FhYmY1YTI5MmNjNWI0ODZhNzhiOTc3ZmJlMTkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDEyIDAwOjM5OjM3IDIwMDggKzAxMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HIGFuZCBNQUlOVEFJTkVSUyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDViYTczOTBjM2NiNTc5MTcyYmU2Njg4OGEzNzE3MDdiNDdiNWJlNGUKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMTEgMDI6MTU6MDIgMjAwOCArMDEwMAoKICAgIEZpeCBjb21waWxhdGlvbiBwcm9ibGVtIGluIGNvbW1vbi9jbWRfYm1wLmMKCiAgICBjb21tb24vY21kX2JtcC5jIGZhaWxzIHRvIGNvbXBpbGUgaWYgQ09ORklHX1ZJREVPX0JNUF9HWklQCiAgICBpc24ndCBkZWZpbmVkLiBUaGlzIHBhdGNoIGZpeCB0aGlzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KCmNvbW1pdCA1YWE0MzdiYWFlNWZlNjI5YWJlYWI5OWJlZjc5M2EyYTFmYzcxYjU4CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMTEgMDE6MTI6MDkgMjAwOCArMDEwMAoKICAgIEZpeCBkZWZhdWx0Y29uZmlnIGZvciB0aGUgbWdjb2dlIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGFjOWRiMDY2YjI2OTM1ZjMxYmZmMTVjOTgxNjhiMTlmYWViNjAzZjMKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxMSAwMToxMjowOCAyMDA4ICswMTAwCgogICAgQWRkZWQgc3VwcG9ydCBmb3IgdGhlIG1nY29nZSBib2FyZCBmcm9tIGtleW1pbGUuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgYjQyM2QwNTVjYzJlMTNjNGVmMWYwMzg5YzNmYTI5ODhkMGVlZDgxOApBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglGcmkgSmFuIDExIDAxOjEyOjA3IDIwMDggKzAxMDAKCiAgICBFbmFibGUgU01DIG1pY3JvY29kZSByZWxvY2F0aW9uIHBhdGNoIGZvciBTTUMxLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDM4MWU0ZTYzOTcyMGQ4ZDJlZmI4MDY2YzdjNDhlYzk1ODhjYjI4YzcKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxMSAwMToxMjowNiAyMDA4ICswMTAwCgogICAgQWRkZWQgc3VwcG9ydCBmb3IgdGhlIG1nc3V2ZCBib2FyZCBmcm9tIGtleW1pbGUuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgYmYwNTI5Mzk3M2IzNDhmNjk0NmM5ZGY5MmNkM2M2NWVjZTQyZDBiZQpBdXRob3I6IEphbWVzIFlhbmcgPGphbWVzLnlhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEphbiAxMCAxNjowMjowNyAyMDA4IC0wNjAwCgogICAgRml4IDY0LWJpdCB2c3ByaW50Zi4KCiAgICBUaGVyZSB3ZXJlIHNvbWUgc2l6ZSBhbmQgdW5zaWduZWQgcHJvYmxlbXMuCiAgICBBbHNvIGFkZCBzdXBwb3J0IGZvciAibGwiIHNpemUgbW9kaWZpZXIgaW4gZm9ybWF0IHN0cmluZyBsaWtlIGdsaWJjCgogICAgU2lnbmVkLW9mZi1ieTogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTJmYTM3ZWFjNTMwODYwNjQzYWZhMjZhZTM0N2FmM2QyM2Q2NzMwOQpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgpEYXRlOglXZWQgSmFuIDkgMTI6NDI6MzUgMjAwOCAtMDUwMAoKICAgIFJlbW92ZSBzdXBlcmZsdW91cyBwcmVwcm9jZXNzb3IgY29uZGl0aW9uYWxzIGZyb20gTE03MyBkcml2ZXIKCiAgICAoMSkgUmVtb3ZlIHVudXNlZCBzeW1ib2wgIkNGR19FRVBST01fUEFHRV9XUklURV9FTkFCTEUiLgoKICAgICgyKSBVc2UgY29uZGl0aW9uYWwgTWFrZWZpbGUuby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCBlZmM2ZjQ0N2MxYjk0MGQxNjUwYzRiODU0YzU1OThhNTk1ZGRjM2RhCkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglUaHUgSmFuIDEwIDE3OjU5OjA3IDIwMDggKzAxMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIFRLODg1RCBiYXNlYm9hcmQgZnJvbSBURUxFLURBVEEKCiAgICBUaGUgVEs4ODVEIGJvYXJkIHVzZXMgYSBUUU04ODVEIG1vZHVsZSBmcm9tIFRRLCB0aGlzIHBvcnQgYWRkcyBhbgogICAgb3duIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgYWRkcyBhIGxhc3Rfc3RhZ2VfaW5pdCgpIG1ldGhvZCB0bwogICAgY29uZmlndXJlIHRoZSB0d28gUEhZcywgZGVwZW5kaW5nIG9uIHRoZSBwaHlfYXV0b19uZWdvIGVudmlyb25tZW50CiAgICB2YXJpYWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgMGVjNTk1MjQzZGM5OWVkY2QyNDhiYmNmYmZkNWExZGM4NjBiZGU4OQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBKYW4gMTAgMDI6MjI6MDUgMjAwOCAtMDYwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5nCgogICAgbWFpbi5jOiBJbiBmdW5jdGlvbiAncmVhZGxpbmVfaW50b19idWZmZXInOgogICAgbWFpbi5jOjkyNzogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdwX2J1ZicKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGJlZDUzNzUzZGQxZDdlNmJjYmVhNDMzOWJlMGZiNzc2MDIxNGNjMzUKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMTEgMTQ6MzA6MDEgMjAwOCArMDEwMAoKICAgIEFkZCBGdWppdHN1IENvcmFsUC9MaW1lIHZpZGVvIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGxpbnV4Lml0PgoKY29tbWl0IDIwYzQ1MGVmNjFlZjJlYjFjOTZmOWI1OWJhMGViOGQ4NDliYmEwNTgKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMTEgMDI6Mzk6NDcgMjAwOCArMDEwMAoKICAgIEZpeCB2aWRlbyBjb25zb2xlIG5ld2xpbmUgYW5kIGNhcnJpYWdlIHJldHVybiBoYW5kbGluZwoKICAgIExpbmVzIG9mIHRoZSBsZW5naHQgQ09OU09MRV9DT0xTIG9yIGdyZWF0ZXIgdGhhbiBDT05TT0xFX0NPTFMKICAgIGFyZSBub3QgZGlzcGxheWVkIGNvcnJlY3RseS4gVGhpcyBpcyBhbiBhdHRlbXB0IHRvIGZpeAogICAgdGhpcyBpc3N1ZS4gQWxzbyBhZGQgY2FycmlhZ2UgcmV0dXJuIGhhbmRsaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuYXRvbGlqIEd1c3RzY2hpbiA8YWd1c3RAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGxpbnV4Lml0PgoKY29tbWl0IGQ1YTE2M2Q2YmFhMDRmNWE4ZWRjYzEwZWJjNmZhZDA4NjU3ZDMwOTMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMTEgMTU6NTM6NTggMjAwOCArMDEwMAoKICAgIHBwYzR4eDogRml4IHNkcmFtIGluaXQgb24gU2VxdW9pYSBib2FyZHMKCiAgICBDbGVhciBwb3NzaWJsZSBlcnJvcnMgaW4gTUNTUiByZXN1bHRpbmcgZnJvbSBkYXRhLWV5ZS1zZWFyY2guCiAgICBJZiBub3QgZG9uZSwgdGhlbiB3ZSBjb3VsZCBnZXQgYW4gaW50ZXJydXB0IGxhdGVyIG9uIHdoZW4KICAgIGV4Y2VwdGlvbnMgYXJlIGVuYWJsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQ2MTBhNjA3MzBiNzQ2NGY2ZjY1OWRiNDlkMjY0ZDg5YTdjNzEwNjEKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CUZyaSBKYW4gMTEgMTU6MzE6MDkgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogUmV3b3JrIExpbWUgc3VwcG9ydCBmb3IgbHdtb241CgogICAgUmV3b3JrIExpbWUgc3VwcG9ydCBmb3IgbHdtb241IHVzaW5nIG5ldyB2aWRlbyBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+Cgpjb21taXQgZmY0MWZmYzkzYzE1OTJlNzdhNDRiZGJlYmQ1ZDc4MTczOWYzYWFlMApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgSmFuIDExIDE0OjU1OjE2IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBQTUM0NDAgY29uZmlnIGZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBlM2VkY2IzNmYxNGYwYWFiYjZmNTBlOTYwMTRkNjg3N2Y3M2Q2NGVhCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBKYW4gMTEgMTQ6NTU6MDggMjAwOCArMDEwMAoKICAgIHBweDR4eDogRml4IHNkcmFtIGluaXQgb24gUE1DNDQwIGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDA2MWFhZDRkMzIwZGRkY2UyNjI0NzY5OWRjZjI4NzVlZTJlYTEzNjYKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKYW4gMTAgMjM6MDk6MzMgMjAwOCArMDgwMAoKICAgIG1wYzgzeHg6IEZpeCB0aGUgYnVnIG9mIDI2Nk1IeiBkYXRhIHJhdGUgRERSCgogICAgVGhlIEREUiBkb2Vzbid0IHdvcmsgb24gdGhlIDI2Nk1IeiBkYXRhIHJhdGUsCiAgICB0aGUgcGF0Y2ggZml4IHRoZSBidWcuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGVkMDgzMTdhZDllMzQwYjg4N2JmMmViNDZlOTU2NWEwZjYxMGE5MwpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEphbiAxMCAyMzowODoyNiAyMDA4ICswODAwCgogICAgbXBjODN4eDogTWFrZSB0aGUgY29kZSBtb3JlIHJlYWRhYmxlCgogICAgRm9ybWF0IHRoZSBjb2RlLCBtYWtlIGl0IG1vcmUgcmVhZGFibGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3ZTc0ZDYzZDFhMjExZmJjMzRlYzQyNGUyZGM2NzI2NjAxZjMyM2QwCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSmFuIDEwIDIzOjA3OjIzIDIwMDggKzA4MDAKCiAgICBtcGM4M3h4OiBSZWR1Y2UgdGhlIGxhdGVuY3kgb2YgRERSCgogICAgUmVkdWNlIHRoZSBBTCBmcm9tIDIgdG8gMSBjbG9jayB0byBpbXByb3ZlIHRoZSBwZXJmb3JtYW5jZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2ZjM5MzFhMmJlZDU0MTJjMjBkNWU1NTM2Yzg2NWZiZDY1N2Y3ZDI4CkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSmFuIDEwIDIzOjA2OjA1IDIwMDggKzA4MDAKCiAgICBtcGM4M3h4OiBGaXggdGhlIHdyb25nIGRlZmluaXRpb24gb2YgTVBDODMxNUUKCiAgICBBY2NvcmRpbmcgdG8gdGhlIGxhdGVzdCB1c2VyIG1hbnVhbCBvZiBNUEM4MzE1RSwKICAgIDEpIFRoZSBTVkNPRCBvZiBIUkNXTCBpcyBkaWZmZXJlbnQgdGhhbiA4Mzd4CiAgICAyKSBUaGUgU0NDUiBoYXMgY2hhbmdlcwoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVjMjYzOGVhMDhhNTM3YTFiZDQwOWRiODczYWFhYTMzYTA1M2ViYWUKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKYW4gMTAgMjM6MDU6MDAgMjAwOCArMDgwMAoKICAgIG1wYzgzeHg6IEZpeCB0aGUgdHlwbyBpbiBtcGM4M3h4LmgKCiAgICBUaGUgU1BDUiBhYm91dCBUU0VDIHByaW9yaXR5IGlzIHdyb25nLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgQmFya293c2tpIDxNaWNoYWVsLkJhcmtvd3NraUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9lIEQnQWJicmFjY2lvIDxKb2UuRCdhYmJyYWNjaW9AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM4NmVmMmNkOWVmODE5MzUwNDkyMzFmYTg5ZjM2YzdiNzkzZjJkNGIKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKYW4gMTAgMjM6MDQ6MTMgMjAwOCArMDgwMAoKICAgIG1wYzgzeHg6IEZpeCB0aGUgdHlwbyBpbiBnbG9iYWwgZGF0YSBzdHJ1Y3QKCiAgICBGaXggdGhlIHR5cG8gaW4gZ2xvYmFsX2RhdGEuaAoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDJjNWI0OGZjMjA1YzNlMjc1MjkxMGRhOGYzOTIwOWVkMDc1OTI5ZTUKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKYW4gMTAgMjM6MDM6MDMgMjAwOCArMDgwMAoKICAgIG1wYzgzeHg6IFJlbW92ZSBjYWNoZSBjb25maWcgZnJvbSBjb25maWcuaAoKICAgIGNsZWFuIHVwIHRoZSBjYWNoZSBjb25maWcgZnJvbSBjb25maWdzLmggb2YgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmYWI2ZjU1NmJiYmJkMWJiMzVhNTQzMzE2MWY3ZjE3M2MxOGRmNTU5CkF1dGhvcjogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+CkRhdGU6CVdlZCBKYW4gOSAyMDo1Nzo0NyAyMDA4ICswMzAwCgogICAgbXBjODN4eDogYWRkIHN1cHBvcnQgZm9yIHRoZSBNUEM4MzYwRS1SREsKCiAgICBUaGlzIGlzIE1QQzgzNjBFIGJhc2VkIGJvYXJkIHdpdGg6CiAgICAtIDI1Nk1CIGZpeGVkIFNEUkFNOwogICAgLSA4TUIgSW50ZWwgU3RyYXRhIE5PUiBmbGFzaDsKICAgIC0gU3RNSUNSTyA2NE1pQiBOQU5EIGZsYXNoOwogICAgLSB0d28gMTAvMTAwLzEwMDAgZXRoZXJuZXQgcG9ydHMgY29ubmVjdGVkIHZpYSBCcm9hZGNvbQogICAgICBCQ001NDgxIFBIWXM7CiAgICAtIHR3byAxMC8xMDAgZXRoZXJuZXQgcG9ydHMgY29ubmVjdGVkIHZpYSBOYXRpb25hbAogICAgICBEUDgzODQ4IFBIWXM7CiAgICAtIG9uZSBQQ0kgYW5kIG9uZSBtaW5pUENJIHNsb3RzOwogICAgLSBmb3VyIHNlcmlhbCBwb3J0cyAodHdvIE5TMTY1NTAtY29tcGF0aWJsZSwgdHdvIFVDQ3MpOwogICAgLSBmb3VyIFVTQiBwb3J0cyB3b3JraW5nIHRocm91Z2ggTVBDODM2MEUgIkZIQ0kiIFVTQiBjb250cm9sbGVyOwogICAgLSBGdWppdHN1IE1CODYyNzcgZ3JhcGhpY3MgY29udHJvbGxlcjsKICAgIC0gQW5hbG9nIHRvIERpZ2l0YWwgQ29udmVydGVyL1RvdWNoc2NyZWVuIGNvbnRyb2xsZXIsIEFENzg0MwogICAgICBjb25uZWN0ZWQgdG8gU1BJLgoKICAgIEZlYXR1cmVzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBwYXRjaCBhcmU6CiAgICAtIFN0TUlDUk8gNjRNaUIgTkFORCBmbGFzaCAocGF0Y2ggc2VudCk7CiAgICAtIE1JTlQgZnJhbWVidWZmZXIgaW5pdGlhbGl6YXRpb24gKHBhdGNoIGlzIHBlbmRpbmcpOwogICAgLSBGZXRjaGluZyBwcm9kdWN0aW9uIGluZm9ybWF0aW9uIGZyb20gdGhlIEVFUFJPTSB2aWEgSTJDOwogICAgLSBGSENJIFVTQjsKICAgIC0gVHdvIHNsb3cgVUNDcyB1c2VkIGFzIFJTLTQ4NSBVQVJUcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjNkMmNkZTdhM2FhMWU4M2I3OTY4Y2RmZjkyOWU1MmM4Y2M2MTdiYgpBdXRob3I6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgpEYXRlOglXZWQgSmFuIDkgMjA6NTc6NDAgMjAwOCArMDMwMAoKICAgIG1wYzgzeHg6IGFkZCAiZnNsLCBxZSIgY29tcGF0aWJsZSBmaXh1cHMKCiAgICBOZXcgZGV2aWNlIHRyZWVzIHdpbGwgdXNlICJmc2wscWUiIGNvbXBhdGlibGUgcHJvcGVydGllcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTc3YjU3NTgzYTdjMzQwMTBlNTY2YTA5YTY3OWVjM2MxODM2Zjk5NgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gOSAxNToyNDowNiAyMDA4IC0wNjAwCgogICAgbXBjODN4eDogYWRkIG1pc3NpbmcgQ09ORklHX0hBU19FVEgwIGRlZmluZXMKCiAgICB0aGUgbmV3IGxpYmZkdCBjb2RlIG9ubHkgdXBkYXRlcyBldGgwIGlmIENPTkZJR19IQVNfRVRIMAogICAgaXMgZGVmaW5lZDsgYWRkIHRoZSBkZWZpbmUgdG8gdGhlIG1pc3NpbmcgYm9hcmQgY29uZmlncy4KCiAgICBUaGFua3MgdG8gRW1pbGlhbiBNZWR2ZSBmb3IgZmluZGluZyB0aGlzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjgzMGI3ZjE2MzU5ODRiYTYwNzIxOWZjYmQ3ODU5N2MyOGVlYjUyOQpBdXRob3I6IEJlY2t5IEJydWNlIDxiZ2lsbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSmFuIDEwIDE0OjAwOjI4IDIwMDggLTA2MDAKCiAgICA4Nnh4OiBTdXBwb3J0IDJHQiBESU1NcwoKICAgIENvbmZpZ3VyZSB0aGUgbnVtYmVyIG9mIGJpdHMgdXNlZCB0byBhZGRyZXNzIHRoZSBiYW5rcyBpbnNpZGUgdGhlIFNEUkFNCiAgICBkZXZpY2UuICBUaGUgZGVmYXVsdCByZWdpc3RlciB2YWx1ZSBvZiAwIG1lYW5zIDIgYml0cyB0byBhZGRyZXNzIDQgYmFua3MuCiAgICBIaWdoZXIgY2FwYWNpdHkgZGV2aWNlcyBsaWtlIGEgMkdCIERJTU0gcmVxdWlyZSAzIGJpdHMgdG8gYWRkcmVzcyA4IGJhbmtzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlY2t5IEJydWNlIDxiZ2lsbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRkMzMyZGJlYjA4ZjU4NjNkMWVhNjlkOTFhMDBjNTQ5OWQzYTg3ZWQKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzZ2lnZXJAZ214LmNoPgpEYXRlOglUaHUgSmFuIDEwIDE4OjUwOjMzIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IE1ha2UgU2VxdW9pYSBib290IHZ4V29ya3MKCiAgICB2eFdvcmtzIGV4cGVjdHMgaW4KICAgIFRMQiAwIGEgZW50cnkgZm9yIHRoZSBNYWNoaW5lIENoZWNrIGludGVycnVwdAogICAgVExCIDEgYSBlbnRyeSBmb3IgdGhlIFJBTQogICAgVExCIDIgYSBlbnRyeSBmb3IgdGhlIEVCQwogICAgVExCIDMgYSBlbnRyeSBmb3IgdGhlIGJvb3QgZmxhc2gKCiAgICBBZnRlciBjaGFuZ2luZyB0aGUgYmF1ZHJhdGUgdG8gOTYwMCBJIGhhZCBubyBwcm9ibGVtcyB0byBib290IHRoZQogICAgdnhXb3JrcyBpbWFnZSBhcyBkaXN0cmlidXRlZCBieSBXaW5kUml2ZXIgKFJldmlzaW9uIDIuMC8xIGZyb20KICAgIEp1bmUgMTgsIDIwMDcpCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCA2ZDgxODRiMDBjMGQxZDcwOTBlNGEyZjUxNGUzMTBkOThhMzk0ZjhkCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVdlZCBKYW4gOSAyMzoxMDoyNyAyMDA4IC0wNTAwCgogICAgcHBjNHh4OiBGaXggZGZsdXNoKCkgdG8gcmVzdG9yZSBEVkxJTSByZWdpc3RlcgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDI1MmY2MGIwNjhkMWY5NDE5MGI1YmNmZGExNjlkYjU4MjM4N2UxNWUKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUaHUgSmFuIDEwIDAzOjUyOjQ0IDIwMDggLTA1MDAKCiAgICBOaW9zMjogcmVtb3ZlIGNvbW1vbi9jbWRfYmRpbmZvLmMgdW51c2VkIHZhcmlhYmxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBNY051dHQgPHNtY251dHRAcHN5ZW50LmNvbT4KCmNvbW1pdCA0MjJiMWEwMTYwMmI2ZTJmYmY4NDQ0YTExOTJjN2JhMzE0NjFmZDRjCkF1dGhvcjogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KRGF0ZToJV2VkIEphbiA5IDE4OjE1OjUzIDIwMDggLTA1MDAKCiAgICBGaXggRXRoZXJuZXQgaW5pdCgpIHJldHVybiBjb2RlcwoKICAgIENoYW5nZSByZXR1cm4gdmFsdWVzIG9mIGluaXQoKSBmdW5jdGlvbnMgaW4gYWxsIEV0aGVybmV0IGRyaXZlcnMgdG8gY29uZm9ybQogICAgdG8gdGhlIGZvbGxvd2luZzoKCgk+PTA6IFN1Y2Nlc3MKCTwwOiAgRmFpbHVyZQoKICAgIEFsbCBkcml2ZXJzIGdvaW5nIGZvcndhcmQgc2hvdWxkIHJldHVybiAwIG9uIHN1Y2Nlc3MuICBDdXJyZW50IGRyaXZlcnMgdGhhdAogICAgcmV0dXJuIDEgb24gc3VjY2VzcyB3ZXJlIGxlZnQgYXMtaXMgdG8gbWluaW1pemUgY2hhbmdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxiaWdnZXJiYWRkZXJiZW5AZ21haWwuY29tPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KICAgIEFja2VkLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgogICAgQWNrZWQtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CiAgICBBY2tlZC1CeTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkM2E2NTMyY2JlMjYzZDk5MmY0OWU4NmFjOTViZWRlMjhlOTZmOWM4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEphbiAxMCAwMDo1NToxNCAyMDA4ICswMTAwCgogICAgQ29kaW5nIFN0eWxlIGNsZWFudXA7IHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDE3YTQxZTQ0OTIxMjFjY2Y5ZmEyYzEwYzJjYjFhNmQxYzE4ZDc0ZjcKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDkgMTY6NTY6NTQgMjAwOCAtMDYwMAoKICAgIEFkZCBRRSBicmcgZnJlcSBhbmQgY29ycmVjdCBxZSBidXMgZnJlcSBmZHQgdXBkYXRlIGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg5MGRmZWYwNmMyZDE2OWEzMzU2MzU5NTk2ODkwNzU0ZGZiOGVlMWMKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gOSAxNjozNDo1MSAyMDA4IC0wNjAwCgogICAgUmVtb3ZlIGNhY2hlIGNvbmZpZyBmcm9tIEFUVU04NTQ4IGFuZCBzYmM4NTQ4IGNvbmZpZ3MKCiAgICBUaGVzZSBib2FyZHMgd2VyZW4ndCB1cGRhdGVkIGJ5IEt1bWFyJ3MgY29uZmlnIHBhdGNoIGJlY2F1c2UgdGhleQogICAgd2VyZW4ndCBpbiB0aGUgdHJlZSwgeWV0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiOGVjMjM4NTAzOGMwOTRiMDdlYzViNDkzMzYyODlhNDZiNmU5Y2M2CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEphbiA3IDEzOjMxOjE5IDIwMDggLTA2MDAKCiAgICA4NXh4OiBhZGQgYWJpbGl0eSB0byB1cGxvYWQgUUUgZmlybXdhcmUKCiAgICBEZWZpbmUgdGhlIGxheW91dCBvZiBhIGJpbmFyeSBibG9iIHRoYXQgY29udGFpbnMgYSBRRSBmaXJtd2FyZSBhbmQgaW5zdHJ1Y3Rpb25zCiAgICBvbiBob3cgdG8gdXBsb2FkIGl0LiAgQWRkIGZ1bmN0aW9uIHFlX3VwbG9hZF9maXJtd2FyZSgpIHRvIHBhcnNlIHRoZSBibG9iIGFuZAogICAgcGVyZm9ybSB0aGUgYWN0dWFsIHVwbG9hZC4JQWRkIGNvbW1hbmQtbGluZSBjb21tYW5kICJxZSBmdyIgdG8gdGFrZSBhIGZpcm13YXJlCiAgICBibG9iIGluIG1lbW9yeSBhbmQgdXBsb2FkIGl0LiAgVXBkYXRlIGZ0X2NwdV9zZXR1cCgpIG9uIDg1eHggdG8gY3JlYXRlIHRoZQogICAgJ2Zpcm13YXJlJyBkZXZpY2UgdHJlZSBub2RlIGlmIFUtQm9vdCBoYXMgdXBsb2FkZWQgYSBmaXJtd2FyZS4gIEZ1bGx5IGRlZmluZQogICAgJ3N0cnVjdCByc3AnIGluIGltbWFwX3FlLmggdG8gaW5jbHVkZSB0aGUgYWN0dWFsIFJJU0MgU3BlY2lhbCBSZWdpc3RlcnMuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiMDA5ZjNlY2E5OWJiN2I5ZTZiYTY2MzlhODkwOWExMzhkZDVlOWZlCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEphbiA4IDAxOjIyOjIxIDIwMDggLTA2MDAKCiAgICA4NXh4OiBSZW1vdmUgY2FjaGUgY29uZmlnIGZyb20gY29uZmlncy5oCgogICAgRWl0aGVyIHVzZSB0aGUgc3RhbmRhcmQgZGVmaW5lcyBpbiBhc20vY2FjaGUuaCBvciBncmFiIHRoZSBpbmZvcm1hdGlvbgogICAgYXQgcnVudGltZSBmcm9tIHRoZSBMMUNGRyBTUFIuCgogICAgQWxzbywgbWlub3IgY2xlYW51cCBpbiBjYWNoZS5oIHRvIG1ha2UgdGhlIGNvZGUgYSBiaXQgbW9yZSByZWFkYWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGI5NjRlOTM2OGY0NTM3MmFhZjFkYTBjMTNmZTU2ZjZkODFhZThlOTYKQXV0aG9yOiByb2JlcnQgbGF6YXJza2kgPHJvYmVydGxhemFyc2tpQGdtYWlsLmNvbT4KRGF0ZToJRnJpIERlYyAyMSAxMDozOToyNyAyMDA3IC0wNTAwCgogICAgbXBjODV4eDogQWRkIHN1cHBvcnQgZm9yIEFUVU04NTQ4ICh1cGRhdGVkKQoKICAgIEFkZCBzdXBwb3J0IGZvciBJbnN0aXR1dG8gQXRsYW50aWNvJ3MgQVRVTTg1NDggYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiByb2JlcnQgbGF6YXJza2kgPHJvYmVydGxhemFyc2tpQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3YmQ2MTA0YjcxZGU5YmNhODBhYzhlMDkzNjAwMzQ0M2JiNDJmMmZjCkF1dGhvcjogcm9iZXJ0IGxhemFyc2tpIDxyb2JlcnRsYXphcnNraUBnbWFpbC5jb20+CkRhdGU6CUZyaSBEZWMgMjEgMTA6MzY6MzcgMjAwNyAtMDUwMAoKICAgIG1wYzg1eHg6IEFkZCBzdXBwb3J0IGZvciBBVFVNODU0OCAodXBkYXRlZCkKCiAgICBBZGQgc3VwcG9ydCBmb3IgSW5zdGl0dXRvIEF0bGFudGljbydzIEFUVU04NTQ4IGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogcm9iZXJ0IGxhemFyc2tpIDxyb2JlcnRsYXphcnNraUBnbWFpbC5jb20+Cgpjb21taXQgOWUzZWQzOTJkMmM4OTY1ZTI0Yzk0MmI1ODc5NmMzMWM2NDRjMmY3MApBdXRob3I6IEpvZSBIYW1tYW4gPGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20+CkRhdGU6CVRodSBEZWMgMTMgMDY6NDU6MTQgMjAwNyAtMDYwMAoKICAgIG1wYzg1eHg6IEFkZCBzdXBwb3J0IGZvciBTQkM4NTQ4ICh1cGRhdGVkKQoKICAgIEFkZCBzdXBwb3J0IGZvciBXaW5kIFJpdmVyJ3MgU0JDODU0OCByZWZlcmVuY2UgYm9hcmQuCgogICAgU2lnbmVkLW9mZiBieTogSm9lIEhhbW1hbiA8am9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbT4KCmNvbW1pdCAxMWM0NWViZDQ2ZDY1MTdiNTFiN2E5MmRkNTJhNjE4YjJmNGU1NTg2CkF1dGhvcjogSm9lIEhhbW1hbiA8am9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbT4KRGF0ZToJVGh1IERlYyAxMyAwNjo0NTowOCAyMDA3IC0wNjAwCgogICAgbXBjODV4eDogQWRkIHN1cHBvcnQgZm9yIFNCQzg1NDggKHVwZGF0ZWQpCgogICAgQWRkIHN1cHBvcnQgZm9yIFdpbmQgUml2ZXIncyBTQkM4NTQ4IHJlZmVyZW5jZSBib2FyZC4KCiAgICBTaWduZWQtb2ZmIGJ5OiBKb2UgSGFtbWFuIDxqb2UuaGFtbWFuQGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tPgogICAgU2lnbmVkLW9mZiBieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY0ZDRiY2IwODdjMmVjZTFjNGQwZGU4ZWZlODVlMDA3NWU1YjE1OTQKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE9jdCAyMiAxOTo1ODoxOSAyMDA3ICswNDAwCgogICAgTVBDODU2OEUtTURTOiBzZXQgdXAgUUUgcGFyaW8gZm9yIFVBUlQxCgogICAgVG8gdXNlIFVBUlQxIG9uIHRoZSBNUEM4NTY4RS1NRFMsIFFFIHBhcmlvIHBpbnMgUENbMDozXSBzaG91bGQKICAgIGJlIHNldCB1cCBhcHByb3ByaWF0ZWx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEFudG9uIFZvcm9udHNvdiA8YXZvcm9udHNvdkBydS5tdmlzdGEuY29tPgoKY29tbWl0IGFkMTYyMjQ5Y2IzNzFlOWUzODk3MTY3NmYwOWJlNzkxZTVmM2NmNGEKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIE9jdCAyMiAxODoxMjo0NiAyMDA3ICswNDAwCgogICAgTVBDODU2OEUtTURTOiByZXNldCBVQ0NzIHRvIHVzZSB0aGVtIHJlbGlhYmx5CgogICAgSW4gb3JkZXIgdG8gdXNlIEdFVEgxIGFuZCBHRVRIMiBvbiB0aGUgTVBDODU2OEUtTURTLCB3ZSBzaG91bGQgcmVzZXQKICAgIFVDQ3MuCgogICAgcC5zIFNpbWlsYXIgY29kZSBleGlzdHMgaW4gdGhlIExpbnV4IGtlcm5lbCBib2FyZCBmaWxlIChmb3IgY2FwYWJpbGl0eQogICAgcmVhc29ucyB3aXRoIG9sZGVyIFUtQm9vdHMpLCBidXQgc2hvdWxkIGJlIHJlbW92ZWQgc29tZSBkYXkuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+Cgpjb21taXQgMjE0NmNmNTY4MjFjMzM2NDc4NmNhOTRhNzMwNjAwOGM1ODI0YjIzOApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBEZWMgMTkgMDE6MTg6MTUgMjAwNyAtMDYwMAoKICAgIFJld29ya2VkIEZTTCBCb29rLUUgVExCIG1hY3JvcyB0byBiZSBtb3JlIHJlYWRhYmxlCgogICAgVGhlIG9sZCBtYWNyb3MgbWFkZSBpdCBkaWZmaWN1bHQgdG8ga25vdyB3aGF0IFdJTUdFIGFuZCBwZXJtIGJpdHMKICAgIHdlcmUgc2V0IGZvciBhIFRMQiBlbnRyeS4gIEFjdHVhbGx5IHVzZSB0aGUgYml0IG1hc2tzIGZvciB0aGVzZSBpdGVtcwogICAgc2luY2UgdGhleSBhcmUgb25seSBhIHNpbmdsZSBiaXQuCgogICAgQWxzbyBtb3ZlZCB0aGUgbWFjcm9zIGludG8gbW11Lmggb3V0IG9mIGU1MDAuaCBzaW5jZSB0aGV5IGFyZW4ndCBzcGVjaWZpYwogICAgdG8gZTUwMC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDFkNDcyNzNkNDY5MjU5MjlmOGYyYzE5MTNjZDk2ZDcyNTdhYWRlODgKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgRGVjIDE4IDIzOjIxOjUxIDIwMDcgLTA2MDAKCiAgICBVc2UgRlNMIEJvb2stRSBNTVUgbWFjcm9zIGZyb20gTGludXggS2VybmVsCgogICAgR3JhYiB0aGUgRlNMIEJvb2stRSBNQVMgcmVnaXN0ZXIgbWFjcm9zIGZyb20gTGludXguICBBbHNvIGFkZGVkCiAgICBkZWZpbmVzIGZvciBwYWdlIHNpemVzIHVwIHRvIDRUQiBhbmQgcmVtb3ZlZCBTSEFSRU4gc2luY2UgaXQgZG9lc250CiAgICByZWFsbHkgZXhpc3QuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAwMmRmNGEyNzBmODE3ZWY2ZWMzOTA0N2EwMWI1NWZlY2RjNWYzYjM3CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDkgMTM6NTE6MzIgMjAwOCAtMDYwMAoKICAgIEZpeCBteSBvd24gbWVyZ2Ugc3R1cGlkaXR5CgogICAgV2F5IGJhY2sgaW4gQXVndXN0IEkgbWVyZ2VkIEhlaWtvJ3MgcGF0Y2g6CiAgICA1NjZhNDk0ZjU5MjogW1BDUzQ0MEVQXSB1cGdyYWRlIHRoZSBQQ1M0NDBFUCBib2FyZAoKICAgIHdpdGggSm9uJ3MgQ09ORklHX0NPTU1BTkRTIHBhdGNoZXMuCgogICAgVGhpcyB3YXMgZG9uZSBpbiBjb21taXQ6IDZiZjZmMTE0ZGNkZDk3ZWMzZjgwYzI3NjFlZDQwZTMxMjI5ZDZiNzgKCiAgICBIb3dldmVyLCBpbiB0aGUgcHJvY2VzcywgSSBsZWZ0IG91dCBzb21lIG9mIEhlaWtvJ3MgZ29vZCBjaGFuZ2VzLgoKICAgIE5vdyBIZWlrbydzIGFuZCBKb24ncyBwYXRjaGVzIGFyZSBwcm9wZXJseSBtZXJnZWQgaW4gZmF0X3JlZ2lzdGVyX2RldmljZSgpCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY2MzZiNjJhNmVmYzdmMTRlNmU3ODg3ODg2MzFhZTdhN2ZjYTQ1MzcKQXV0aG9yOiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gOSAxMToxNzo0OSAyMDA4IC0wNjAwCgogICAgRXhwb3NlIHBhcnNlX2xpbmUoKSBnbG9iYWxseS4KCiAgICBBZGQgbmV3IGZ1bmN0aW9uIHJlYWRsaW5lX2ludG9fYnVmZmVyKCkgdGhhdCBhbGxvd3MgdGhlCiAgICBvdXRwdXQgb2YgcmVhZGxpbmUgdG8gYmUgcHV0IGludG8gYSBwb2ludGVyIHRvIGNoYXIgYnVmZmVyLgoKICAgIFRoaXMgcmVmYWN0b3JpbmcgYWxsb3dzIG90aGVyIGZ1bmN0aW9ucyBiZXNpZGVzIHRoZQogICAgbWFpbiBjb21tYW5kIGxvb3AgdG8gYWxzbyB1c2UgdGhlIHNhbWUgaW5wdXQgbWVjaGFuaXNtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphbWVzIFlhbmcgPEphbWVzLllhbmdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdjYTkwNTEzNDg2YWJkNGFlNTBiZDFiNzQwM2Y0N2NjNThjNWFkMjUKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gOSAwMToxNToyNSAyMDA4ICswMTAwCgogICAgdHJpdmlhbDogZml4IGNvbnNlcXVlbmNlcyBvZiBhIGJhZCBtZXJnZQoKICAgIEZpeCB3aGF0IGxvb2tzIGxpa2UgYSBtZXJnZSBhcnRpZmFjdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgNDc4NWE2OTRjMDA0NTk5NmNjZjBhYzViOGVkZjUzMWVmYzFiNzMwZQpBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKYW4gMyAxMDo1MToxNSAyMDA4ICswODAwCgogICAgQWRkIEN0cmwgY29tYm8ga2V5IHN1cHBvcnQgdG8gdXNiIGtleWJvYXJkIGRyaXZlci4KCiAgICBDdHJsIGNvbWJvIGtleSBzdXBwb3J0IGlzIGFkZGVkLCB3aGljaCBpcyB2ZXJ5IHVzZWZ1bCB0byBpbnB1dCBDdHJsLUMKICAgIGZvciBpbnRlcnJ1cHQgY3VycmVudCBqb2IuCiAgICBBbHNvIGFkZCB1c2JfZXZlbnRfcG9sbCgpIGNhbGxpbmcgdG8gdXNiX2tiZF90ZXN0YygpLCB3aGljaCBjYW4gZ2V0CiAgICBrZXkgaW5wdXQgd2hlbiB0c3RjKCkgaXMgY2FsbGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTBjNzM4MmJjNWQ1ZTY0YzQ3Zjk0YWMyY2E3OGNjNTc0NDQyZTgyZApBdXRob3I6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KRGF0ZToJU3VuIERlYyAzMCAwMzozMDo1NiAyMDA3ICswMTAwCgogICAgZml4IHZhcmlvdXMgY29tbWVudHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJjZWwgWmlzd2lsZXIgPG1hcmNlbEB6aXN3aWxlci5jb20+Cgpjb21taXQgNzgxN2NiMjA4M2Q5ODI5MjM3NTJmZTBmMTJiNjdjMGU3YzA5YTAyNwpBdXRob3I6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KRGF0ZToJU3VuIERlYyAzMCAwMzozMDo0NiAyMDA3ICswMTAwCgogICAgZml4IGNvbW1lbnRzIHdpdGggbmV3IGRyaXZlcnMgb3JnYW5pemF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgoKY29tbWl0IGE5YjQxMGRjN2QyYTQ3MjFjNDA4YjEzYWJmYzAzNzk4ODE1MGYxNDUKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CUZyaSBEZWMgMjggMTI6NTA6NTkgMjAwNyArMDkwMAoKICAgIFJlbW92ZSB0aGUgb2Jzb2xldGUgdGVyc2UgdmVyc2lvbiBvZiBkb19taWkoKQoKICAgIFdlIG5vdyBoYXZlIG1vcmUgdXNlZnVsIHZlcnNpb24gb2YgZG9fbWlpKCkgYW5kIGV2ZXJ5Ym9keSB1c2UgaXQuCiAgICBHZXJhbGQgVmFuIEJhcmVuIHNheXM6CgogICAgPiBXaGVuIEkgb3JpZ2luYWxseSB3cm90ZSB0aGUgbWlpIGNvbW1hbmQgNighKSB5ZWFycyBhZ28sIEkgd3JvdGUgYQogICAgPiB2ZXJib3NlIHZlcnNpb24gdGhhdCBwcmludGVkIGh1bWFuIHJlYWRhYmxlIGRlY29tcG9zaXRpb24gb2YgdGhlIGZsYWdzLAogICAgPiBldGMuLCBhbmQgYSB0ZXJzZSBvbmUgdGhhdCBkaWRuJ3QgcHJpbnQgYXMgbXVjaCBzdHVmZiBhbmQgdGh1cyBoYWQgYQogICAgPiBzbWFsbGVyIG1lbW9yeSBmb290cHJpbnQuCiAgICA+CiAgICA+IEl0IHNvdW5kcyBsaWtlIHRoZSB0ZXJzZSB2ZXJzaW9uIGhhcyB3aXRoZXJlZCBhbmQgZGllZCwgYXBwYXJlbnRseQogICAgPiBwZW9wbGUgYXJlIG9ubHkgdXNpbmcgdGhlIHZlcmJvc2UgdmVyc2lvbiAod2hpY2ggaXMgdmVyeSB1bmRlcnN0YW5kYWJsZSwKICAgID4gSSBkbyBteXNlbGYpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgMDFjNjg3YWE2ZTA2NWJkNGZhZjgwZjcyMzM2MWU3OTg5NDFkZDZiMApBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVGh1IERlYyAyNyAxMzo0Mjo1NiAyMDA3IC0wNTAwCgogICAgRG8gbm90IHJlZmVyZW5jZSBzaGExLmMgd2hlbiBidWlsZGluZyBta2ltYWdlLgoKICAgIHJlbW92ZSBzaGExLm8gZnJvbSBta2ltYWdlIGxpbmtpbmcgc2luY2UgaXQgaXNuJ3QgYWN0dWFsbHkgdXNlZC4KCiAgICBTaWduZWQtT2ZmLUJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgYjkxNzNhZjczZTUyNGQzN2M4MTJmMjEwMTczY2Y4MzM4NWM1MTcxYQpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJVGh1IERlYyAyNyAxNTozOTo1NCAyMDA3ICswOTAwCgogICAgY29tbW9uL2NtZF9taWkuYzogQWRkIHNhbml0eSBhcmdjIGNoZWNrCgogICAgSWYgdHlwZSBtaWkgY29tbWFuZCB3aXRob3V0IGFyZ3VtZW50cywgd2Ugc3VmZmVyIGZyb20gdW5pbml0aWFsaXplZCBhcmd2W10KICAgIGVudHJpZXM7IGZvciBleGFtcGxlIHdlIE1JUFMgZ2V0IHN0dWNrIGJ5IFRMQiBlcnJvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+Cgpjb21taXQgNTAwODU2ZWIxNzA3ZWQxN2Q5MjA0YmFhNjFkZDU5OTQ4ZDNiMjg5OQpBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBKYW4gOSAxOTozOTozNiAyMDA4ICswMTAwCgogICAgQVBJIGZvciBleHRlcm5hbCBhcHBsaWNhdGlvbnMuCgogICAgVGhpcyBpcyBhbiBBUEkgZm9yIGV4dGVybmFsIChzdGFuZGFsb25lKSBhcHBsaWNhdGlvbnMgcnVubmluZyBvbiB0b3Agb2YKICAgIFUtQm9vdCwgYW5kIGlzIG1lYW50IHRvIGJlIG1vcmUgZXh0ZW5zaWJsZSBhbmQgcm9idXN0IHRoYW4gdGhlIGV4aXN0aW5nCiAgICBqdW1wdGFibGUgbWVjaGFuaXNtLiBJdCBpcyBzaW1pbGFyIHRvIFVOSVggc3lzY2FsbCBhcHByb2FjaC4gU2VlIGFwaS9SRUFETUUKICAgIGZvciBtb3JlIGRldGFpbHMuCgogICAgSW5jbHVkZWQgaXMgdGhlIGRlbW8gYXBwbGljYXRpb24gdXNpbmcgdGhpcyBuZXcgZnJhbWV3b3JrIChhcGlfZXhhbXBsZXMpLgoKICAgIFBsZWFzZSBub3RlIHRoaXMgaXMgc3RpbGwgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUsIGFuZCBpcyB0dXJuZWQgb2ZmIGJ5CiAgICBkZWZhdWx0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+Cgpjb21taXQgZmU4ZGQwYjIyMjBiN2MwMmIwZDRjOWM0Zjk5Njc4Nzk5NzA0NzdiMQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKYW4gOSAxMjoxNDo1NSAyMDA4IC0wNjAwCgogICAgODZ4eDogUmVtb3ZlIGNhY2hlIGNvbmZpZyBmcm9tIGNvbmZpZ3MuaAoKICAgIEp1c3QgdXNlIHRoZSBzdGFuZGFyZCBkZWZpbmVzIGluIGFzbS9jYWNoZS5oLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjZhNDE3OTBmOGViYTE5YWQ0NTBlMThhZTkxMzUxZGFmNDg1YjNlMgpBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBKYW4gOSAxODowNToyNyAyMDA4ICswMTAwCgogICAgR2xvYmFsaXplIGVudm1hdGNoKCkKCiAgICBUaGUgbmV3bHkgaW50cm9kdWNlZCBBUEkgKHJvdXRpbmVzIHJlbGF0ZWQgdG8gZW52IHZhcnMpIHdpbGwgbmVlZCB0byBjYWxsCiAgICBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBaYWJkeXIgPGFybW9Ac2VtaWhhbGYuY29tPgoKY29tbWl0IDFkZjE3MGY4YjJhOTllMWUyZjk0MGY5ZjBiNTY1MTFlMWU0YzllMWYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSmFuIDQgMTI6MDc6MjcgMjAwOCAtMDYwMAoKICAgIENvbnZlcnQgTVBDODYxMEhQQ0QgdG8gdXNlIGxpYmZkdC4KCiAgICBBc3N1bWVzIHRoZSBwcmVzZW5jZSBvZiB0aGUgYWxpYXNlcyBub2RlIGluIHRoZSBEVFMgdG8KICAgIGxvY2F0ZSB0aGUgcGNpIGFuZCBzZXJpYWwgbm9kZXMgZm9yIGZpeHVwcy4KCiAgICBVc2UgY29uc2lzdGVudCBmZHRhZGRyIGFuZCBmZHRmaWxlIGluIGVudmlyb25tZW50IHZhcmlhYmxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM5OTc0YWIwYTRkMzczMWNkYjc2YTc1OTlkOWZlOTQ0NWQ3NjRkNjAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSmFuIDQgMTE6NTg6MjMgMjAwOCAtMDYwMAoKICAgIDg2MTA6IEZpeCBsaW5nZXJpbmcgY29tcGlsZSB3YXJuaW5ncy4KCiAgICBUdXJuIG9mZiBERUJVRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDYwMDdmMzI1MWMwOTY3YWRjMTNmMmVkOGJlMWI5MjRkZGMzMDEyNGQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDkgMTU6MTQ6NDYgMjAwOCArMDEwMAoKICAgIENvZGluZyBTdHlsZSBjbGVhbnVwLCB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmYzY0MTRlY2E1NWYxZmMxMDhmYjEyZmM4Y2RjNDNiZDhiNDQ2M2Y5CkF1dGhvcjogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgpEYXRlOglUdWUgRGVjIDE4IDA0OjI5OjU1IDIwMDcgLTA1MDAKCiAgICBmaXggZWFzeWxvZ28gb24gYmlnIGVuZGlhbiBkZXYgc3lzdGVtcwoKICAgIGRpZG50IHJlYWxpemUgaG93IG91dCBvZiBzaGFwZSBlYXN5bG9nbyBhY3R1YWxseSB3YXMgdW50aWwgaSB0cmllZCB1c2luZyBpdC4KICAgIHRoaXMgcGF0Y2ggZG9lcyBieXRlIHN3YXBwaW5nIGFzIG5lZWQgYmUgb24gdGhlIGlucHV0IHRnYSBoZWFkZXIgc2luY2UgdGhlIHRnYQogICAgaXMgaW4gbGl0dGxlIGVuZGlhbiBidXQgdGhlIGhvc3QgY291bGQganVzdCBhcyB3ZWxsIGJlIGJpZyBlbmRpYW4uCWkgZGlkbnQKICAgIGJvdGhlciB1c2luZyBic3dhcCBtYWNyb3Mgb3Igc3VjaCBzdHVmZiBmcm9tIHN5c3RlbSBoZWFkZXJzIGFzIG5vdGhpbmcgaW4KICAgIFBPU0lYIGRpY3RhdGVzIGJ5dGUgc3dhcHBpbmcgZnVuY3Rpb25hbGl0eS4KCiAgICBTaWduZWQtT2ZmLUJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgMzhkMjk5YzJkYjgxYmQ4ODljNjAxYjVkZmMxMmM0ZTgzZWY4MzMzMwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJVHVlIERlYyAxOCAwMzoyMzoyNSAyMDA3IC0wNTAwCgogICAgY2xlYW51cCBlYXN5bG9nbwoKICAgIC0gbWFrZSB0aGUgTWFrZWZpbGUgbm90IHN1Y2sKICAgIC0gaW5jbHVkZSBwcm9wZXIgaGVhZGVycyBmb3IgcHJvdG90eXBlcwogICAgLSBmaXggb2J2aW91cyBicm9rZW4gaGFuZGxpbmcgb2Ygc3RyY2hyKCkgd2hlbiBoYW5kbGluZyAnLicgaW4gZmlsZW5hbWVzCgogICAgU2lnbmVkLU9mZi1CeTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IDg4M2UzOTI1ZDk5YThkZDY5YzViMDIwMWNiYTViMTg4N2Y4OGY5NWMKQXV0aG9yOiByYXB0b3Jicmlub0BhaW0uY29tIDxyYXB0b3Jicmlub0BhaW0uY29tPgpEYXRlOglUaHUgRGVjIDEzIDIxOjIzOjI4IDIwMDcgLTA1MDAKCiAgICBGaXggYnVpbGQgcHJvYmxlbXMgdW5kZXIgQ3lnd2luCgogICAgVGhpcyBwYXRjaCBhbGxvd3MgdS1ib290IHRvIGJ1aWxkIHdpdGhvdXQgZXJyb3IgaW4gYSBjeWd3aW4KICAgIGVudmlyb25tZW50LiAgQ3lnd2luIGRvZXMgbm90IGRlZmluZSBfX3U2NCBpbiBpdCdzCiAgICBpbmNsdWRlL2FzbS90eXBlcy5oIGZpbGUuICBUaGUgLWlkaXJhZnRlciBmbGFnIGluIHRoZSB1LWJvb3QKICAgIGJ1aWxkIGNhdXNlcyB0aGUgaW5jbHVzaW9uIG9mIHRoZSBjeWd3aW4gdHlwZXMuaCBmaWxlIGFzIG9wcG9zZWQKICAgIHRvIHUtYm90L2luY2x1ZGUvYXNtL3R5cGVzLmggZmlsZSB3aGljaCBkb2VzIGRlZmluZSBfX3U2NC4KICAgIFN1YnNlcXVlbnRseSwgc2hhMS5jIGNvbXBpbGUgZmFpbHMgZHVlIHRvIHVua25vd24gc3ltYm9sLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJyaWFuIE1pbGxlciA8cmFwdG9yYnJpbm9AbmV0c2NhcGUubmV0PgoKY29tbWl0IDQzZWYxYzM4MWY5MTk1NTA0YTI0ODhmNWNiOTA5MjI3ZWI5N2Q0NzUKQXV0aG9yOiBIYW5zLUNocmlzdGlhbiBFZ3R2ZWR0IDxoY2VndHZlZHRAYXRtZWwuY29tPgpEYXRlOglGcmkgTm92IDMwIDE3OjI5OjU5IDIwMDcgKzAxMDAKCiAgICBjbWRfYm1wOiBBZGQgc3VwcG9ydCBmb3IgZGlzcGxheWluZyBnemlwIGNvbXByZXNzZWQgYm1wcwoKICAgIFRoZSBleGlzdGluZyBjb2RlIGNhbiBzaG93IGluZm9ybWF0aW9uIGFib3V0IGEgZ3ppcCBjb21wcmVzc2VkIEJNUAogICAgaW1hZ2UsIGJ1dCBjYW4ndCBhY3R1YWxseSBkaXNwbGF5IGl0LgoKICAgIFRoZXJlZm9yZSwgbW92ZSB0aGUgZGVjb21wcmVzc2lvbiBjb2RlIG91dCBvZiBibXBfaW5mbygpIGFuZCB1c2UgaXQgaW4KICAgIGJtcF9kaXNwbGF5KCkgYXMgd2VsbCBpbiBvcmRlciB0byBkaXNwbGF5IGEgY29tcHJlc3NlZCBCTVAgaW1hZ2UuCgogICAgQWxzbywgY2xlYW4gdGhpbmdzIHVwIGEgYml0IGFuZCBmaXggYSBtZW1vcnkgbGVhayB3aGlsZSB3ZSdyZSBhdCBpdC4KCiAgICBbaHNraW5uZW1vZW5AYXRtZWwuY29tOiBhIGJpdCBvZiByZWZhY3RvcmluZ10KICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGQxOTdmZmQ4MTcyYzZmZGVmMzg3MzM0MjQ2NDBhOWE0NzI5NWQ2ZTkKQXV0aG9yOiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+CkRhdGU6CVRodSBOb3YgMjkgMjE6MTU6NTYgMjAwNyArMDEwMAoKICAgIEZpeCBhbmQgb3B0aW1pemUgTUlJIG9wZXJhdGlvbnMgb24gRkVDIChNUEM4eHgpIGNvbnRyb2xsZXJzCgogICAgVGhpcyBwYXRjaCBmaXhlcyBzZXZlcmFsIGlzc3VlcyBhdCBsZWFzdCBvbiBhIE1QQzg4NSBiYXNlZCBzeXN0ZW0gd2l0aCB0d28KICAgIEZFQyBpbnRlcmZhY2VzIHVzZWQgaW4gTUlJIG1vZGUuCgogICAgMS4gUEhZIGRpc2NvdmVyeSBzaG91bGQgZmlyc3QgcmVhZCBQSFlfUEhZSURSMiByZWdpc3RlciBhbmQgb25seSB0aGVuCiAgICAgICBQSFlfUEhZSURSMSBsaWtlIGNwdS9tcGM4eHgvZmVjLmM6Om1paV9kaXNjb3Zlcl9waHkoKSBkb2VzIGl0LAogICAgICAgb3RoZXJ3aXNlIHRoZSB2YWx1ZXMgcmVhZCBhcmUgd3JvbmcuIEFsc28gbm90aWNlLCB0aGF0IFBIWSBkaXNjb3ZlcnkKICAgICAgIGNhbm5vdCB3b3JrIG9uIE1QQzg4eCAvIE1QQzg3eCBpbiBzZXR1cHMgd2l0aCBib3RoIEZFQ3MgYWN0aXZlIGF0IGFsbAogICAgICAgaW4gaXRzIHByZXNlbnQgZm9ybSwgYmVjYXVzZSBmb3IgYm90aCBpbnRlcmZhY2VzIHRoZSByZWdpc3RlcnMgZnJvbSBGRUMKICAgICAgIDEgYXJlIHVzZWQgdG8gY29tbXVuaWNhdGUgb3ZlciBNSUkuCgogICAgMi4gUmVtb3ZlIGNvZGUgZHVwbGljYXRpb24gZm9yIHJlc2V0dGluZyB0aGUgRkVDIGJ5IGlzb2xhdGluZyBpdCBpbnRvIGEKICAgICAgIHNlcGFyYXRlIGZ1bmN0aW9uLgoKICAgIDMuIEluaXRpYWxpemUgTUlJIG9uIEZFQyAxIHdoZW4gY29tbXVuaWNhdGluZyBvdmVyIEZFQyAyIGluIGZlY19pbml0KCkuCgogICAgNC4gT3B0aW1pemUgbWlpX2luaXQoKSB0byBvbmx5IHJlc2V0IHRoZSBGRUMgMSBjb250cm9sbGVyIG9uY2UuCgogICAgNS4gRml4IGEgdHlwbyBpbiBtaWlfaW5pdCgpIHVzaW5nIGluZGV4IGkgaW5zdGVhZCBvZiBqIHRodXMgcG90ZW50aWFsbHkKICAgICAgIGxlYWRpbmcgdG8gdW5wcmVkaWN0YWJsZSByZXN1bHRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCA2YTVlMWQ3NWJmMTA2ZmExNTdlOWNlNjhiY2FmNGIxM2U4YTFkMjE0CkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglUdWUgTm92IDIwIDEzOjE0OjIwIDIwMDcgKzAxMDAKCiAgICBGaXggZW5kaWFubmVzcyBjb252ZXJzaW9ucyBpbiBydGw4MTY5IGRyaXZlcgoKICAgIEl0IGlzIHVuY2xlYXIgb24gd2hhdCBwbGF0Zm9ybXMgdGhpcyBkcml2ZXIgaGFzIGJlZW4gdGVzdGVkLCBzaW5jZQogICAgbm9vbmUgdXAgdG8gbm93IGRlZmluZXMgQ09ORklHX1JUTDgxNjkgaW4gdGhlIGJvYXJkIGNvbmZpZ3VyYXRpb24KICAgIGhlYWRlci4gTm93IGl0IGhhcyBiZWVuIGZpeGVkIGZvciBhIGJpZy1lbmRpYW4gbXBjODI0MSBiYXNlZAogICAgbGlua3N0YXRpb24gcGxhdGZvcm0uIFRoaXMgcGF0Y2ggcHJlc2VudHMgdGhlIG5lY2Vzc2FyeSBlbmRpYW5uZXNzCiAgICBjb252ZXJzaW9uIGZpeGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCA1ODY5NGY5NzA5YzBjM2UzMTc4ZTM0OWFlNzQ4ZDk4Y2ZiMGM2MzlhCkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEphbiAzIDEwOjUxOjE1IDIwMDggKzA4MDAKCiAgICBBZGQgQ3RybCBjb21ibyBrZXkgc3VwcG9ydCB0byB1c2Iga2V5Ym9hcmQgZHJpdmVyLgoKICAgIEN0cmwgY29tYm8ga2V5IHN1cHBvcnQgaXMgYWRkZWQsIHdoaWNoIGlzIHZlcnkgdXNlZnVsIHRvIGlucHV0IEN0cmwtQwogICAgZm9yIGludGVycnVwdCBjdXJyZW50IGpvYi4KICAgIEFsc28gYWRkIHVzYl9ldmVudF9wb2xsKCkgY2FsbGluZyB0byB1c2Jfa2JkX3Rlc3RjKCksIHdoaWNoIGNhbiBnZXQKICAgIGtleSBpbnB1dCB3aGVuIHRzdGMoKSBpcyBjYWxsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgMDdlYjAyNjg3ZjAwODcyMTk3NGEyZmI1NGNkN2ZkYzI4MDMzYWIzYwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gOSAxMzo0MzozOCAyMDA4ICswMTAwCgogICAgQ29kaW5nIFN0eWxlIGNsZW5hdXA7IHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGMyNmFjYzFhNDNiMzFkZGNhNWFkZDQyZmQwMzYwZmYwZWVlOTBjODAKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVGh1IERlYyAyNyAxNzoxMzoxMSAyMDA3ICswMTAwCgogICAgUmVtb3ZlIGJpdCBzd2FwcGluZyBpbiBYaWxpbnggU3BhcnRhbiBiaXRmaWxlIGxvYWRpbmcKCiAgICBUaGlzIHBhdGNoIHJlbW92ZXMgdGhlIHVubmVjZXNzYXJ5IGJpdCBzd2FwcGluZyB3aGVuCiAgICBib290aW5nIC5iaXQgZmlsZXMgd2l0aCB0aGUgJ2ZwZ2EgbG9hZGInIGNvbW1hbmQuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgNDM3ZmM3MzI3ZjA2MTFmODI5Mzc4NThmMmQ4MGU0Y2Q2MWI0MDk4NApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUaHUgRGVjIDI3IDE3OjEzOjA1IDIwMDcgKzAxMDAKCiAgICBGaXggTVNCIGNoZWNrIGluIFhpbGlueCBTcGFydGFuIHNsYXZlIHNlcmlhbCBtb2RlCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgM2JmZjRmZmEzMzcyOWE0MjY0NWUzMjhhMjFlOGQxNjQ4ODg3Mjk1OApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUaHUgRGVjIDI3IDE3OjEyOjU2IDIwMDcgKzAxMDAKCiAgICBBZGQgbmV3IFhpbGlueCBTcGFydGFuIEZQR0EgdHlwZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCAyMWQzOWQ1OThjNGU3NGQ0ZTc3NjE2MDhjNzlkYmEyNzE1ZDQwYTRjCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBEZWMgMjcgMTc6MTI6NDMgMjAwNyArMDEwMAoKICAgIEFkZCBwcmUgYW5kIHBvc3QgY29uZmlndXJhdGlvbiBjYWxsYmFja3MgZm9yIFNwYXJ0YW4gRlBHQXMKCiAgICBUaGlzIHBhdGNoIGFkZHMgYSBwb3N0IGNvbmZpZ3VyYXRpb24gY2FsbGJhY2sgZm9yIFNwYXJ0YW4yLzMgRlBHQXMuCiAgICBwcmUgYW5kIHBvc3QgY29uZmlndXJhdGlvbiBjYWxsYmFjayBhcmUgbm93IG9wdGlvbmFsIGFuZAogICAgbm90IGNhbGxlZCB3aGVuIHRoZSBmdW5jdGlvbiBwb2ludGVyIGlzIHNldCB0byBOVUxMLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDAxMzM1MDJlMzlmZjg5YjY3YzI2Y2I0MDE1ZTBlN2U4ZDk1NzExODQKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVGh1IERlYyAyNyAxNzoxMjozNCAyMDA3ICswMTAwCgogICAgSW1wcm92ZSBjb25maWd1cmF0aW9uIG9mIEZQR0Egc3Vic3lzdGVtCgogICAgVGhpcyBwYXRjaCByZW1vdmVzIHRoZSBGUEdBIHN1YnN5c3RlbSBjb25maWd1cmF0aW9uIHRocm91Z2gKICAgIHRoZSBDT05GSUdfRlBHQSBiaXRtYXNrIGNvbmZpZ3VyYXRpb24gb3B0aW9uLgoKICAgIFNlZSBSRUFETUUgZm9yIHRoZSBuZXcgb3B0aW9uczoKCglDT05GSUdfRlBHQSwKCUNPTkZJR19GUEdBXzx2ZW5kb3I+LAoJQ09ORklHX0ZQR0FfPGZhbWlseT4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA5NWM2YmM3ZDRhMzU4OGI0NTJiYWNhNjEwZjhjNzk1YTgzNjMwNDc3CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBEZWMgMjcgMTY6NTU6MTcgMjAwNyArMDEwMAoKICAgIEFkZCBFcHNvbiBSWDgwMjUgUlRDIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCAxMjA4YTJkZmRlMDJiZWRkM2M1YmRhMjlhNjA2NjMyYjhlMGJlMDU4CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBEZWMgMjcgMTY6NTc6MjMgMjAwNyArMDEwMAoKICAgIHNlcmlhbDogTWFrZSBkZWZhdWx0X3NlcmlhbF9jb25zb2xlKCkgYSB3ZWFrIGZ1bmN0aW9uCgogICAgV2l0aCB0aGlzIHBhdGNoIGl0IGlzIHBvc3NpYmxlIHRvIHJlaW1wbGVtZW50IGRlZmF1bHRfc2VyaWFsX2NvbnNvbGUoKQogICAgaW4gYm9hcmQgc3BlY2lmaWMgY29kZS4gVGhpcyB3aWxsIGJlIGRvbmUgaW4gdGhlIHVwY29tbWluZyBQTUM0NDAKICAgIFUtQm9vdCBwb3J0LiBUaGlzIGFsc28gYWxsb3dzIHRoZSBsd21vbiBib2FyZCBtYWludGFpbmVyIHRvCiAgICByZW1vdmUgdGhlICcjaWYgIWRlZmluZWQoQ09ORklHX0xXTU9OKSAuLi4nIGZyb20gY29tbW9uL3NlcmlhbC5jLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGQxNjQ3MWVlMDVjZTdhYzUzOTJiYzBlOWZlM2ZmNGI1OGE3NjhmMzMKQXV0aG9yOiBIYXJhbGQgV2VsdGUgPGxhZm9yZ2VAb3Blbm1va28ub3JnPgpEYXRlOglXZWQgRGVjIDE5IDE0OjE0OjQ3IDIwMDcgKzAxMDAKCiAgICBhZGQgJ3Rlcm1pbmFsIHByb2dyYW0nIGZ1bmN0aW9uYWxpdHkKCiAgICBUaGlzIHBhdGNoIGFkZHMgYSAnY3UnIGxpa2Ugc2VyaWFsIHRlcm1pbmFsIGNvbW1hbmQgdG8gdS1ib290CiAgICB1c2luZyB3aGljaCB5b3UgY2FuIGFjY2VzcyBvdGhlciBzZXJpYWwgcG9ydHMgZnJvbSB0aGUgc3lzdGVtIGNvbnNvbGUuCgogICAgT3Blbk1va28gdXNlcyB0aGlzIGluIHRoZWlyIE5lbzE5NzMgcGhvbmVzIHRvIGdldCBhY2Nlc3MgdG8gdGhlIEdTTQogICAgTW9kZW0gYW5kIEdQUyBjaGlwIGZyb20gdGhlIGJvb3Rsb2FkZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQG9wZW5tb2tvLm9yZz4KCmNvbW1pdCA2MmQ0ZjQzNjUzNDE1NzZmNWE1MzA3YjJiMjA1YTVhYTJlM2M2YmU2CkF1dGhvcjogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQG9wZW5tb2tvLm9yZz4KRGF0ZToJV2VkIERlYyAxOSAxNDoxMjo1MyAyMDA3ICswMTAwCgogICAgUmUtaW50cm9kdWNlIHRoZSAnbmFuZCByZWFkLm9vYicgYW5kICduYW5kIHdyaXRlLm9vYicgY29tbWFuZHMKICAgIHRoYXQgdXNlZCB0byBleGlzdCB3aXRoIHRoZSBsZWdhY3kgTkFORCBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQG9wZW5tb2tvLm9yZz4KCmNvbW1pdCBmNTQwYzQyZDk1NjQ4NTRiMTljZTliYmI3MGFmZmUxNzI1MjlmZTcwCkF1dGhvcjogSGFyYWxkIFdlbHRlIDxsYWZvcmdlQG9wZW5tb2tvLm9yZz4KRGF0ZToJV2VkIERlYyAxOSAxNDowOTo1OCAyMDA3ICswMTAwCgogICAgRml4IGJ1aWxkaW5nIHdpdGggQ1JBTUZTIGJ1dCBub3QgSkZGUzIgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IEhhcmFsZCBXZWx0ZSA8bGFmb3JnZUBvcGVubW9rby5vcmc+Cgpjb21taXQgMjNkMGJhZjk2N2ZlY2RhZjE4MDRmMDQ1ZjYzMzkzMzdjNTYwN2VlYwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBEZWMgMjIgMTU6NTI6NTggMjAwNyArMDEwMAoKICAgIEFsbG93IENPTkZJR19BVVRPX0NPTVBMRVRFIGFuZCBjb21tYW5kIGhpc3RvcnkgQ09ORklHX0NNRExJTkVfRURJVElORyBhdCB0aGUgc2FtZXRpbWUKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDIzNzc2ZmYyOTI5NjZhODVkODExMTI2OTMzODMwYmVkNDgyMTE4MjYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUdWUgRGVjIDExIDEwOjUzOjEyIDIwMDcgKzAxMDAKCiAgICBBUk06IHN1cHBvcnQgYm9hcmQtc3BlY2lmaWMgZXRoZXJuZXQgUEhZIGluaXQKCiAgICBBZGQgdW50aWwgdGhlIG5ldyBwaHlsaWIgd2lsbCBiZSBhcnJpdmVkCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA3Yjc0ZWJlNzIzZTU3NmJhZWRmNWE4YjYyNDA1ODliMTliODQ1YTFiCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IERlYyA4IDE2OjM0OjA4IDIwMDcgKzAxMDAKCiAgICBJWFA6IEFkZCBmdWxsIGJhdWQtcmF0ZSBzdXBwb3J0IGZvciBpeHA0MngsIGl4cDQ1eCBhbmQgaXhwNDZ4CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBhMmRmNGRhMzFiMWExZTQxZTNlOWUxMzU4Y2ZjNTJiODA2MDQ2Y2UxCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIERlYyA5IDExOjAxOjEwIDIwMDcgKzAxMDAKCiAgICBBZGQgbWlzc2luZyBmaWxlIGluIGdpdGlnbm9yZSBhbmQgY29tbWVudHMKCiAgICBiYXNlZCBvbiBMaW51eCBzb3VyY2UgdHJlZSdzIC5naXRpZ25vcmUgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDQzNWRjOGZjZGIzYmM2MWQzZDQ5MDc3M2E4ZjM2OWY5OGEyMGM4NjgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDkgMTE6MzY6MjEgMjAwOCArMDEwMAoKICAgIENvZGluZyBTdHlsZSBjbGVhbnVwLCB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBiMmUyMTQyYzUwMGM0OGE1N2YxOGY5ZGQzMGU2NmMxM2NhZWEwOTcxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDkgMTA6Mzg6NTggMjAwOCArMDEwMAoKICAgIFBPU1Q6IEV4ZWN1dGUgU1BSIHRlc3QgYWZ0ZXIgcmVsb2NhdGlvbgoKICAgIE9uIExXTU9ONSB3ZSBub3cgdXNlIGQtY2FjaGUgYXMgaW5pdC1yYW0gYW5kIHN0YWNrLiBUaGUgU1BSIFBPU1QgdGVzdCB1c2VzCiAgICBzZWxmIG1vZGlmeWluZyBjb2RlIGFuZCB0aGlzIGRvZXNuJ3Qgd29yayB3aXRoIHN0YWNrIGluIGQtY2FjaGUsIHNpbmNlCiAgICBJIGNhbid0IG1vdmUgdGhlIGNvZGUgZnJvbSBkLWNhY2hlIHRvIGktY2FjaGUuIFdlIG1vdmUgdGhlIFNQUiB0ZXN0IHRvCiAgICBiZSBleGVjdXRlZCBhIGxpdHRsZSBsYXRlciwgYWZ0ZXIgcmVsb2NhdGlvbi4gVGhlbiBzdGFjayBpcyBsb2NhdGVkIGluCiAgICBTRFJBTSBhbmQgdGhpcyBzZWxmLW1vZGlmeWluZyBjb2RlIGlzIG5vIHByb2JsZW0gYW55bW9yZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOGYyNGUwNjM3YWUxMTM1MDBkOGJkNjBkODBkNTdhZmNjMGFhOGJkZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEphbiA5IDEwOjI4OjIwIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IENoYW5nZSBMV01PTjUgdG8gbm90IHVzZSBPQ00gZm9yIGluaXQtcmFtIGFuZCBQT1NUIGFueW1vcmUKCiAgICBUaGlzIHBhdGNoIGNvbmZpZ3VyZXMgdGhlIExXTU9ONSBwb3J0IHRvIHVzZSBkLWNhY2hlIGFzIGluaXQtcmFtIGFuZAogICAgdGhlIHVudXNlZCBHUFQwX0NPTVA2IGFzIFBPU1QgV09SRCBzdG9yYWdlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxNzU0ZjUwYjcxMDE5NGY4ODZiNmYyODMxODAzZDg5NjAxNzFhMTRkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDkgMTA6MjU6NDYgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogQWRkIENGR19QT1NUX0FMVF9XT1JEX0FERFIgdG8gc3VwcG9ydCBub24gT0NNIFBPU1QgV09SRCBzdG9yYWdlCgogICAgVGhlIHByaXZpb3VzIDR4eCBQT1NUIGltcGxlbWVudGF0aW9uIG9ubHkgc3VwcG9ydGVkIHN0b3JpbmcgdGhlIFBPU1QKICAgIFdPUkQgaW4gT0NNLiBTaW5jZSB3ZSBuZWVkIHRvIHJlc2VydmUgdGhlIE9DTSBvbiBMV01PTjUgZm9yIHRoZSBsb2didWZmZXIKICAgIHdlIG5lZWQgdG8gc3RvcmUgdGhlIFBPU1QgV09SRCBpbiBzb21lIG90aGVyIG5vbiB2b2xhdGlsZSBsb2NhdGlvbi4KICAgIFRoaXMgcGF0Y2ggYWRkcyBDRkdfUE9TVF9BTFRfV09SRF9BRERSIHRvIHNwZWNpZnkgYW4gYWRkcmVzcyBmb3Igc3VjaAogICAgYSBsb2NhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTAyYzUyMWQ5NGI0NWQ3YjA1YWE1MjJlNGNjZGU2Yjc0YmY1ZmU1NwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEphbiA5IDEwOjIzOjE2IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEFkZCA0NHggY2FjaGUgbG9ja2luZyB0byBiZXR0ZXIgc3VwcG9ydCBpbml0LXJhbSBpbiBkLWNhY2hlCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGxvY2tpbmcgdGhlIGluaXQtcmFtL3N0YWNrIGluIGQtY2FjaGUsCiAgICBzbyB0aGF0IG90aGVyIHJlZ2lvbnMgbWF5IHVzZSBkLWNhY2hlIGFzIHdlbGwKCiAgICBOb3RlLCB0aGF0IHRoaXMgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBsb2NrcyBleGFjdGx5IDRrIG9mIGQtY2FjaGUsCiAgICBzbyBwbGVhc2UgbWFrZSBzdXJlIHRoYXQgeW91IGRvbid0IGRlZmluZSBhIGJpZ2dlciBpbml0LXJhbSBhcmVhLiBUYWtlCiAgICBhIGxvb2sgYXQgdGhlIGx3bW9uNSA0NDBFUHggaW1wbGVtZW50YXRpb24gYXMgYSByZWZlcmVuY2UuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDBkZGI4OTYwMWE4ZDI5ZTgwOGRiNDUwMzY2NzUyZmZkYzYyNjdjNTMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDkgMTA6MTY6MzMgMjAwOCArMDEwMAoKICAgIEZpeCBtZW1zZXQgYnVnIGluIGV4dDJmc19yZWFkX2ZpbGUoKQoKICAgIGV4dDJmc19yZWFkX2ZpbGUoKSBoYWQgdGhlIGZ1bmN0aW9uIGFyZ3VtZW50cyBzd2FwcGVkLgoKICAgIFBvaW50ZWQgb3V0IGJ5IE1pa2UgTW9udG91ciwgMTkgRGVjIDIwMDcgMjI6MzQ6MjUgLTA4MDAKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDMyZDZmMWJjMDkxNzVmM2I3NzQ2OTc3MWU4MzliYzcyNTVhOWYyMmUKQXV0aG9yOiBNYXJrdXMgS2xvdHpiw7xjaGVyIDxta0BkZW54LmRlPgpEYXRlOglUdWUgSmFuIDUgMDg6MTc6MTUgMTk4OCArMDEwMAoKICAgIEZpeCBwcm9ibGVtcyB3aXRoIHVzYiBzdG9yYWdlIGRldmljZXMgb24gTVBDNTIwMCAvVFFNNTIwMAoKICAgIFRoZSBNUEM1MjAwIE9IQ0kgY29udHJvbGxlciBvcGVyYXRlcyBpbiBiaWcgZW5kaWFuLCBzbwogICAgQ0ZHX09IQ0lfQkVfQ09OVFJPTExFUiBtdXN0IGJlIGRlZmluZWQgZm9yIGl0IHRvIHdvcmsgcHJvcGVybHkuCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCA0NmY2ZTUwMTkwNDhiMTAzZDc2OTNkNTMxMGRlMGYxY2ZiYWY0YzE5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEphbiA4IDIyOjU4OjI3IDIwMDggKzAxMDAKCiAgICBGaXggY29tcGlsZSBwcm9ibGVtIHdpdGggbmV3IGVudiBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNjRiMzcyN2I5Nzc5ZDg2MTI3Y2Q1NzZlMzkyYTk4N2RlNWViYjlmZApBdXRob3I6IE1hcmt1cyBLbG90emLDvGNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMjcgMTA6MjM6MjAgMjAwNyArMDEwMAoKICAgIHRvb2xzOiBmaXggZndfcHJpbnRlbnYgdG9vbCB0byBjb21waWxlIGFnYWluCgogICAgVGhpcyBwYXRjaCB1cGRhdGVzIHRoZSBmd19wcmludGVudi9md19zZXRlbnYgdXNlcnNwYWNlIHRvb2wgdG8gaW5jbHVkZQogICAgdGhlIGNvcnJlY3QgTVREIGhlYWRlciBpbiBvcmRlciB0byBjb21waWxlIGFnYWluc3QgY3VycmVudCBrZXJuZWwKICAgIGhlYWRlcnMuIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgaXMgcHJlc2VydmVkIGJ5IGludHJvZHVjaW5nIGFuIG9wdGlvbgogICAgTVREX1ZFUlNJT04gd2hpY2ggY2FuIGJlIHNldCB0byAib2xkIiBmb3IgY29tcGlsYXRpb24gdXNpbmcgdGhlIG9sZCBNVEQKICAgIGhlYWRlcnMuIEFsb25nIHdpdGggdGhpcyBhIG51bWJlciBvZiB3YXJuaW5ncyBhcmUgZml4ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCAxZjg0MDIxYTg1YWJlYjgzN2QyY2UwZGM4NDI5N2I0ZjFkNDVkNTE2CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBKYW4gOCAxNTo0MDowOSAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBhc3NpZ24gUENJIGludGVycnVwdHMgb24gc2V1cW9pYSBib2FyZHMKCiAgICBTb21lIG9wZXJhdGluZyBzeXN0ZW1zIHJlbHkgb24gYXNzaWduZWQgUENJIGludGVycnVwdHMuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgNmU5MjMzZDMwYWZlNTdjYjZlMTQ4ZmJmYTQ4OTVlNzgxMDE5NmZhYwpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUdWUgSmFuIDggMTU6NTA6NDkgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogTW92ZSBjcHUvcHBjNHh4L3ZlY251bS5oIGludG8gaW5jbHVkZSBwYXRoCgogICAgVGhpcyBwYXRjaCBhbGxvd3MgdGhlIHVzZSBvZiA0eHggaW50ZXJydXB0IHZlY3RvciBudW1iZXIgZGVmaW5lcwogICAgaW4gYm9hcmQgc3BlY2lmaWMgY29kZSBvdXRzaWRlIGNwdS9wcGM0eHguCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgNTgwZDFkMzE4NmEyYmM2ZGJkYjYyNjk0MWI3MTZkYWUxNzg4ZTUxZQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUdWUgSmFuIDggMTU6Mzk6MDEgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogRml4IFVJQzIgdmVjdG9yIG51bWJlciBiYXNlCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZmY1ZmI4YTZjY2JhNTZlMzQ4MmQwZTI5N2Q4Y2ZiN2ZhYTA0MDgxMQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUdWUgSmFuIDggMTI6NDk6NTggMjAwOCArMDEwMAoKICAgIHBwYzR4eDogVXBkYXRlIFBMQi9QQ0kgZGl2aWRlciBmb3IgUE1DNDQwIGJvYXJkCgogICAgVGhpcyBwYXRjaCB1cGRhdGVzIHRoZSBQTEIvUENJIGRpdmlkZXIgd2hlbiBydW5uaW5nIGF0CiAgICA0MDBNSHogQ1BVIGZyZXF1ZW5jeSBmcm9tIDQgdG8gMyB3aGljaCByZXN1bHRzIGluIDQ0TUh6IFBDSSBzeW5jIGNsb2NrLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDdkNWQ3NTYzMzE3NDg2NzMxNmEwYzBmMmZjYTVjZWIyY2YzMTJjZGUKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIEphbiA4IDExOjEzOjA5IDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IERpc2FibGUgZXJyb3IgbWVzc2FnZSB3aGVuIG5vIE5BTkQgY2hpcCBpcyBpbnN0YWxsZWQgb24gUE1DNDQwCgogICAgQWRkIENGR19OQU5EX1FVSUVUX1RFU1Qgb3B0aW9uIHRvIGRpc2FibGUgZXJyb3IgbWVzc2FnZSB3aGVuCiAgICBubyBOQU5EIGNoaXAgaXMgaW5zdGFsbGVkIG9uIFBNQzQ0MCBib2FyZHMuCgogICAgRGlzYWJsZSBhIGNvdXBsZSBvZiBjb25maWcgZGVmaW5lcyB0aGF0IGFyZSBvbmx5IHVzZWQgZm9yIE5BTkRfVV9CT09ULgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGM4M2Q3Y2E0ZGFkZDQ0YWU0MzAyMzUwNzdmNjNiNjRhMTFmMzZmNmUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgSmFuIDggMjI6NTg6MjcgMjAwOCArMDEwMAoKICAgIEZpeCBjb21waWxlIHByb2JsZW0gd2l0aCBuZXcgZW52IGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2ZGU2NmIzNTQyNjMxMmEyMTE3NGE5YmYwNTc2YTA5NGUyOTA0YmVhCkF1dGhvcjogTWFya3VzIEtsb3R6YsO8Y2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIE5vdiAyNyAxMDoyMzoyMCAyMDA3ICswMTAwCgogICAgdG9vbHM6IGZpeCBmd19wcmludGVudiB0b29sIHRvIGNvbXBpbGUgYWdhaW4KCiAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgdGhlIGZ3X3ByaW50ZW52L2Z3X3NldGVudiB1c2Vyc3BhY2UgdG9vbCB0byBpbmNsdWRlCiAgICB0aGUgY29ycmVjdCBNVEQgaGVhZGVyIGluIG9yZGVyIHRvIGNvbXBpbGUgYWdhaW5zdCBjdXJyZW50IGtlcm5lbAogICAgaGVhZGVycy4gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBpcyBwcmVzZXJ2ZWQgYnkgaW50cm9kdWNpbmcgYW4gb3B0aW9uCiAgICBNVERfVkVSU0lPTiB3aGljaCBjYW4gYmUgc2V0IHRvICJvbGQiIGZvciBjb21waWxhdGlvbiB1c2luZyB0aGUgb2xkIE1URAogICAgaGVhZGVycy4gQWxvbmcgd2l0aCB0aGlzIGEgbnVtYmVyIG9mIHdhcm5pbmdzIGFyZSBmaXhlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IGFkMzAwNmZlN2U4NDY2NzAyMTc1M2I3NDI0N2IwYmFmZDk3YmEzNWYKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglNb24gSmFuIDcgMjM6NDc6MzIgMjAwOCAtMDUwMAoKICAgIExJQkZEVDogdXNlIG1lbW1vdmUoKSBpbnN0ZWFkIG9mIG1lbWNweSgpCgogICAgVGhpcyBpcyBwYXJ0aWFsIHBhdGNoIGZyb20gdGhlIERUQy9saWJmZHQKICAgIGNvbW1pdCAgNjdiNmIzM2I5YjQxM2E0NTBhNzIxMzViNWRjNTljMGExZTMzZTY0NwogICAgQXV0aG9yOiBEYXZpZCBHaWJzb24gPGRhdmlkQGdpYnNvbi5kcm9wYmVhci5pZC5hdT4KICAgIERhdGU6ICAgV2VkIE5vdiAyMSAxMTo1NjoxNCAyMDA3ICsxMTAwCgoJVGhlIHBhdGNoIGFsc28gZml4ZXMgb25lIGdlbnVpbmUgYnVnIGNhdWdodCBieSB2YWxncmluZCAtCglfcGFja2Jsb2NrcygpIGluIGZkdF9ydy5jIHdhcyB1c2luZyBtZW1jcHkoKSB3aGVyZSBpdCBzaG91bGQgaGF2ZSBiZWVuCgl1c2luZyBtZW1tb3ZlKCkuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCBhZWM3MTM1YmMzMDBlMzM0MGQxOGYyMDMzNDdlZTAwYzViNWY2OGMwCkF1dGhvcjogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+CkRhdGU6CU1vbiBEZWMgMTcgMTQ6NDI6MDcgMjAwNyArMTEwMAoKICAgIGxpYmZkdDogQWRkIG1vcmUgZG9jdW1lbnRhdGlvbiAocGF0Y2ggdGhlIHNldmVudGgpCgogICAgVGhpcyBwYXRjaCBhZGRzIG1vcmUgZG9jdW1lbnRpbmcgY29tbWVudHMgdG8gbGliZmR0LmguICBTcGVjaWZpY2FsbHksCiAgICB0aGVzZSBkb2N1bWVudCB0aGUgcmVhZC93cml0ZSBmdW5jdGlvbnMgKG5vdCBpbmNsdWRpbmcgZmR0X29wZW5faW50bygpCiAgICBhbmQgZmR0X3BhY2soKSwgZm9yIG5vdykuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgR2lic29uIDxkYXZpZEBnaWJzb24uZHJvcGJlYXIuaWQuYXU+Cgpjb21taXQgOWQ0NDUwYjVhZGMzNjYyM2U5YzFkZTFmOTI1MzlkYjc3YWQwYzU3ZQpBdXRob3I6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgpEYXRlOglNb24gRGVjIDE3IDE0OjQxOjUyIDIwMDcgKzExMDAKCiAgICBsaWJmZHQ6IEFkZCBtb3JlIGRvY3VtZW50YXRpb24gKHBhdGNoIHRoZSBzaXh0aCkKCiAgICBUaGlzIHBhdGNoIGFkZHMgc29tZSBtb3JlIGRvY3VtZW50aW5nIGNvbW1lbnRzIHRvIGxpYmZkdC5oLgogICAgU3BlY2lmaWNhbGx5IHRoaXMgZG9jdW1lbnRzIGFsbCB0aGUgd3JpdGUtaW4tcGxhY2UgZnVuY3Rpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIEdpYnNvbiA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1PgoKY29tbWl0IGI2MGFmM2Q0YzE2ODA0ODdlZTM3ZTExYWExYjNkYjZkZWMwNGQ4ZjAKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgRGVjIDI5IDIyOjQ1OjI3IDIwMDcgLTA1MDAKCiAgICBGaW5lIGdyYWluZWQgcGVyIHByb3BlcnR5IC9jaG9zZW4gdXBkYXRpbmcuCgogICAgSW1wbGVtZW50IGEgc3VnZ2VzdGlvbiBieSBTY290dCBXb29kIHRvIG1ha2UgdGhlIC9jaG9zZW4gaGFuZGxpbmcgZmluZQogICAgZ3JhaW5lZC4gIERvbid0IG92ZXJ3cml0ZSBwcmUtZXhpc3RpbmcgcHJvcGVydGllcyBvbiBhIHBlci1wcm9wZXJ0eSBiYXNpcywKICAgIHNvIGlmIC9jaG9zZW4gZXhpc3RzIGJ1dCBhIG5lY2Vzc2FyeSAvY2hvc2VuL3Byb3BlcnR5IGRvZXNuJ3QsIGl0IGdldHMKICAgIGNyZWF0ZWQuICBJZiBhIC9jaG9zZW4gcHJvcGVydHkgZXhpc3RzLCBpdCBpcyBOT1Qgb3ZlcndyaXR0ZW4gdW5sZXNzIHRoZQogICAgImZvcmNlIiBmbGFnIGlzIHRydWUuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCAyMzhjYjdhNDIzYzZlYWEzNjQ5NmVmYjc4OGNmYjk3OThjZWE3Zjk1CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IEphbiA1IDE1OjMzOjI5IDIwMDggLTA1MDAKCiAgICBJbXByb3ZlIHRoZSBGRFQgaGVscCBtZXNzYWdlLgoKICAgIEFkZCBhIG5vdGUgdGhhdCAiZmR0IGNvcHkiIG1ha2VzIHRoZSBuZXcgYWRkcmVzcyBhY3RpdmUuCiAgICBSZW1vdmUgbW9zdCBvZiB0aGUgZXh0cmEgaGludHMgYXQgdGhlIGVuZCBvZiB0aGUgZmR0IGhlbHAuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCBlYTZkOGJlMTUzY2VhZjE2OTU4ZjgwMDljZWE2ZDc1ZjNmZjU4ZDkyCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IEphbiA1IDE0OjUyOjA0IDIwMDggLTA1MDAKCiAgICBTdXBwb3J0IHNldHRpbmcgRkRUIHByb3BlcnRpZXMgd2l0aCBvcHRpb25hbCB2YWx1ZXMuCgogICAgRml4IGEgYnVnIGZvdW5kIGFuZCBkb2N1bWVudGVkIGJ5IEJhcnRsb21pZWogU2lla2Egd2hlcmUgdGhlIG9wdGlvbmFsCiAgICB2YWx1ZSBvbiAiZmR0IHNldCA8cGF0aD4gPHByb3A+IFs8dmFsPl0iIHdhc24ndCBvcHRpb25hbC4KCiAgICA9PiBmZHQgbWtub2RlIC8gdGVzdG5vZGUKICAgID0+IGZkdCBwcmludCAvdGVzdG5vZGUKICAgIHRlc3Rub2RlIHsKICAgIH07CiAgICA9PiBmZHQgc2V0IC90ZXN0bm9kZSB0ZXN0cHJvcAogICAgPT4gZmR0IHByaW50IC90ZXN0bm9kZQogICAgdGVzdG5vZGUgewoJICAgIHRlc3Rwcm9wOwogICAgfTsKCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDIyZmIyMjQ2ZGY5MWJmYzg0MGQ4N2YwYzU5MTA4MThiYWQ1NTU3N2EKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIERlYyAyOCAxMTo1NjozMCAyMDA3ICswMTAwCgogICAgQWRkIGZkdF9maW5kX2FuZF9zZXRwcm9wKCkgdG8gZmR0X3N1cHBvcnQuaAoKICAgIGZkdF9maW5kX2FuZF9zZXRwcm9wKCkgaXMgdXNlZCBieSBzZXZlcmFsIDR4eCBib2FyZHMgYW5kIGl0J3MKICAgIG1pc3NpbmcgaW4gdGhlIGFwcHJvcHJpYXRlIGhlYWRlci4gVGhpcyBwYXRjaCBlbGltaW5hdGVzIGEKICAgIHdhcm5pbmcgd2hlbiBidWlsZGluZyBVLUJvb3QgZm9yIHN1Y2ggYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4MDJiNzY5YmFjMTdiMDU2MGQzNTM1YTQyYzUwMjQ2OWVlMTkwY2QxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSmFuIDggMTg6Mzk6MzAgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogUmV0dXJuIDAgb24gc3VjY2VzcyBpbiA0eHggZXRoZXJuZXQgZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDY3NzVjNjg2ODNhNTNjN2FiYzc3ODc3NDY0MWFhYzZmODMzYTJjYmYKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDggMDk6NTk6NDkgMjAwOCAtMDYwMAoKICAgIG1wYzgzeHg6IGZpeCBtaXNzZWQgcGNpX2hvc2UgLT4gaG9zZSBjb252ZXJzaW9uIGZvciBuZXcgbGliZmR0IGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk0ZmFiMjVmNWYxYTdkMWMwY2M2M2MxN2U4MTNlYTg5NDNmZTQ5YzcKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgRGVjIDIwIDE2OjI4OjM0IDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBybSByZW1haW5pbmcgRkxBVF9UUkVFIGNvZGUKCiAgICAuLmluIGJvYXJkIHBjaS5jIGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiMzQ1OGQyY2Q1NWQwMTczMmUzMGE3NmQ4OThhZmQ5OWU4NzFjZDY3CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IERlYyAyMCAxNTo1NzoyOCAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogcmVtb3ZlIEZMQVRfVFJFRSBjb2RlCgogICAgbmVlZCB0byBybSBpdCBmcm9tIHBjaSBjb2RlLCB0b28hCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1YjhiYzYwNmM2MTQ1NjU2NmFmNjkxMmY4MThhMTUzYjZiMDZmMjQyCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IERlYyAyMCAxNDowOToyMiAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogY29udmVydCB0byB1c2luZyBkb19maXh1cF8qKCkKCiAgICBjb252ZXJ0IHRvIHVzaW5nIHNpbXBsZXIgbXBjODV4eCBzdHlsZSBmZHQgdXBkYXRlIGNvZGU7IHN0cmVhbWxpbmUgYnkKICAgIGVsaW1pbmF0aW5nIG1hY3JvcyBPRl9TT0MsIE9GX0NQVSwgZXRjLiB3aGljaCBhbGxvd3MgdXMgdG8gcm0KICAgIHRoZSBvbGQgc2Nob29sIEZMQVRfVFJFRSBjb2RlIGZyb20gODN4eCAoc2luY2UgdGhlIHNiYzgzNDkgd2FzIGp1c3QKICAgIGNvbnZlcnRlZCBvdmVyIHRvIHVzaW5nIGxpYmZkdCkuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlNDk2ODY1ZWNjMzFhMmZlMmY5YWJmZTc5ODMzNGJiMDJhYWYwNWFiCkF1dGhvcjogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+CkRhdGU6CVRodSBEZWMgMjAgMTI6NTg6NTEgMjAwNyAtMDUwMAoKICAgIHNiYzgzNDk6IGVuYWJsZSBsaWJmZHQgYnkgZGVmYXVsdCBvbiBXUlMgU0JDODM0OSBib2FyZC4KCiAgICBNYWtlIGxpYmZkdCB0aGUgZGVmYXVsdCBmb3IgdGhlIFdSUyBTQkM4MzQ5IGJvYXJkLgogICAgUGFyYWxsZWwgb2YgY29tbWl0IDM1Y2M0ZTQ4MjM2NjhlODc0NTg1NDg5OWNmYWVkZDQ0ODliZWIwZWYKICAgIGRvbmUgZm9yIHRoZSBvdGhlciA4M3h4IGJhc2VkIGJvYXJkcy4gIEFsc28gZml4IGEgdHlwbyBpbiBDT05GSUdfUENJLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBhdWwgR29ydG1ha2VyIDxwYXVsLmdvcnRtYWtlckB3aW5kcml2ZXIuY29tPgoKY29tbWl0IDI0MDhiM2YyMGJjYmRkOWM2YzM5N2NkMDNhYjBkNzFkNTQ2ODBhNDAKQXV0aG9yOiBQYXVsIEdvcnRtYWtlciA8cGF1bC5nb3J0bWFrZXJAd2luZHJpdmVyLmNvbT4KRGF0ZToJVGh1IERlYyAyMCAxMjo1ODoxNiAyMDA3IC0wNTAwCgogICAgc2JjODM0OTogbWlncmF0ZSBib2FyZCB0byBsaWJmZHQKCiAgICBUaGlzIGFkZHMgbGliZmR0IHN1cHBvcnQgY29kZSBmb3IgdGhlIFdpbmQgUml2ZXIgc2JjODM0OSBib2FyZC4KCiAgICBQYXJhbGxlbCBvZiBjb21taXQgM2ZkZTllOGIyMmNmYmQ3YWY0ODkyMTQ3NThmOTgzOWEyMDY1NzZjYiBmb3IKICAgIHRoZSBvdGhlciBGcmVlc2NhbGUgODN4eCBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+Cgpjb21taXQgMjdhMjU2YTkwY2M4NjM5MmFjOWJmMDAzOWEzYWZlNjM4ZWMyYzE4ZApBdXRob3I6IFBhdWwgR29ydG1ha2VyIDxwYXVsLmdvcnRtYWtlckB3aW5kcml2ZXIuY29tPgpEYXRlOglUaHUgRGVjIDIwIDEyOjU2OjE5IDIwMDcgLTA1MDAKCiAgICBzYmM4MzQ5OiBSZW1vdmUgYm9hcmQgc3BlY2lmaWMgRUNDIGNvZGUKCiAgICBFQ0MgY29kZSBpcyBub3cgc2hhcmVkIGZvciBhbGwgODN4eCBib2FyZHMsIHNvIHJlbW92ZSBib2FyZCBzcGVjaWZpYyBvbmUuCiAgICBTZWUgY29tbWl0IGRhYWI4YzY3ZDJkZWZlZjczZGMyNmFiMDdmMGMzYWZkMWIwNWQwMTkgZm9yIHJlZmVyZW5jZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQYXVsIEdvcnRtYWtlciA8cGF1bC5nb3J0bWFrZXJAd2luZHJpdmVyLmNvbT4KCmNvbW1pdCBhMWUxYWM4NDkyNDkzMTBlNWUyZTVjNzE0OGU5ZmIzNTNhODMxN2E3CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IERlYyAyMCAwMTozMDo0OCAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogUmVtb3ZlIENPTkZJRyBvcHRpb25zIHJlbGF0ZWQgdG8gT0YgdGhhdCB3ZSBkb250IHVzZSAob24gODM3eCkKCiAgICBjb250aW51YXRpb24gb2YgY29tbWl0IDM3Mzk1ZmEyYjBkOWQ2MTdmMjhkNDRjYTExNTkyMjYwZWYxNjEwNWEgdG8gODM3eAoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2NmMjFjMzExZTY4ZDQ4Mzk5ZWZmMWU3MjkzNjA1Mjg4NWY2ZTNmNwpBdXRob3I6IEpvYWtpbSBUamVybmx1bmQgPEpvYWtpbS5UamVybmx1bmRAdHJhbnNtb2RlLnNlPgpEYXRlOglUaHUgRGVjIDYgMTY6NDM6NDAgMjAwNyArMDEwMAoKICAgIEFkZCBzdXBwb3J0IENPTkZJR19VRUNfRVRIMyBpbiBNUEM4M3h4CgogICAgU2lnbmVkLW9mZi1ieTogSm9ha2ltIFRqZXJubHVuZCA8Sm9ha2ltLlRqZXJubHVuZEB0cmFuc21vZGUuc2U+Cgpjb21taXQgZTZhZjk5MzJkMzExNzFlMzVkYjg4MGU3YjJmMjlmOTAzYjFiNzY2MApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBOb3YgMjYgMTE6MDA6NTQgMjAwNyAtMDYwMAoKICAgIFJlbW92ZSBDT05GSUcgb3B0aW9ucyByZWxhdGVkIHRvIE9GIHRoYXQgd2UgZG9udCB1c2UKCiAgICBUaGUgTVBDODM2MEUgTURTIGNvbmZpZyBkZWZpbmVkOgoJQ09ORklHX09GX0hBU19CRF9UCglDT05GSUdfT0ZfSEFTX1VCT09UX0VOVgoKICAgIFdoaWNoIHdlIGRvbid0IHVzZSBvciBldmVyIG5lZWRlZC4JVGhpcyBzZWVtcyBsaWtlIGNvcHktcGFzdGUgZmVhdHVyZSBjcmVlcC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGY2MDIwODJiNGI3ZWQ0ZWUxNjQzMjA2N2NjNjdhMGEyNGZlZGM3MTUKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gRGVjIDEwIDE0OjE2OjIyIDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBzdXByZXNzIGNvbXBpbGVyIHdhcm5pbmcKCiAgICBtcGM4MzYwZW1kcy5jOiBJbiBmdW5jdGlvbiDigJhmdF9ib2FyZF9zZXR1cOKAmToKICAgIG1wYzgzNjBlbWRzLmM6MzM1OiB3YXJuaW5nOiBhc3NpZ25tZW50IGRpc2NhcmRzIHF1YWxpZmllcnMgZnJvbSBwb2ludGVyIHRhcmdldCB0eXBlCiAgICBtcGM4MzYwZW1kcy5jOjM0NTogd2FybmluZzogYXNzaWdubWVudCBkaXNjYXJkcyBxdWFsaWZpZXJzIGZyb20gcG9pbnRlciB0YXJnZXQgdHlwZQoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzE2ZTQ0ZmE4MzVmYjllZWM5ODJkOTE5ODYzYTA0ZTJmNzhlNWNlNwpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBOb3YgMjcgMTQ6MTc6MjkgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IGZpeCByZW1haW5pbmcgZmR0X2ZpbmRfbm9kZV9ieV9wYXRoIHJlZmVyZW5jZXMKCiAgICByZW5hbWUgdG8gZmR0X3BhdGhfb2Zmc2V0CgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5MjFkNGIxOWFkMWJlNzA0ZGY1ODcyNTQ4NWQ5MjkyZGMwNDE0YWRmCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE5vdiAxOSAxMjozMDowOSAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogZml4IENGR19FTlZfQUREUiBhbmQgQ0ZHX0VOVl9TRUNUX1NJWkUgZGVmaW5pdGlvbnMgZm9yIDgzN3gKCiAgICBGaXggdGhlIGRlZmluaXRpb25zIG9mIENGR19FTlZfQUREUiBhbmQgQ0ZHX0VOVl9TRUNUX1NJWkUgZm9yIDgzN3guCiAgICBUaGlzIGNoYW5nZSBndWFyYW50ZWVzIHRoYXQgdGhlIGVudmlyb25tZW50IHdpbGwgYmUgbG9jYXRlZCBvbiB0aGUKICAgIGZpcnN0IGZsYXNoIHNlY3RvciBhZnRlciB0aGUgVS1Cb290IGltYWdlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjRmODY4NDMzYjUwZWNiYWE4OGUxMThhYWRjN2JkMjU0MDEzYzZhZQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBOb3YgOSAxNDoyODowOCAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogbXBjODM2MCByZXYuMi4xIGVycmF0dW0gMjogcmVwbGFjZSByZ21paS1pZCB3aXRoIHJnbWlpLXJ4aWQKCiAgICB1LWJvb3QgaXRzZWxmIHVzZXMgR01JSSBtb2RlIG9uIHRoZSA4MzYwLiAgRml4IHVwIFVDQyBwaHktY29ubmVjdGlvbi10eXBlCiAgICBwcm9wZXJ0aWVzIGluIHRoZSBkZXZpY2UgdHJlZSBzbyB0aGUgUEhZIGdldHMgY29uZmlndXJlZCBmb3IgaW50ZXJuYWwgZGVsYXkgb24KICAgIFJYIG9ubHkgYnkgdGhlIE9TLCBhcyBwcmVzY3JpYmVkIGJ5IG1wYzgzNjAgcmV2LiAyLjEgcGIgbWRzIGVycmF0dW0gIzIuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyMmI0NDhkYmZiZTJhOThmMDFmZjRhZGMzYzM5NzlmOGM1NDFhZDdiCkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgU2VwIDE4IDEyOjQxOjE1IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiB1cGRhdGUgdGhlIENSRURJVFMgYW5kIE1BSU5UQUlORVJTCgogICAgdXBkYXRlIHRoZSBDUkVESVRTIGFuZCBNQUlOVEFJTkVSUy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIyMWFkZDRiNDJhZjdiNzY3NDQ4MjUxYjU5OWI5MTA2NmExNjBlMGQKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBTZXAgMTggMTI6NDA6MjEgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IGFkZCBNQUlOVEFJTkVSIGFuZCBNQUtFQUxMIGVudHJpZXMgZm9yIHRoZSBtcGM4Mzd4ZW1kcwoKICAgIEFkZCB0aGUgTUFJTlRBSU5FUiBhbmQgTUFLRUFMTCBlbnRyaWVzIGZvciBtcGM4Mzd4ZW1kcwoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjg5MDBjZTkwOTRjNDYyMzU1ZWI3OTJlZWEyNjRmZjE2YWM4ZmQxNgpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIFNlcCAxOCAxMjozODo1MyAyMDA3ICswODAwCgogICAgbXBjODN4eDogQWRkIHRoZSBNUEM4Mzd4RU1EUyBib2FyZCByZWFkbWUKCiAgICBBZGQgdGhlIFJFQURNRS5tcGM4Mzd4ZW1kcyB0byAvZG9jCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxOTU4MGU2NjBjYzhkYTQ5ZjE2NTM2YThiZDc4YzA0N2M3YmMxMmU1CkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgU2VwIDE4IDEyOjM3OjU3IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBBZGQgdGhlIHN1cHBvcnQgb2YgTVBDODM3eEVNRFMgYm9hcmQKCiAgICBUaGUgTVBDODM3eEVNRFMgYm9hcmQgc3VwcG9ydDoKICAgICogRERSMiA0MDBNSHogaGFyZGNvZGVkIGFuZCBTUEQgaW5pdAogICAgKiBMb2NhbCBidXMgTk9SIEZsYXNoCiAgICAqIEkyQywgVUFSVCwgTUlJIGFuZCBSVEMKICAgICogZVRTRUMgUkdNSUkKICAgICogUENJIGhvc3QKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU1NWRhNjE3MDI3NzFmZTBmNzZmM2RlMjNiNGU3NTkwZjM3MDQxNjEKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBTZXAgMTggMTI6MzY6NTggMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IEFkZCB0aGUgc3VwcG9ydCBvZiBNUEM4MzE1RSBTb0MKCiAgICBUaGUgTVBDODMxNUUgU29DIGluY2x1ZGluZyBlMzAwYzMgY29yZSBhbmQgbmV3IElQIGJsb2NrcywKICAgIHN1Y2ggYXMgVERNLCBQQ0kgRXhwcmVzcyBhbmQgU0FUQSBjb250cm9sbGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDMwNTFjM2QzNWM5OTgxY2VhYTA1OTAwNTY2MGU2OTlmM2VhY2YxYwpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIFNlcCAxOCAxMjozNjoxMSAyMDA3ICswODAwCgogICAgbXBjODN4eDogQWRkIHRoZSBzdXBwb3J0IG9mIE1QQzgzN3ggU29DCgogICAgVGhlIE1QQzgzN3ggU29DIGluY2x1ZGluZyBlMzAwYzQgY29yZSBhbmQgbmV3IElQIGJsb2NrcywKICAgIHN1Y2ggYXMgU0RIQywgUENJIEV4cHJlc3MgYW5kIFNBVEEgY29udHJvbGxlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY1MWQ5NmY3ZTRjODRhZGNkYjk4ZWYwN2VjODc4YzIwMzI2ZTMzNTkKQXV0aG9yOiBBbnRvbiBWb3JvbnRzb3YgPGF2b3JvbnRzb3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJV2VkIE5vdiAxNCAxODo1NDo1MyAyMDA3ICswMzAwCgogICAgTVBDODM2MEUtTURTOiBjb25maWd1cmUgYW5kIGVuYWJsZSBzZWNvbmQgVUFSVAoKICAgIERlc3BpdGUgdXNlciBtYW51YWwsIEJDU1I5LjcgaXMgbmVnYXRlZCAoaGlnaCkgb24gSFJTVCwgc28KICAgIFVBUlQyIGlzIGRpc2FibGVkLiBGaXggdGhhdCBhbmQgY29uZmlndXJlIFFFIHBpbnMgcHJvcGVybHkuCgogICAgU2lnbmVkLW9mZi1ieTogQW50b24gVm9yb250c292IDxhdm9yb250c292QHJ1Lm12aXN0YS5jb20+Cgpjb21taXQgYjI4OTNlMWZjYjI4ZmFkOGM4YjMxNzEwNGRmOGNlZTAxNDJjNzYzMQpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBOb3YgNSAwOTozNDowNiAyMDA3IC0wNjAwCgogICAgODN4eDogZml4IENGR19FTlZfQUREUiBhbmQgQ0ZHX0VOVl9TRUNUX1NJWkUgZGVmaW5pdGlvbnMKCiAgICBGaXggdGhlIGRlZmluaXRpb25zIG9mIENGR19FTlZfQUREUiBhbmQgQ0ZHX0VOVl9TRUNUX1NJWkUgZm9yIGFsbCBvZiB0aGUKICAgIGN1cnJlbnRseS1kZWZpbmVkIDgzeHggYm9hcmRzLiAgVGhpcyBjaGFuZ2UgZ3VhcmFudGVlcyB0aGF0IHRoZSBlbnZpcm9ubWVudAogICAgd2lsbCBiZSBsb2NhdGVkIG9uIHRoZSBmaXJzdCBmbGFzaCBzZWN0b3IgYWZ0ZXIgdGhlIFUtQm9vdCBpbWFnZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlMDUzMjk1MTZhMTM2MTZiNTMyNDBjZDg1YjczOTIxN2MyYmY4N2YxCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+CkRhdGU6CUZyaSBKYW4gNCAxMzoyNzowMiAyMDA4IC0wNTAwCgogICAgcHBjNHh4OiBSZW1vdmUgd2VhayBiaW5kaW5nIGZyb20gY29tbW9uIERlbmFsaSBkYXRhLWV5ZSBzZWFyY2ggY29kZQoKICAgIE5vdyB0aGF0IHRoZXJlIGFyZSBubyBib2FyZC1zcGVjaWZpYyB2ZXJzaW9ucyBvZgogICAgImRlbmFsaV9jb3JlX3NlYXJjaF9kYXRhX2V5ZSgpIiwgdGhlIHdlYWsgYmluZGluZyBvbiB0aGUgY29tbW9uIHZlcnNpb24KICAgIGNhbiBiZSByZW1vdmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDViYTU3NmMwMTYwMmZkMzI4ODAwYTQyNzk2NGMzNmEwYTA1YzVkY2UKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gNSAwOToxMzo0NiAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBSZW1vdmUgdW51c2VkIENPTkZJR19FQ0NfRVJST1JfUkVTRVQgZnJvbSA0NHhfc3BkX2RkcjIuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4NDVjNmM5NWRiZmU2YzkxNWNlNjhhMGExMTU4NTJmYTE3OTMyZmI0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDUgMDk6MTI6NDEgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogVXBkYXRlIEthdG1haS80NHhfc3BkX2RkcjIuYyBjb2RlIGZvciBvcHRpbWFsIEREUjIgc2V0dXAKCiAgICBPbiBLYXRtYWkgdGhlIGNvbXBsZXRlIGF1dG8tY2FsaWJyYXRpb24gc29tZWhvdyBkb2Vzbid0IHNlZW0gdG8KICAgIHByb2R1Y2UgdGhlIGJlc3QgcmVzdWx0cywgbWVhbmluZyBvcHRpbWFsIHZhbHVlcyBmb3IgUlFGRC9SRkZELgogICAgVGhpcyB3YXMgZGlzY292ZXJlZCBieSBHREEgdXNpbmcgYSBoaWdoIGJhbmR3aWR0aCBzY29wZSwKICAgIGFuYWx5emluZyB0aGUgRERSMiBzaWduYWxzLiBHREEgcHJvdmlkZWQgYSBmaXhlZCB2YWx1ZSBmb3IgUlFGRCwKICAgIHNvIG5vdyBvbiBLYXRtYWkgIm9ubHkiIFJGRkQgaXMgYXV0by1jYWxpYnJhdGVkLgoKICAgIFRoaXMgcGF0Y2ggYWxzbyBhZGRzIFJEQ0MgY2FsaWJyYXRpb24gYXMgbWVudGlvbmVkIG9uIHBhZ2UgNyBvZgogICAgdGhlIEFNQ0MgUG93ZXJQQzQ0MFNQL1NQZSBERFIyIGFwcGxpY2F0aW9uIG5vdGU6CiAgICAiRERSMS9ERFIyIEluaXRpYWxpemF0aW9uIFNlcXVlbmNlIGFuZCBEeW5hbWljIFR1bmluZyIKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDlkYjQ3YjhhZTZhZmZmMmI4OThiZTMxMjk0OGZmNTAxMzU3ZGM4MApBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglXZWQgSmFuIDIgMTY6NDg6NDIgMjAwOCArMDEwMAoKICAgIHBwYzR4eDogUmVtb3ZlIHNkcmFtLmggZnJvbSBQTUM0NDAgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCAzNDA2NWEyY2UwZDg5NzJmMmVjNjY1MjA3NjAxNGFiMjQzZDJjZThhCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVdlZCBKYW4gMiAxNjo0ODozNCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiB1c2UgY29tbW9uIGRlbmFsaSBjb3JlIGRlZmluZXMgYW5kIGRhdGEgZXllIHNlYXJjaCBjb2RlIGZvciBQTUM0NDAKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA5YWM2YjZmM2QzZjFiMDcyZDg5MjY4YjJlZmU0N2U5NWU2NjU5NDg5CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVdlZCBKYW4gMiAxMjowNToxNCAyMDA4ICswMTAwCgogICAgcHBjNHh4OiBNb3JlIGNsZWFudXAgZm9yIGVzZCdzIExDRCBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZmU5YzI2YjMzMGEyMWNlNzNlNTJiNWJkMzQ3ZDcyNWNiODFlM2NmYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEphbiA0IDEyOjAwOjAxIDIwMDggKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBTZXF1b2lhIE5BTkQgYm9vdGluZyB0YXJnZXQKCiAgICBUaGUgU2VxdW9pYSBOQU5EIGJvb3RpbmcgdGFyZ2V0IG5vdyB1c2VzIHRoZSByZWNlbnRseSBleHRyYWN0ZWQKICAgIGNwdS9wcGM0eHgvZGVuYWxpX2RhdGFfZXllLmMgZmlsZSB0b28uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDBkZGQ5NjlhZWM1MzJiZDdlYWUzMGZjMDk1OTA0ODhhM2FhYTYyOWEKQXV0aG9yOiBMYXdyZW5jZSBSLiBKb2huc29uIDxscmpAYWNtLm9yZz4KRGF0ZToJVGh1IEphbiAzIDE1OjAyOjAyIDIwMDggLTA1MDAKCiAgICBwcGM0eHg6IFVzZSBDRkdfNHh4X0dQSU9fVEFCTEUgdG8gY29uZmlndXJlIEtvcmF0IGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgYjA1ZThiZjU4YmU5ZDg5NTZmZGZkZTNkOGM4ZTg3YzE0MDQxNDY2MwpBdXRob3I6IExhd3JlbmNlIFIuIEpvaG5zb24gPGxyakBhY20ub3JnPgpEYXRlOglGcmkgSmFuIDQgMDI6MTE6NTYgMjAwOCAtMDUwMAoKICAgIHBwYzR4eDogVXNlIENGR180eHhfR1BJT19UQUJMRSB0byBjb25maWd1cmUgU2VxdW9pYSBib2FyZAoKICAgIE5vdGU6IHRoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgY29uZmlndXJhdGlvbiBvZiBzb21lIEdQSU8gcmVnaXN0ZXJzOgoKICAgICAgIFJlZ2lzdGVyICAgICAgT2xkIFZhbHVlCSBOZXcgVmFsdWUKICAgIC0tLS0tLS0tLS0tLS0tLSAgLS0tLS0tLS0tLSAgLS0tLS0tLS0tLQogICAgRENSIEdQSU8wX1RDUiAgICAweDAwMDAwMDBGICAweDAwMDBGMENGCiAgICBEQ1IgR1BJTzBfVFNSSCAgIDB4NTUwMDUwMDAgIDB4MDAwMDAwMDAKICAgIERDUiBHUElPMV9UQ1IgICAgMHhDMjAwMDAwMCAgMHhFMjAwMDAwMAogICAgRENSIEdQSU8xX1RTUkwgICAweDBDMDAwMDAwICAweDAwMjAwMDAwCiAgICBEQ1IgR1BJTzFfSVNSMkwgIDB4MDAwNTAwMDAgIDB4MDAxMTAwMDAKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCA1YWI4ODRiMjU0Y2EyZTcwN2FiNTA1NDVjZDcwNWYzMDEwOGNmNDkxCkF1dGhvcjogTGF3cmVuY2UgUi4gSm9obnNvbiA8bHJqQGFjbS5vcmc+CkRhdGU6CVRodSBKYW4gMyAxODo1NDowMCAyMDA4IC0wNTAwCgogICAgcHBjNHh4OiBBZGQgZnVuY3Rpb25hbGl0eSB0byBHUElPIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIG1ha2VzIHR3byBhZGRpdGlvbnMgdG8gR1BJTyBzdXBwb3J0OgoKICAgIEZpcnN0LCBpdCBhZGRzIGZ1bmN0aW9uIGdwaW9fcmVhZF9pbl9iaXQoKSB0byByZWFkIHRoZSBhIGJpdCBmcm9tIHRoZQogICAgR1BJTyBJbnB1dCBSZWdpc3RlciAoR1BJT3hfSVIpIGluIHRoZSBzYW1lIHdheSB0aGF0IGZ1bmN0aW9uCiAgICBncGlvX3JlYWRfb3V0X2JpdCgpIHJlYWRzIGEgYml0IGZyb20gdGhlIEdQSU8gT3V0cHV0IFJlZ2lzdGVyCiAgICAoR1BJT3hfT1IpLgoKICAgIFNlY29uZCwgaXQgbW9kaWZpZXMgZnVuY3Rpb24gZ3Bpb19zZXRfY2hpcF9jb25maWd1cmF0aW9uKCkgdG8gcHJvdmlkZQogICAgYW4gYWRkaXRpb25hbCBvcHRpb24gZm9yIGNvbmZpZ3VyaW5nIHRoZSBHUElPIGZyb20gdGhlCiAgICAiQ0ZHXzR4eF9HUElPX1RBQkxFIi4KCiAgICBBY2NvcmRpbmcgdG8gdGhlIDQ0MEVQeCBVc2VyJ3MgTWFudWFsLCB3aGVuIGFuIGFsdGVybmF0ZSBvdXRwdXQgaXMgdXNlZCwKICAgIHRoZSB0aHJlZS1zdGF0ZSBjb250cm9sIGlzIGNvbmZpZ3VyZWQgaW4gb25lIG9mIHR3byB3YXlzLCBkZXBlbmRpbmcgb24KICAgIHRoZSBwYXJ0aWN1bGFyIG91dHB1dC4gIFRoZSBmaXJzdCBvcHRpb24gaXMgdG8gc2VsZWN0IHRoZSBjb3JyZXNwb25kaW5nCiAgICBhbHRlcm5hdGUgdGhyZWUtc3RhdGUgY29udHJvbCBpbiB0aGUgR1BJT3hfVFJTSC9MIHJlZ2lzdGVycy4gIFRoZSBzZWNvbmQKICAgIG9wdGlvbiBpcyB0byBzZWxlY3QgdGhlIEdQSU8gVGhyZWUtU3RhdGUgQ29udHJvbCBSZWdpc3RlciAoR1BJT3hfVENSKSBpbgogICAgdGhlIEdQSU94X1RSU0gvTCByZWdpc3RlcnMsIGFuZCBzZXQgdGhlIGNvcnJlc3BvbmRpbmcgYml0IGluIHRoZQogICAgR1BJT3hfVENSIHJlZ2lzdGVyIHRvIGVuYWJsZSB0aGUgb3V0cHV0LiAgRm9yIGV4YW1wbGUsIHRoZSBNYW51YWwKICAgIHNwZWNpZmllcyBjb25maWd1cmluZyB0aGUgR1BJTzAwIEFsdGVybmF0ZSAxIFNpZ25hbCAoUHJlQWRkcjA3KSB0byB1c2UKICAgIHRoZSBhbHRlcm5hdGUgdGhyZWUtc3RhdGUgY29udHJvbCAoZmlyc3Qgb3B0aW9uKSwgYW5kIHNwZWNpZmllcwogICAgY29uZmlndXJpbmcgdGhlIEdQSU8zMiBBbHRlcm5hdGUgMSBTaWduYWwgKFVTQjJPTTApIHdpdGggdGhlIG91dHB1dAogICAgZW5hYmxlZCBpbiB0aGUgR1BJT3hfVENSIHJlZ2lzdGVyIChzZWNvbmQgb3B0aW9uKS4KCiAgICBDdXJyZW50bHksIGdwaW9fc2V0X2NoaXBfY29uZmlndXJhdGlvbigpIGNvbmZpZ3VyZXMgYWxsIGFsdGVybmF0ZSBzaWduYWwKICAgIG91dHB1dHMgdG8gdXNlIHRoZSBmaXJzdCBvcHRpb24uICBUaGlzIHBhdGNoIGFsbG93IHRoZSBzZWNvbmQgb3B0aW9uIHRvCiAgICBiZSBzZWxlY3RlZCBieSBzZXR0aW5nIHRoZSAib3V0X3ZhbCIgZWxlbWVudCBpbiB0aGUgdGFibGUgZW50cnkgdG8KICAgICJHUElPX09VVF8xIi4gIFRoZSBmaXJzdCBvcHRpb24gaXMgdXNlZCB3aGVuIHRoZSAib3V0X3ZhbCIgZWxlbWVudCBpcwogICAgc2V0IHRvICJHUElPX09VVF8wIi4gIEJlY2F1c2UgIm91dF92YWwiIGlzIG5vdCBjdXJyZW50bHkgdXNlZCB3aGVuIGFuCiAgICBhbHRlcm5hdGUgc2lnbmFsIGlzIHNlbGVjdGVkLCBhbmQgYmVjYXVzZSBhbGwgY3VycmVudCBHUElPIHRhYmxlcyBzZXQKICAgICJvdXRfdmFsIiB0byAiR1BJT19PVVRfMCIgZm9yIGFsbCBhbHRlcm5hdGUgc2lnbmFscywgdGhpcyBwYXRjaCBzaG91bGQKICAgIG5vdCBjaGFuZ2UgYW55IGV4aXN0aW5nIGNvbmZpZ3VyYXRpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDE5NjQwNGNkYzFkZTQ5NWQ2MTgyZTg0NzMxYzIwMGZjNTc0OGRmMTUKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYXJsaW54LmNvbT4KRGF0ZToJU3VuIERlYyAzMCAwMTowMTo1NCAyMDA3IC0wNTAwCgogICAgUFBDNHh4OiBSZW1vdmUgc2RyYW0uaCBmcm9tIGJvYXJkL2x3bW9uNQoKICAgIFRoZXNlIGRlZmluaXRpb25zIGFyZSBub3cgaW4gImluY2x1ZGUvcHBjNDQwLmgiLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IGVmMTZmY2NmOTZlNTVlYWI5M2ZlMjVkMDNlYmUyZTliNTZlNTMzMmIKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYXJsaW54LmNvbT4KRGF0ZToJU3VuIERlYyAzMCAwMTowMTozMiAyMDA3IC0wNTAwCgogICAgUFBDNHh4OiBVc2UgY29tbW9uIGNvZGUgZm9yIExXTU9ONSBib2FyZCBTRFJBTSBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhbHNvIG1vZGlmaWVzIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBjb2RlIHNvIHRoYXQgdGhlIGRhdGEtZXllCiAgICBzZWFyY2ggaXMgbm93IGRvbmUgd2l0aCB3aXRoIHRoZSBjYWNoZSBkaXNhYmxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCA2MmNjMzk1MWFiNzIxMzVkOWMxMDFmMTg0NWI3OTRlNjNhMGZhMTg5CkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVN1biBEZWMgMzAgMDE6MDE6MTQgMjAwNyAtMDUwMAoKICAgIFBQQzR4eDogUmVtb3ZlIHNkcmFtLmggZnJvbSBib2FyZC9hbWNjL3NlcXVvaWEKCiAgICBUaGVzZSBkZWZpbml0aW9ucyBhcmUgbm93IGluICJpbmNsdWRlL3BwYzQ0MC5oIi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCBjZTM5MDJlMTc2NWJiZmIwN2NmNWJiZTk4YmU5YTY4ZTMwMDk5OTZhCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVN1biBEZWMgMzAgMDE6MDA6NTAgMjAwNyAtMDUwMAoKICAgIFBQQzR4eDogVXNlIGNvbW1vbiBjb2RlIGZvciBTZXF1b2lhIGJvYXJkIFNEUkFNIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCA4YjBjNWMxMjc2OTAzMzU3NTgxMDBjMjVlYWVjMmI4NGRiOTdjMTAxCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBEZWMgMjcgMTY6NTg6NDEgMjAwNyArMDEwMAoKICAgIG5ldDogQWRkIENPTkZJR19ORVRfRE9fTk9UX1RSWV9BTk9USEVSIG9wdGlvbgoKICAgIFdoZW4gQ09ORklHX05FVF9ET19OT1RfVFJZX0FOT1RIRVIgaXMgZGVmaW5lZCBVLUJvb3QncwogICAgbmV0d29ya2luZyBzdGFjayBkb2VzIG5vdCBhdXRvbWF0aWNhbGx5IHN3aXRjaCB0bwogICAgYW5vdGhlciBpbnRlcmZhY2UuIFRoaXMgcGF0Y2ggZG9lcyBub3QgdG91Y2ggdGhlIGRlZmF1bHQKICAgIGJlaGF2aW9yLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA1MDViZTg3YTY1ZTRmODdhZDdkOGRhMWQ1N2VhNGRjZDQ4N2Q3ZTMyCkF1dGhvcjogVXBha3VsIEJhcmtha2F0eSA8dXBha3VsQGdtYWlsLmNvbT4KRGF0ZToJVGh1IE5vdiAyOSAxMjoxNjoxMyAyMDA3ICswNTMwCgogICAgTkVUOiBQcm9wZXIgcmV0dXJuIGNvZGUgaGFuZGxpbmcgaW4gZXRoX2luaXQoKSBmdW5jdGlvbiBpbiBmaWxlIGV0aC5jCgogICAgVGhpcyBwYXRjaCBtb2RpZmllcyB0aGUgcmV0dXJuIGNvZGUgaGFuZGxpbmcgaW4gdGhlIGV0aF9pbml0KCkKICAgIGZ1bmN0aW9uLCB0byBiZSBjb21wYXRpYmxlIHdpdGggdGhlIGhhbmRsaW5nIG9mIHRoZSByZXR1cm4gY29kZXMgaW4KICAgIHRoZSBvdGhlciBuZXR3b3JrIHN0YWNrIGZpbGVzLiBJdCBub3cgcmV0dXJucyBhIDAgb24gU3VjY2VzcyBhbmQgLTEgb24KICAgIGVycm9yLgoKICAgIFNpZ25lZC1vZmYtYnk6IFVwYWt1bCBCYXJrYWthdHkgPHVwYWt1bC5iYXJrYWthdHlAY29uZXhhbnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA1Y2EyZDA5NTNlNDU3OWE4MDgxMDk2NmNjYTIwNzdlMjBkOTEyYzk3CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglNb24gTm92IDE5IDIwOjI3OjA0IDIwMDcgKzA5MDAKCiAgICBuZXQvZXRoLmM6IEZpeCBlbnZfZW5ldGFkZHIgc2lnbmVkIG92ZXJmbG93CgogICAgQXNzaWduaW5nIHRoZSBvdXRwdXQgb2Ygc2ltcGxlX3N0cnRvdWwoQ0I6QTk6ODc6NjU6NDM6MjEpIHRvIGBjaGFyJywgd2UgYXJlCiAgICB3YXJuZWQgYXMgYmVsb3c6CgogICAgICBVLUJvb3QgMS4yLjAgKEF1ZyAzMCAyMDA3IC0gMDg6Mjc6MzcpCgogICAgICBEUkFNOiAgMjU2IE1CCiAgICAgIEZsYXNoOiAzMiBNQgogICAgICBJbjogICAgc2VyaWFsCiAgICAgIE91dDogICBzZXJpYWwKICAgICAgRXJyOiAgIHNlcmlhbAogICAgICBOZXQ6ICAgTkVDLUNhbmR5CiAgICAgIFdhcm5pbmc6IE5FQy1DYW5keSBNQUMgYWRkcmVzc2VzIGRvbid0IG1hdGNoOgogICAgICBBZGRyZXNzIGluIFNST00gaXMJIDAwOjAwOjRDOjgwOjkyOkEyCiAgICAgIEFkZHJlc3MgaW4gZW52aXJvbm1lbnQgaXMgIEZGRkZGRkNCOkZGRkZGRkE5OkZGRkZGRjg3OjY1OjQzOjIxCgogICAgVGhpcyBwYXRjaCBjaGFuZ2VzIGVudl9lbmV0YWRkciB0eXBlIGZyb20gYGNoYXInIHRvIGB1bnNpZ25lZCBjaGFyJy4KCiAgICBDYzogTWFzYWtpIElzaGlrYXdhIDxpc2hpa2F3YS1tYXNha2lAY250Lm14ZS5uZXMubmVjLmNvLmpwPgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCBmODViNjA3MTA1NzFiMzcyOTNkMjIzMzkzM2I3NmUyYWEzZGI1NjM1CkF1dGhvcjogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IERlYyAyNyAxODoxOTowMiAyMDA3ICswMTAwCgogICAgSW50cm9kdWNlIG5ldyBldGhfcmVjZWl2ZSByb3V0aW5lCgogICAgVGhlIHB1cnBvc2Ugb2YgdGhpcyByb3V0aW5lIGlzIHJlY2VpdmluZyBhIHNpbmdsZSBuZXR3b3JrIGZyYW1lLCBvdXRzaWRlIG9mCiAgICBVLUJvb3QncyBOZXRMb29wKCkuIEV4cG9ydGluZyBpdCB0byBzdGFuZGFsb25lIHByb2dyYW1zIHRoYXQgcnVuIG9uIHRvcCBvZgogICAgVS1Cb290IHdpbGwgbGV0IHRoZW0gdXRpbGlzZSBuZXR3b3JraW5nIGZhY2lsaXRpZXMuIEZvciBzZW5kaW5nIGEgcmF3IGZyYW1lCiAgICB0aGUgYWxyZWFkeSBleGlzdGluZyBldGhfc2VuZCgpIGNhbiBiZSB1c2VkLgoKICAgIFRoZSBkaXJlY3QgY29uc3VtZXIgb2YgdGhpcyByb3V0aW5lIGlzIHRoZSBuZXdseSBpbnRyb2R1Y2VkIEFQSSBsYXllciBmb3IKICAgIGV4dGVybmFsIGFwcGxpY2F0aW9ucyAoZW5hYmxlZCB3aXRoIENPTkZJR19BUEkpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBQaW90ciBLcnVzenluc2tpIDxwcGtAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YmlnZ2VyYmFkZGVyYmVuQGdtYWlsLmNvbT4KCmNvbW1pdCA1Yzc0MDcxMWYwZWE1YjUxNDE0YjM0MWI3MTU5N2M0YTA3NTFiZTc0CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEphbiAzIDEwOjQxOjA0IDIwMDggLTA2MDAKCiAgICA4NjEwOiBNb3ZlIGluY2x1ZGUgb2YgY29uZmlnLmggZWFybGllci4KCiAgICBJbmNsdWRlIGNvbmZpZy5oIGVhcmxpZXIgaW4gdGhlIHNldCBvZiAjaW5jbHVkZXMKICAgIHNvIGFzIHRvIGF2b2lkIGEgaW5jaWRlbnRhbCBhbmQgZHVwbGljYXRlIGRlZmluaXRpb24KICAgIG9mIENGR19DQUNIRUxJTkVfU0laRS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIKCmNvbW1pdCA2MWQzNDIxYmRlYTA5MGJkMDM5OWIxNGMzZTEwYTNiZWJjYzhkNWZmCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIERlYyA0IDEwOjUzOjM0IDIwMDcgLTA2MDAKCiAgICBEb24ndCBzbGFtICN1bmRlZiBERUJVRyBpbiB0aGUgODY0MUhQQ04gY29uZmlnIGZpbGUuCgogICAgRG9pbmcgc28gcHJldmVudHMgaXQgZnJvbSBiZWluZyBpbmRpdmlkdWFsbHkgc2V0CiAgICBhbmQgdXNlZnVsIGluIG90aGVyIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZWE5ZjczOTVlYzM2MjU4NGU1ZTRmMjY2YmQwYjBjNDQyMmNmNmE0YwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBOb3YgMjggMTQ6NDc6MTggMjAwNyAtMDYwMAoKICAgIENvbnZlcnQgTVBDODY0MUhQQ04gdG8gdXNlIGxpYmZkdC4KCiAgICBBc3N1bWVzIHRoZSBwcmVzZW5jZSBvZiB0aGUgYWxpYXNlcyBub2RlIGluIHRoZSBEVFMgdG8KICAgIGxvY2F0ZSB0aGUgZXRoZXJuZXQsIHBjaSBhbmQgc2VyaWFsIG5vZGVzIGZvciBmaXh1cHMuCgogICAgVXNlIGNvbnNpc3RlbnQgZmR0YWRkciBhbmQgZmR0ZmlsZSBpbiBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjZTM3NDIyZDAwMDJlMTA0OTBlMjY4MzkyZTBjNGUzMDI4ZTUyY2VjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDIgMTQ6MDY6MjYgMjAwOCArMDEwMAoKICAgIGNmaV9mbGFzaDogRml4IGJ1ZyBpbiBmbGFzaF9pc3NldCgpIHRvIHVzZSBjb3JyZWN0IDMyYml0IGZ1bmN0aW9uCgogICAgVGhpcyBidWcgd2FzIGRldGVjdGVkIG9uIHRoZSBMV01PTjUgdGFyZ2V0IHdoaWNoIGhhcyAyIEludGVsIDE2Yml0IHdpZGUKICAgIGZsYXNoIGNoaXBzIGNvbm5lY3RlZCB0byBhIDMyYml0IHdpZGUgcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTE4MmU5ZjhlM2I5MmZjMzcyZDY0OTQzMjkzZGU1M2RhYTJlMjZjZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMiAxNTo1ODo0NCAyMDA4ICswMTAwCgogICAgRml4IGNvbXBpbGUgcHJvYmxlbSBpbnRyb2R1Y2VkIGJ5ICJjbGVhbnVwIiBjb21taXQgM2RmZDcwOGMKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDFhYWFiOWJmYWUwYjNiMmVlMmI0MThjMjJjNjUxMjgwZWU3YjY1YzcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDIgMTU6NTQ6NDUgMjAwOCArMDEwMAoKICAgIE1ha2Ugc2NyaXB0cyBhbmQgTWFrZWZpbGVzIFBPU0lYIGNvbXBsaWFudAoKICAgIFRoZSBiYXNoIGJ1aWx0aW4gdmVyc2lvbnMgb2YgdGhlICJ0ZXN0IiAocmVzcC4gIlsiKSBjb21tYW5kIGFsbG93CiAgICB1c2luZyAiPT0iIGZvciBzdHJpbmcgY29tcGFyaXNvbnMsIGJ1dCBQT1NJWCBjb21wYXRpYmxlIGltcGxlbWVuLQogICAgdGF0aW9ucyAobGlrZSAvdXNyL2Jpbi90ZXN0KSBpbnNpc3Qgb24gdXNpbmcgIj0iIG9ubHkuIE9uIHN1Y2ggc3lzdGVtcwogICAgeW91IHdpbGwgc2VlOgoKCSQgL3Vzci9iaW4vdGVzdCBhID09IGEgJiYgZWNobyBPSwoJL3Vzci9iaW4vdGVzdDogPT06IGJpbmFyeSBvcGVyYXRvciBleHBlY3RlZAoKICAgIFRoaXMgcGF0Y2ggZml4ZXMgTWFrZWZpbGVzIGFuZCBzY3JpcHRzIHRvIHVzZSBQT1NJWCBzdHlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDQ3Y2MyM2NiZTlhNjY5YzUxMDE4M2Y0ZjA0OWJmNzAzZWY0NDVmM2IKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMiAxNDowNTozNyAyMDA4ICswMTAwCgogICAgY2ZpX2ZsYXNoOiBGaXggYnVnIGluIGZsYXNoX2lzc2V0KCkgdG8gdXNlIGNvcnJlY3QgMzJiaXQgZnVuY3Rpb24KCiAgICBUaGlzIGJ1ZyB3YXMgZGV0ZWN0ZWQgb24gdGhlIExXTU9ONSB0YXJnZXQgd2hpY2ggaGFzIDIgSW50ZWwgMTZiaXQgd2lkZQogICAgZmxhc2ggY2hpcHMgY29ubmVjdGVkIHRvIGEgMzJiaXQgd2lkZSBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzZGZkNzA4Y2MxYjJhOTY2YWQ0NTRjYTllZDEyNWRkMTdkYmFkYmNjCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAyIDEyOjM4OjQzIDIwMDggKzAxMDAKCiAgICBNaW5vciBjb2Rpbmcgc3R5bGUgY2xlYW51cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGUxNzRhYzM0YWRmNWQ1NjUzZGYxMmJjM2NmMTljNTIwNjNhNzEyNjkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBEZWMgMjggMTc6Mjk6NTYgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQ29kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOGJhMTMyY2FiMThhZTQzOGI2ZGQ1YjAyMTRjMjhhOGZjMGQ5NzZlNQpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgRGVjIDI4IDE3OjA3OjI0IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IENvbXBsZXRlIFBNQzQ0MCBib2FyZCBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBicmluZ3MgdGhlIFBNQzQ0MCBib2FyZCBjb25maWd1cmF0aW9uIGZpbGUuCiAgICBGaW5hbGx5IGl0IGVuYWJsZXMgdGhlIFBNQzQ0MCBib2FyZCBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDQwNzg0M2E1ODI1NjBmYzUyMzEyOTk1NjFhYjNjMmI2YjZjZDMzOTcKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIERlYyAyOCAxNzowNzoxOCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBBZGQgRlBHQSBzdXBwb3J0IGFuZCBCU1AgY29tbWFuZHMgZm9yIFBNQzQ0MCBib2FyZHMKCiAgICBUaGlzIHBhdGNoIGFkZHMgc29tZSBCU1AgY29tbWFuZHMgYW5kIEZQR0EgYm9vdGluZyBzdXBwb3J0CiAgICBmb3IgZXNkJ3MgUE1DNDQwIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA3MmM1ZDUyYWVkY2NlMzVlNGI0ZmE1ODk1NjA1NTU0ODI1YjZhNzZmCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBEZWMgMjggMTc6MDc6MTQgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQWRkIGluaXRpYWwgZXNkIFBNQzQ0MCBib2FyZCBmaWxlcwoKICAgIFRoaXMgcGF0Y2ggYWRkcyB0aGUgZmlyc3QgZmlsZXMgZm9yIHRoZSBuZXcgZXNkIFBNQzQ0MCBib2FyZHMuCiAgICBUaGUgbmV4dCB0d28gcGF0Y2hlcyB3aWxsIGNvbXBsZXRlIHRoZSBQTUM0NDAgYm9hcmQgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBmNmUwZjFmNjE4OTZjZTc3MjliYTFiY2VhMmZmYmQxMzhkMzk0N2Y1CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBEZWMgMjggMTc6MTA6MzYgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQWRkIEVFUFJPTSB3cml0ZSBwcm90ZWN0aW9uIGZvciBQTFU0MDUgYm9hcmRzICsgbWlzYy4gdXBkYXRlcwoKICAgIC0gYWRkIEVFUFJPTSB3cml0ZSBwcm90ZWN0aW9uIGZvciBlc2QgUExVNDA1IGJvYXJkcy4KICAgIC0gaW5pdGlhbGl6ZSBOQU5EIEdQSU9zCiAgICAtIHVzZSBjb3JyZWN0IGlvIGFjY2Vzc29ycwogICAgLSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgNzc2NjBjNGI1OTA1NWQ2MjFkMmE4NTk1YmQ0YzE4YmIyNzcyNjhmYwpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgRGVjIDI4IDE3OjEwOjQ0IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IHVzZSBjb3JyZWN0IGlvIGFjY2Vzc29ycyBmb3IgZXNkJ3MgTENEIGNvZGUKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGVzZCdzIExDRCBkZWN0ZWN0aW9uIGNvZGUgdG8gd29yayBjb3JyZWN0bHkgd2l0aAogICAgbmV3ZXIgZ2NjIHZlcnNpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGI1NmJkMGZjZmMxYzczZGI3MjJlMzQ2MmM4YTliZjYwN2JhNzc3NWUKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIERlYyAyOCAxNzoxMDo0MiAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBNYWludGVuYW5jZSBwYXRjaCBmb3IgVk9INDA1IGJvYXJkcwoKICAgIC0gYWRkIEVFUFJPTSB3cml0ZSBwcm90ZWN0aW9uCiAgICAtIGluaXRpYWxpemUgTkFORCBHUElPcwogICAgLSB1c2UgY29ycmVjdCBpbyBhY2Nlc3NvcnMKICAgIC0gc2xvdyBkb3duIEkyQyBjbG9jayB0byAxMDBrSHoKICAgIC0gZW5hYmxlIGV4dC4gSTJDIGJ1cwogICAgLSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgYzA1NTY5MDY2ZGJjYmEzZmRmMzZkNGQxOTQzZGYyNjVkYzMxNmE4NgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIERlYyAyOCAxNjowODowOCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBFbmFibGUgNDA1RVAgUENJIGFyYml0ZXIgcGVyIGRlZmF1bHQgb24gYWxsIGJvYXJkcwoKICAgIEluIGFuIGF0dG1lbXQgdG8gY2xlYW4gdXAgdGhlIDR4eCBzdGFydC5TIGZpbGUsIEkgcmVtb3ZlZCB0aGUgZW5hYmxpbmcKICAgIG9mIHRoZSBpbnRlcm5hbCA0MDVFUCBQQ0kgYXJiaXRlci4gVGhpcyBpcyBuZWVkZWQgZm9yIG11bHRpcGxlIG90aGVyCiAgICA0MDVFUCBwbGF0Zm9ybXMsIGxpa2UgbW9zdCBvZiB0aGUgZXNkIDQwNUVQLiBOb3cgdGhlIGludGVybmFsIFBDSQogICAgYXJiaXRlciBpcyBlbmFibGVkIGFnYWluIHBlciBkZWZhdWx0IGFzIGl0IGhhcyBiZWVuIGJlZm9yZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CiAgICBBY2tlZC1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgYmVjOTI2NDYxNmZiNzgyNzNhMWQ5M2U4N2ZmNGIwYjY3YzdiZWMxYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIERlYyAyOCAxNTo1Mzo0NiAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBGaXggYnVnIGluIGNwdV9pbml0LmMgKDQwNUVQIGluc3RlYWQgb2YgNDUwRVApCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgogICAgQWNrZWQtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGZiODNhNjVjNjBhYjVjYTEyMzU4Yjc1ZjEyNTdlNWVlZTZjZGJmNzkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBEZWMgMjggMDY6MDY6MDQgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogRml4IGNvbXBpbGF0aW9uIHByb2JsZW0gb2Yga2lsYXVlYS9oYWxlYWthbGEgbmFuZCBib290aW5nIHRhcmdldAoKICAgIFVzZSBjb3JyZWN0IGxpbmsgdG8gbmFuZF9lY2Mgbm93IGxvY2F0ZWQgaW4gZHJpdmVycy9tdGQvbmFuZC8gZm9yIHRoZQogICAgcGxhdGZvcm1zIG1lbnRpb25lZCBhYm92ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYjU2OGZkMjU1NzQxODFhM2IxMmFlM2Q2NmIyOTEzOTAzNDQyY2I4MwpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglUaHUgRGVjIDI3IDE3OjAzOjQ2IDIwMDcgKzAxMDAKCiAgICBSZW1vdmUgQ1BDSTQ0MCBib2FyZAoKICAgIFRoaXMgYm9hcmQgbmV2ZXIgbGVmdCBwcm90b3R5cGluZyBzdGF0ZSBhbmQgaXQKICAgIGJlY2FtZSBhIG1pbGxzdG9uZSByb3VuZCBteSBuZWNrLiBTbyByZW1vdmUgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgYzU5MWRmZmUwY2JhY2Q4OTZjY2JhZDA2MDExZmU2ZDZhZmEwODBkYQpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglUaHUgRGVjIDI3IDExOjI4OjUxIDIwMDcgLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgS29yYXQgUFBDNDQwRVB4IGJvYXJkCgogICAgVGhlc2UgcGF0Y2hlcyBhZGQgc3VwcG9ydCBmb3IgdGhlIFBQQzQ0MEVQeC1iYXNlZCAiS29yYXQiIGJvYXJkIHRvCiAgICBVLUJvb3QuICBUaGV5IGFyZSBiYXNlZCBwcmltYXJpbHkgb24gc3VwcG9ydCBmb3IgdGhlIFNlcXVvaWEgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgODdkYzA5NjgyOWU2YTYzNjNmNGZkZDczNjUzYjAwOTNhODVhZGJlMApBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglTYXQgRGVjIDIyIDE1OjE2OjI1IDIwMDcgLTA1MDAKCiAgICBBZGQgY29uZmlndXJhdGlvbiBmaWxlIGZvciBLb3JhdCBib2FyZAoKICAgIFRoaXMgcGF0Y2ggc3VwcGxpZXMgdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgdGhlIEtvcmF0IFBQQzQ0MEVQeC0KICAgIHByb2Nlc3NvciBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCA4ZWI1MmQ1ZDk4MmI3NjRiMzljODhkOWQxMDY0ZDU2YzUzOTdiZmE1CkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVNhdCBEZWMgMjIgMTU6MTY6MTEgMjAwNyAtMDUwMAoKICAgIEFkZCBkZW5hbGlfZGF0YV9leWUubyBhbmQgZGVuYWxpX3NwZF9kZHIyLm8gdG8gUFBDNHh4IE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgYWJhMTk2MDRkODQ4YjI4MzhjZmI5ZWJlODE4OTA5ZTZhMjE2MDU4ZQpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglUaHUgRGVjIDI3IDEwOjU0OjQ4IDIwMDcgLTA1MDAKCiAgICBBZGQgNDQwRVB4IEREUjIgU1BEIERJTU0gc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBTUEQgRERSMiBzdXBwb3J0IGZvciB0aGUgNDQwRVB4ICgiRGVuYWxpIikgU0RSQU0KICAgIGNvbnRyb2xsZXIuICBJdCBzaG91bGQgYWxzbyB3b3JrIG9uIHRoZSA0NDBHUnguICBJdCBpcyBiYXNlZCBvbiB0aGUgRERSMgogICAgU1BEIGNvZGUgZm9yIHRoZSA0NDBFUC80NDBFUHgsIGJ1dCBtYWtlcyBubyBwcm92aXNpb24gZm9yIEREUjEgc3VwcG9ydC4KCiAgICBUaGlzIGNvZGUgaGFzIGJlZW4gdGVzdGVkIG9uIHByb3RvdHlwZSBLb3JhdCBib2FyZHMgd2l0aCB0aHJlZSBLaW5nc3RvbgogICAgRElNTVM6IDUxMiBNaUIgRUNDIChvbmUgcmFuayksIDUxMiBNaUIgbm9uLUVDQyAob25lIHJhbmspIGFuZCAxIEdpQiBFQ0MKICAgICh0d28gcmFua3MpLiAgVGhlIEtvcmF0IGJvYXJkIGhhcyBhIHNpbmdsZSBESU1NIHNvY2tldCwgYnV0IHN1cHBvcnQgaGFzCiAgICBiZWVuIHByb3ZpZGVkICh0aG91Z2ggbm90IHRlc3RlZCkgZm9yIGJvYXJkcyB3aXRoIHR3byBESU1NIHNvY2tldHMuCgogICAgU2lnbmVkLW9mZi1ieTogTGFycnkgSm9obnNvbiA8bHJqQGFjbS5vcmc+Cgpjb21taXQgOGEyNGE2OTYzMDAyY2I4NjdkNWE2YjcwZTM1NjBmMGIxNDY3ZjU1ZgpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglTYXQgRGVjIDIyIDE1OjE1OjMwIDIwMDcgLTA1MDAKCiAgICBDb3B5IDQ0MEVQeC9HUnggU0RSQU0gZGF0YS1leWUgc2VhcmNoIHRvIGNvbW1vbiBkaXJlY3RvcnkKCiAgICBUaGlzIHBhdGNoIGNyZWF0ZXMgYSBub24tYm9hcmQtc3BlY2lmaWMgZmlsZSBmb3IgcGVyZm9ybWluZyB0aGUgU0RSQU0KICAgIGRhdGEtZXllIHNlYXJjaC4gIEl0IGFsc28gYWRkcyBFQ0MgZXJyb3IgY2hlY2tpbmcgdG8gdGhlIHRlc3Qgb2YgdmFsaWQKICAgIGRhdGEgb24gcmVhZGJhY2sgd2hlbiBFQ0MgaXMgZW5hYmxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCBjNDZmNTMzMzNiMjJiMWY5MDk4Njc2YmVhODg4NGZjN2RiODIwY2YzCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVNhdCBEZWMgMjIgMTU6MTU6MTMgMjAwNyAtMDUwMAoKICAgIEFkZCBkZWZpbml0aW9ucyBmb3IgNDQwRVB4L0dSeCBTRFJBTSBjb250cm9sbGVyIHRvIHBwYzQ0MC5oCgogICAgVGhpcyBwYXRjaCBhZGRzIHRoZSBEZW5hbGkgU0RSQU0gY29udHJvbGxlciBkZWZpbml0aW9ucyB0byAicHBjNDQwLmgiLgogICAgSXQgYWxzbyBmaXhlcyB0d28gdHlwb3MgaW4gdGhlIGRlZmluaXRpb25zLCBzbyB0aGUgYm9hcmQtc3BlY2lmaWMKICAgICJzZHJhbS5oIiBmaWxlcyBjb250YWluaW5nIHRoZXNlIGRlZmluaXRpb25zIGFyZSBhbHNvIGZpeGVkIHRvIGF2b2lkCiAgICBjb21waWxlciB3YXJuaW5ncy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCBjMzQ4NTc4YmY2MTJkMGM1NmQ4ZDM3NmQyM2NhZTE2ZGVmYmQ4NmFmCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVRodSBEZWMgMjcgMTA6NTA6NTUgMjAwNyAtMDUwMAoKICAgIEFkZCBFdGhlcm5ldCAxMDAwQkFTRS1YIHN1cHBvcnQgZm9yIFBQQzR4eAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBzd2l0Y2g6ICJDT05GSUdfUEhZX0RZTkFNSUNfQU5FRyIuICBXaGVuIHRoaXMgc3ltYm9sCiAgICBpcyBkZWZpbmVkLCB0aGUgUEhZIHdpbGwgYWR2ZXJ0aXNlIGl0J3MgY2FwYWJpbGl0aWVzIGZvciBhdXRvbmVnb3RpYXRpb24KICAgIGJhc2VkIG9uIHRoZSBjYXBhYmlsaXRpZXMgc2hvd24gaW4gdGhlIFBIWSdzIHN0YXR1cyByZWdpc3RlcnMsIGluY2x1ZGluZwogICAgMTAwMEJBU0UtWC4gIFdoZW4gIkNPTkZJR19QSFlfRFlOQU1JQ19BTkVHIiBpcyBub3QgZGVmaW5lZCwgdGhlIFBIWSB3aWxsCiAgICBhZHZlcnRpc2UgaGFyZC1jb2RlZCBjYXBhYmlsaXRpZXMsIGFzIGJlZm9yZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCA5ZTJjMzQ3MTUxZGI1YWU4YWNmNWYxOGI5OTQ5M2NkNTNlNjYzN2UzCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVRodSBEZWMgMjcgMDk6NTI6MTcgMjAwNyAtMDUwMAoKICAgIEFkZCBkcml2ZXIgZm9yIE5hdGlvbmFsIFNlbWljb25kdWN0b3IgTE03MyB0ZW1wZXJhdHVyZSBzZW5zb3IKCiAgICBUaGlzIGRyaXZlciBpcyBiYXNlZCBvbiB0aGUgZHJpdmVyIGZvciB0aGUgTE03NS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCAxMjYxODI3ODY4OGVhOWIzZDc2NTM2OTYwYTVhZDJlMzc5MGZhYzQwCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVNhdCBEZWMgMjIgMTU6MTQ6MDAgMjAwNyAtMDUwMAoKICAgIEFkZCBkcml2ZXIgZm9yIFNUTWljcm9lbGVjdHJvbmljcyBNNDFUNjAgUlRDCgogICAgVGhpcyBkcml2ZXIgaXMgYmFzZWQgb24gdGhlIGRyaXZlciBmb3IgdGhlIE00MVQxMS4JSW4gdGhlIGludGVuZGVkCiAgICBhcHBsaWNhdGlvbiwgdGhlIFJUQyB3aWxsIGJlIHBvd2VyZWQgYnkgYSBsYXJnZSBjYXBhY2l0b3IsIHJhdGhlciB0aGFuIGEKICAgIGJhdHRlcnkuICBUaGUgZHJpdmVyIHRoZXJlZm9yZSBjaGVja3MgdG8gc2VlIHdoZXRoZXIgdGhlIFJUQyBoYXMgbG9zdAogICAgcG93ZXIuICBUaGUgY2hpcCdzIE9VVCBiaXQgaXMgbm9ybWFsbHkgcmVzZXQgZnJvbSBpdHMgcG93ZXItdXAgc3RhdGUuICBJZgogICAgdGhlIE9VVCBiaXQgaXMgcmVhZCBhcyBzZXQsIG9yIGlmIHRoZSBkYXRlIGFuZCB0aW1lIGFyZSBub3QgdmFsaWQsIHRoZW4gdGhlCiAgICBSVEMgaXMgYXNzdW1lZCB0byBoYXZlIGxvc3QgcG93ZXIsIGFuZCBpdHMgZGF0ZSBhbmQgdGltZSBhcmUgcmVzZXQgdG8KICAgIDE5MDAtMDEtMDEgMDA6MDA6MDAuCgogICAgU3VwcG9ydCBmb3IgYWRqdXN0aW5nIHRoZSBzcGVlZCBvZiB0aGUgY2xvY2sgdG8gaW1wcm92ZSBhY2N1cmFjeSBpcwogICAgcHJvdmlkZWQgdGhyb3VnaCBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCBkMzQ3MTE3M2UxNGI3NTQ0YmI2MDMzOWVkYThkM2QzOTA2Njk0YjBhCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVNhdCBEZWMgMjIgMTU6MzQ6MzkgMjAwNyAtMDUwMAoKICAgIFVzZSBvdXRfYmUzMigpIGFuZCBmcmllbmRzIHRvIGFjY2VzcyBtZW1vcnktbWFwcGVkIHJlZ2lzdGVycyBpbiBzZXF1b2lhLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCBjNjhmNTlmZTNlYzE2NzY5ZjgyYjVmY2E3NDIxOTgzYzMzNmQzYWFjCkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVNhdCBEZWMgMjIgMTU6MzQ6MjAgMjAwNyAtMDUwMAoKICAgIFVzZSBkZWZpbml0aW9ucyBmcm9tICJhc20tcHBjL21tdS5oIiBpbiBpbml0LlMgZm9yIFNlcXVvaWEKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCAwZDljZGVhYzFkM2ZhOGQ2MmVkN2Q4ODNhY2M5NTBjMzY0ZjViZGE4CkF1dGhvcjogTGFycnkgSm9obnNvbiA8bHJqQGFybGlueC5jb20+CkRhdGU6CVNhdCBEZWMgMjIgMTU6MjM6NTAgMjAwNyAtMDUwMAoKICAgIENvc21ldGljIGNoYW5nZXMgdG8gRUNDIFBPU1QgZm9yIEFNQ0MgRGVuYWxpIGNvcmUKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KCmNvbW1pdCAyZTU4M2Q2YzgxMDM0ZjgwYTI2N2I4OWZhNTU0OThhZTA2M2NjZWYxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgRGVjIDI2IDIwOjIwOjE5IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBjb21waWxhdGlvbiBwcm9ibGVtIGluIDQwNSBjYWNoZSBQT1NUIHRlc3QKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDJkNTVlYTBiZGUwNmU0N2Q1YTNiNDliMGQ5MTAwMmFjZDhlNTcwOApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IERlYyAyMiAxMjoyMDowOSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBNb3ZlIHZpcnR1YWwgYWRkcmVzcyBvZiBQT1NUIGNhY2hlIHRlc3QgdG8gYmlnZ2VyIGFkZHJlc3MKCiAgICBPbiBTZXF1b2lhICYgTFdNT041IHRoZSB2aXJ0dWFsIGFkZHJlc3Mgb2YgdGhlIFBPU1QgY2FjaGUgdGVzdCBpcyBub3cKICAgIG1vdmVkIHRvIGEgYmlnZ2VyIGFkZHJlc3MuIFRoaXMgZW5hYmxlcyB1c2FnZSBvZiBtb3JlIG1lbW9yeSBvbiB0aG9zZQogICAgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkOTE3MjIxMDJjZjYzZjc3YTAxNDhlZDNmM2Q1NGEyNmQ4NzU3NWU5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgRGVjIDIyIDEyOjE4OjI2IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBwcm9ibGVtIGluIDQ0eCBjYWNoZSBQT1NUIHJvdXRpbmUKCiAgICBBcyByZXBvdGVkIGJ5IExhcnJ5IEpvaG5zb24sIHJ1bm5pbmcgImRpYWcgcnVuIGNhY2hlIiBjYXVzZWQgYSBjcmFzaAogICAgaW4gVS1Cb290LiBUaGlzIHByb2JsZW0gd2FzIGludHJvZHVjZWQgYnkgYSBwYXRjaCB0aGF0IHJlbW92ZWQgdGhlCiAgICBUTEIgZW50cnkgZm9yIHRoZSBjYWNoZSB0ZXN0IGFmdGVyIHRoZSB0ZXN0IGhhcyBjb21wbGV0ZWQuIFNpbmNlIHRoaXMKICAgIFRMQiB3YXMgb25seSBzZXR1cCBvbmNlLCBhIDJuZCBhdHRlbXB0IHRvIHJ1biB0aGlzIGNhY2hlIHRlc3QKICAgIGZhaWxlZCB3aXRoIGEgY3Jhc2guIE5vdyB0aGlzIFRMQiBlbnRyeSBpcyBjcmVhdGVkIGV2ZXJ5IHRpbWUgdGhlCiAgICByb3V0aW5lIGlzIGNhbGxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYjAyNjViNTc2YmI4ZmE5NDY1Zjk5ZTk5YzMyMzc2OGI1NjJmYWRjMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIERlYyAyMSAwNzo1MToyOSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBVcGRhdGUgTWFrYWx1IGZkdCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGJmODMyNGU0YTUwNzU4ZGFmZjhjZGRkMDRjNmEyZmY4ZWQ3NzViZWEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBEZWMgMTkgMDk6MDU6NDAgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQWRkIGZkdCBzdXBwb3J0IHRvIEFNQ0MgS2F0bWFpIGV2YWwgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzI4YTM0MDM5MmE1ZGY5YWFmMDA3OTJiZTk4OWRmNzNlNzUwODU5ZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIERlYyAxOCAwODo0NDo1MSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBmZHQ6IENsZWFudXAgc2V0dXAgb2YgY3B1IG5vZGUgc2V0dXAKCiAgICBOb3cgdGhlIGNwdSBub2RlIHNldHVwICgidGltZWJhc2UtZnJlcXVlbmN5IiBhbmQgImNsb2NrLWZyZXF1ZW5jeSIpIGlzCiAgICB3aXRob3V0IHVzaW5nIHRoZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBjcHUgbm9kZS4gVGhpcyBtYWtlcyBpdCBwb3NzaWJsZQogICAgdG8gdXNlIHRoaXMgVS1Cb290IHZlcnNpb24gd2l0aCBib3RoIHZlcnNpb25zIG9mIGNwdS1ub2RlIG5hbWluZwogICAgImNwdUAwIiBhbmQgdGhlIGZvcm1lciAiUG93ZXJQQyw0NDBFUHhAMCIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc4MTJiYzRhMmUyNDM2ZWJiYzBjZTViNGU5OWMxZGZjMmU3N2ViNWIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBEZWMgMTcgMTc6MjY6MjEgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogRml4IGx3bW9uNSBjb21waWxhdGlvbiBwcm9ibGVtCgogICAgTm93IHRoYXQgdGhlIDQ0MEVQeCBFQ0MgdGVzdCBpcyBub3QgYm9hcmQgc3BlY2lmaWMgYW55bW9yZQogICAgcmVtb3ZlIHRoaXMgTWFrZWZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDQyZWQzM2ZmZTEzNWY2MTg2ODBmOWQ2ZTk3MTJlYjM1YTg1YmNiNjIKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0c2NoaW5AdC1vbmxpbmUuZGU+CkRhdGU6CVdlZCBEZWMgNSAxNzo0MzoyMCAyMDA3ICswMTAwCgogICAgRml4IHBwYzR4eCBjbGVhcl9ic3MoKSBjb2RlCgogICAgcHBjNHh4IGNsZWFyX2JzcygpIGZhaWxzIGlmIEJTUyBzZWdtZW50IHNpemUgaXMgbm90CiAgICBkaXZpc2libGUgYnkgNCB3aXRob3V0IHJlbWFpbmRlci4gVGhpcyBwYXRjaCBwcm92aWRlcwogICAgZml4IGZvciB0aGlzIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogQW5hdG9saWogR3VzdHNjaGluIDxhZ3VzdEBkZW54LmRlPgoKY29tbWl0IDg1ZGMyYTdmODJkMTFlMTdmMGNhMmE0NDgxMThhZWQ3ZjdhNGI4NWQKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzZ2lnZXJAZ214LmNoPgpEYXRlOglGcmkgTm92IDMwIDE4OjM1OjExIDIwMDcgKzAxMDAKCiAgICBQUEM0eHg6IE1pbmltYWwgY2hhbmdlcyB0byBhZGQgdnhXb3JrcyBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCAwNTI0NDBiMDIyY2E4OTgxZDM5YjZmOGMxMGQxYWE2MzI2ZjQ3NDgwCkF1dGhvcjogTWFya3VzIEtsb3R6YsO8Y2hlciA8bWtAZGVueC5kZT4KRGF0ZToJRnJpIE5vdiAyMyAxMzowOToxOCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBBZGQgQ09ORklHX0JPT1RQX1NVQk5FVE1BU0sgdG8gU2VxdW9pYSBib2FyZCBjb25maWcKCiAgICBXaGVuIHVzaW5nIGRoY3AvYm9vdHAgdGhlICJuZXRtYXNrIiBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBub3QKICAgIHNldCBiZWNhdXNlIENPTkZJR19CT09UUF9TVUJORVRNQVNLIGlzIG5vdCBkZWZpbmVkLiBCdXQgdXN1YWxseSB0aGlzIGlzCiAgICBkZXNpcmVhYmxlLCBzbyB0aGUgZm9sbG93aW5nIHBhdGNoIGFkZHMgdGhpcyB0aGlzIG9wdGlvbiB0byB0aGUgYm9hcmQKICAgIGNvbmZpZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGE3MjRhOWI0MGM3ZmJlYjZhZGUxOTNjYTUyMzIxYjQ0MWVhZWNiNGUKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYXJsaW54LmNvbT4KRGF0ZToJU2F0IE9jdCAyNyAxMjo0ODoxNSAyMDA3IC0wNDAwCgogICAgRml4L2VuaGFuY2UgRUNDIFBPU1QgZm9yIDQ0MEVQeC9HUngKCiAgICBUaGlzIHBhdGNoIGFsbG93cyB0aGUgRUNDIFBPU1QgdG8gYmUgdXNlZCBmb3IgZGlmZmVyZW50IGJvYXJkcyB3aXRoIHRoZQogICAgUFBDNDQwIERlbmFsaSBTRFJBTSBjb250cm9sbGVyLiAgTW9kaWZpY2F0aW9ucyBpbmNsdWRlIHNraXBwaW5nIHRoZSB0ZXN0CiAgICBpZiBFQ0MgaXMgbm90IGVuYWJsZWQgKGFzIGZvciBub24tRUNDIERJTU1zKSBhbmQgYWRkaW5nIHN5bmNocm9uaXphdGlvbgogICAgdG8gcHJldmVudCB0aW1pbmcgZXJyb3JzLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IDQ1NGE2Y2Y4ZDQ5OGY3MGQyYjNlMThmMDc4Mzc2MDNlYjI0YjEyZDQKQXV0aG9yOiBMYXJyeSBKb2huc29uIDxscmpAYXJsaW54LmNvbT4KRGF0ZToJU2F0IE9jdCAyNyAxMjo0ODowNSAyMDA3IC0wNDAwCgogICAgUFBDNHh4OiBNb3ZlL3JlbmFtZSBFQ0MgUE9TVCBmb3IgNDQwRVB4L0dSeAoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgoKY29tbWl0IGMyOWQyZDM2ODAwNDZkNDMwMDIyYzU1ZTUwZmNiMjdmNTg2NjUxN2UKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIERlYyAxNCAxMToyMDozMyAyMDA3ICswMTAwCgogICAgcHBjNHh4OiB1c2UgY29ycmVjdCBpbyBhY2Nlc3NvcnMgZm9yIDR4eCBldGhlcm5ldCBQT1NUCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgYmE3OWZkZTU4YTQ4YzBhNmZmOGUyYTk2Y2FiYTk1MTU5NDE0MjIwMwpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgRGVjIDE0IDExOjE5OjU2IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IGZpeCBmbHVzaCArIGludmFsaWRhdGVfZGNhY2hlX3JhbmdlIGFyZ3VtZW50cwoKICAgIGZsdXNoICsgaW52YWxpZGF0ZV9kY2FjaGVfcmFuZ2UoKSBleHBlY3QgdGhlIHN0YXJ0IGFuZCBzdG9wKzEgYWRkcmVzcy4KICAgIFNvIHRoZSBzdG9wIGFkZHJlc3MgaXMgdGhlIGZpcnN0IGFkZHJlc3MgYmVoaW5kICghKSB0aGUgcmFuZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgODcxZTZjZTE4OGE3YzZiYzczMjFiY2Y4MzcyODU3MDM1ZDIwZjFjZApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIERlYyAxNCAwODo0MToyOSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBmZHQ6IHVzZSBmZHRfZml4dXBfZXRoZXJuZXQoKQoKICAgIEJ5IHVzaW5nIGFsaWFzZXMgaW4gdGhlIGR0cyBmaWxlLCB0aGUgZXRoZXJuZXQgbm9kZSBmaXh1cCBpcwogICAgbXVjaCBlYXNpZXIgd2l0aCB0aGUgcmVjZW50bHkgYWRkZWQgZnVuY3Rpb25zLgoKICAgIFBsZWFzZSBub3RlIHRoYXQgdGhlIGR0cyBmaWxlIG5lZWRzIHRoZSBhbGlhc2VzIGZvciB0aGlzIHRvIHdvcmsuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDEzNjI4ODg0N2UzYjA0ZjJmZjM1N2EwNjdhZDQ1ZTEwYWZhMGEyNGMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBEZWMgMTMgMTQ6NTI6NTMgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQnJpbmcgNHh4IGZkdCBzdXBwb3J0IHVwLXRvLWRhdGUKCiAgICBUaGlzIHBhdGNoIHVwZGF0ZSB0aGUgNHh4IGZkdCBzdXBwb3J0LiBJdCBlbmFibGVkIGZkdCBib290aW5nCiAgICBvbiB0aGUgQU1DQyBLaWxhdWVhIGFuZCBTZXF1b2lhIGZvciBub3cuIE1vcmUgY2FuIGZvbGxvdyBsYXRlcgogICAgcXVpdGUgZWFzaWx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwZGM4MGUyNzU5ZmJhODU5Y2NjNGNkYWRjNjMzNTc3Y2EyOTcxZjNlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgRGVjIDI3IDA3OjUwOjU0IDIwMDcgKzAxMDAKCiAgICBjZmlfZmxhc2g6IEFkZCBtaXNzaW5nIGNoZWNrIGZvciBlcmFzZWQgZGVzdCB0byBmbGFzaF93cml0ZV9jZmlidWZmZXIoKQoKICAgIFRoZSBjaGVjayBmb3IgYW4gc3VmZmljaWVudGx5IGVyYXNlZCBkZXN0aW5hdGlvbiB3YXMgbWlzc2luZyBpbiB0aGUKICAgIGJ1ZmZlcmVkIHdyaXRlIGZ1bmN0aW9uIG9mIHRoZSBjZmkgZmxhc2ggZHJpdmVyICh3aGVuCiAgICBDRkdfRkxBU0hfVVNFX0JVRkZFUl9XUklURSBpcyBkZWZpbmVkKS4gVGhpcyBwYXRjaCBhZGRzIHRoaXMgY2hlY2sgdG8gdGhhdAogICAgd3JpdGluZyB0byBzdWNoIGEgcmVnaW9uIHdpbGwgZmFpbCB3aXRoIHRoZSBjdXJyZWN0IGVycm9yIG1lc3NhZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDMzZWQ3M2JjMGUzOGQwZjJiNWMxODNkNDYyOWQ4ZjIwN2U1Yjk5OTQKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJTW9uIE5vdiAxMiAxMDo1NjoxNyAyMDA3ICswMTAwCgogICAgU29tZSBjb25maWd1cmF0aW9uIHVwZGF0ZXMgZm9yIHRoZSBUUU01MjAwIGJhc2VkIFRCNTIwMCBib2FyZDoKCiAgICAtIGVuYWJsZSBjb21tYW5kIGxpbmUgaGlzdG9yeQogICAgLSBpbmNyZWFzZSBtYWxsb2Mgc3BhY2UgKGJlY2F1c2Ugb2YgYmlnZ2VyIGZsYXNoIHNlY3RvcnMpCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgZTMxOGQ5ZTkwMjFhMGFmNzUwODE3MWY4NGVkMDlkMGU3OWYwMjg0ZQpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglUaHUgU2VwIDI3IDExOjEwOjA4IDIwMDcgKzAyMDAKCiAgICBUUU04eHg6IHVzZSB0aGUgQ0ZJIGZsYXNoIGRyaXZlciBvbiBhbGwgVFFNOHh4IGJvYXJkcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IDExZDllZWM0NzliNDcwZWFiOTI0MmFiOTM3ZmNhNzBhODc2ZDkzNzYKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJV2VkIFNlcCAyNiAxNzo1NTo1NiAyMDA3ICswMjAwCgogICAgVFFNODg1RDogYWRqdXN0IGZvciBkb3VibGVkIGZsYXNoIHNlY3RvciBzaXplICsgc29tZSBtaW5vciBmaXhlcwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IDIyZDFhNTZjYmZiMGJmZjM0ZjQ3N2I0ZGI2YTU1ZDA3NmQ4MjliODMKQXV0aG9yOiBKZW5zIEdlaHJsZWluIDxqZW5zLmdlaHJsZWluQHRxcy5kZT4KRGF0ZToJV2VkIFNlcCAyNiAxNzo1NTo1NCAyMDA3ICswMjAwCgogICAgVFFNODg1RDogRXhjaGFuZ2VkIFNEUkFNIHRpbWluZyBieSBhIG1vcmUgcmVsYXhlZCB0aW1pbmcuCgogICAgQ0FTLUxhdGVuY3k9MiwgV3JpdGUgUmVjb3ZlcnkgVGltZSB0V1I9MgogICAgVGhlIG1heC4gc3VwcG9ydGVkIGJ1cyBmcmVxdWVuY3kgaXMgNjYgTUh6LiBUaGVyZWZvcmUsIGNoYW5nZWQKICAgIHRocmVzaG9sZCB0byBzd2l0Y2ggZnJvbSAxOjEgbW9kZSB0byAyOjEgZnJvbSA4MCBNSHogdG8gNjYgTUh6LgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IGI5ODhiOGNkNDQzOTg5YmU2NTE2MTg4OGVlYTAxMjdhZDAzZjg0NmYKQXV0aG9yOiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KRGF0ZToJV2VkIFNlcCAyNiAxNzo1NTo1NiAyMDA3ICswMjAwCgogICAgVFFNODg1RDogdXNlIGNhbGN1bGF0ZWQgY3B1Y2xrIGluc3RlYWQgb2YgbWVhc3VyaW5nIGl0CgogICAgT24gdGhlIFRRTTg4NUQgdGhlIG1lYXN1cmVtZW50IG9mIGNwdWNsayB3aXRoIHRoZSBQSVQgcmVmZXJlbmNlCiAgICB0aW1lciBpc3Qgbm90IG5lY2Vzc2FyeS4gU2luY2UgYWxsIG1vZHVsZSB2YXJpYW50cyB1c2UgdGhlIHNhbWUKICAgIGV4dGVybmFsIDEwIE1IeiBvc2NpbGxhdG9yLCB0aGUgY3B1Y2xrIG9ubHkgZGVwZW5kcyBvbiB0aGUgUExMCiAgICBjb25maWd1cmF0aW9uIC0gd2hpY2ggaXMgcmVhZGFibGUgYnkgc29mdHdhcmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgNDkyYzcwNDk4NjkzNDhkMzExNjhkZThkYWQ4OTY1MTMxNWU0NjhlMApBdXRob3I6IEplbnMgR2VocmxlaW4gPGplbnMuZ2VocmxlaW5AdHFzLmRlPgpEYXRlOglUaHUgU2VwIDI3IDE0OjU0OjQ2IDIwMDcgKzAyMDAKCiAgICBUUU04ODVEOiBmaXggU0RSQU0gcmVmcmVzaAoKICAgIEF0IDEzMyBNSHogdGhlIGN1cnJlbnQgU0RSQU0gcmVmcmVzaCByYXRlIGlzIHRvbyBmYXN0CiAgICAobWVhc3VyZWQgNCAqIDEuMTcgdXMpLgogICAgQ0ZHX01BTVJfUFRBIGNoYW5nZXMgZnJvbSAzOSB0byAxMjguIFRoaXMgcmVzdWx0CiAgICBpbiBhIHJlZnJlc2ggcmF0ZSBvZiA0ICogNy44IHVzIGF0IHRoZSBkZWZhdWx0IGNsb2NrCiAgICA2NiBNSHouIEF0IDEzMyBNSHogdGhlIHZhbHVlIHdpbGwgYmUgdGhlbiA0ICogMy44IHVzLgogICAgVGhpcyBpcyBhIGNvbXByb21pc2UgdW50aWwgYSBuZXcgbWV0aG9kIGlzIGZvdW5kIHRvCiAgICBhZGp1c3QgdGhlIHJlZnJlc2ggcmF0ZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCBkYWJhZDRiOWJjNDY5MDhlMzAxZjczY2U3NmIzOGIyMzYyNmE5NmU5CkF1dGhvcjogSmVucyBHZWhybGVpbiA8amVucy5nZWhybGVpbkB0cXMuZGU+CkRhdGU6CVRodSBTZXAgMjcgMTQ6NTQ6NDYgMjAwNyArMDIwMAoKICAgIFRRTTg2ME06IFN1cHBvcnQgZm9yIDEwY29sIFNEUkFNcywgbWF4LiAxMjggTWlCCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgNjFmYjE1YzUxNmZlZjU2MzFlMzA1ZjE5NzZkN2IzYTY3OTcyNTg1NgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBEZWMgMjcgMDE6NTI6NTAgMjAwNyArMDEwMAoKICAgIEZpeCBjb2Rpbmcgc3R5bGUgaXNzdWVzOyB1cGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNDY3YmNlZTExZmUyNmFkNDIyZjJkZTk3MWFhNzA4NjYwNzk4NzBmMgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglGcmkgRGVjIDE0IDE1OjM2OjE4IDIwMDcgKzAxMDAKCiAgICBjZmlfZmxhc2g6IEFkZCBtYW51ZmFjdHVyZXItc3BlY2lmaWMgZml4dXBzCgogICAgUnVuIGZpeHVwcyBiYXNlZCBvbiB0aGUgSkVERUMgbWFudWZhY3R1cmVyIElEIGluZGVwZW5kZW50IG9mIHRoZQogICAgY29tbWFuZCBzZXQgSUQuCgogICAgVGhpcyBjaGFuZ2VzIGN1cnJlbnQgYmVoYXZpb3VyOiBQcmV2aW91c2x5LCBnZW9tZXRyeSByZXZlcnNhbCBmb3IgQU1ECiAgICBjaGlwcyB3ZXJlIGRvbmUgYmFzZWQgb24gdGhlIGNvbW1hbmQgc2V0IElELCB3aGlsZSB0aGV5IGFyZSBub3cgZG9uZQogICAgYmFzZWQgb24gdGhlIEpFREVDIG1hbnVmYWN0dXJlciBhbmQgZGV2aWNlIElELgoKICAgIEFsc28gYWRkIGZpeHVwIGZvciB0b3AtYm9vdCBBdG1lbCBjaGlwcy4gQSBmaXh1cCBpcyBuZWVkZWQgZm9yCiAgICBBVDQ5QlY2NDE2KFQpIHRvbywgYnV0IHNpbmNlIHUtYm9vdCBjdXJyZW50bHkgb25seSByZWFkcyB0aGUgbG93IGJ5dGUKICAgIG9mIHRoZSBkZXZpY2UgSUQsIHRoZXJlJ3Mgbm8gd2F5IHRvIHRlbGwgaXQgYXBhcnQgZnJvbSBBVDQ5QlY2NDJELAogICAgd2hpY2ggc2hvdWxkIG5vdCBoYXZlIHRoaXMgZml4dXAuIFNpbmNlIEFUNDlCVjY0MkQgc3VwcG9ydCBpcwogICAgbmVjZXNzYXJ5IHRvIGdldCBBVE5HVzEwMCBib2FyZCBzdXBwb3J0IGludG8gbWFpbmxpbmUsIEkndmUgY29tbWVudGVkCiAgICBvdXQgdGhlIGZpeHVwIGZvciBub3cuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMGRkZjA2ZGRmNmI0YmQwNTdhZDRjNWYwZGZmZWE3ODcwYmEwNmEyYQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglGcmkgRGVjIDE0IDE1OjM2OjE3IDIwMDcgKzAxMDAKCiAgICBjZmlfZmxhc2g6IEFkZCBjbWRzZXQtc3BlY2lmaWMgaW5pdCBmdW5jdGlvbnMKCiAgICBNb3ZlIHRoaW5ncyBsaWtlIHJlYWRpbmcgSkVERUMgSURzIGFuZCBmaXhpbmcgdXAgZ2VvbWV0cnkgcmV2ZXJzYWwKICAgIGludG8gc2VwYXJhdGUgZnVuY3Rpb25zLiBUaGUgZ2VvbWV0cnkgcmV2ZXJzYWwgZml4dXAgaXMgbm93IHBlcmZvcm1lZAogICAgYnkgYWx0ZXJpbmcgdGhlIHFyeSBzdHJ1Y3R1cmUgZGlyZWN0bHksIHdoaWNoIG1ha2VzIHRoZSBzZWN0b3IgaW5pdAogICAgY29kZSBzbGlnaHRseSBjbGVhbmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGUyMzc0MWY0YTZkODA0NzUyMGVmMGQ0OTcxNzYyNzQ5YjM1ODdkMzIKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJRnJpIERlYyAxNCAxNTozNjoxNiAyMDA3ICswMTAwCgogICAgY2ZpX2ZsYXNoOiBSZWFkIHdob2xlIFFSWSBzdHJ1Y3R1cmUgaW4gb25lIGdvCgogICAgUmVhZCBvdXQgdGhlIHdob2xlIENGSSBTdGFuZGFyZCBRdWVyeSBzdHJ1Y3R1cmUgYWZ0ZXIgc3VjY2Vzc2Z1bCBjZmkKICAgIGlkZW50aWZpY2F0aW9uLiBUaGlzIGFsbG93cyBzdWJzZXF1ZW50IGNvZGUgdG8gYWNjZXNzIHRoaXMgaW5mb3JtYXRpb24KICAgIGRpcmVjdGx5IHdpdGhvdXQgaGF2aW5nIHRvIGdvIHRocm91Z2ggZmxhc2hfcmVhZF91Y2hhcigpIGFuZCBmcmllbmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGRmOWMyNWVhMDRiMzhhMGUwNWQ0ZjhjNzNjNWNjMTQ0Y2RhZmE3ZGIKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJTW9uIERlYyAxNyAxMTowMjo0NCAyMDA3ICswMTAwCgogICAgQVZSMzI6IEZpeCBsb2dpYyBpbnZlcnNpb24gaW4gZGlzYWJsZV9pbnRlcnJ1cHRzKCkKCiAgICBkaXNhYmxlX2ludGVycnVwdHMoKSBzaG91bGQgcmV0dXJuIG5vbnplcm8gaWYgaW50ZXJydXB0cyB3ZXJlCiAgICBfZW5hYmxlZF8gYmVmb3JlLCBub3QgZGlzYWJsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgYWNhYzQ3NTIxMmNiZWRiMTdiMzIxYTM2M2ExYzg3OGUyYjQ3YjM3ZgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglGcmkgRGVjIDE0IDE2OjUxOjIyIDIwMDcgKzAxMDAKCiAgICBBVlIzMjogRW5hYmxlIGludGVycnVwdHMgYXQgYm9vdHVwCgogICAgVGhlIHRpbWVyIGNvZGUgZGVwZW5kcyBvbiB0aGUgdGltZXIgaW50ZXJydXB0IHRvIGtlZXAgdHJhY2sgb2YgdGhlCiAgICB1cHBlciAzMiBiaXRzIG9mIHRoZSBjeWNsZSBjb3VudGVyLiBUaGlzIG9idmlvdXNseSBkb2Vzbid0IHdvcmsgd2hlbgogICAgaW50ZXJydXB0cyBhcmUgZGlzYWJsZWQgdGhlIHdob2xlIHRpbWUuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgOTU3MGJjZDg3ZjRkYjI1NTUxNGY0M2I2NzAxNzQ2YzQxMmY4ZmVmMApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgTm92IDE1IDEwOjAzOjQ1IDIwMDcgKzAxMDAKCiAgICBBVlIzMjogRml4IHdyb25nIHBpbiBzZXR1cCBmb3IgVVNBUlQzCgogICAgQXMgcmVwb3J0ZWQgYnkgR2VyaGFyZCBCZXJnaG9mZXI6CgogICAgaW4gImdwaW9fZW5hYmxlX3VzYXJ0MyIgdGhlIGNvcnJlY3QgcGlucyBmb3IgVVNBUlQgMyBhcmUgUEIxNyBhbmQgUEIxOAogICAgaW5zdGVhZCBvZiBQQjE4IGFuZCBQQjE5LgoKICAgIHdoaWNoIGlzIG9idmlvdXNseSBjb3JyZWN0LiBUaGVyZSdzIGN1cnJlbnRseSBubyBjb2RlIHRoYXQgdXNlcwogICAgVVNBUlQzLCBidXQgY3VzdG9tIGJvYXJkcyBtYXkgcnVuIGludG8gcHJvYmxlbXMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMDllYTBkZTAzZGNjM2VlN2FmMDQ1YjBiNTcyMjI3YmRhMmMxYzkxOApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgTm92IDEgMTI6NDQ6MjAgMjAwNyArMDEwMAoKICAgIFJFQURNRTogUmVtb3ZlIEFUU1RLMTAwMCBkYXVnaHRlcmJvYXJkIGxpc3QKCiAgICBBcyBub3RlZCBieSBLaW0gUGhpbGxpcHMsIHRoZXNlIGxpc3RzIHRlbmQgdG8gYmVjb21lIG91dCBvZiBkYXRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGM4MWNiYmFkMjFjYjBhZTk4M2UyZTc5NjIxMTIwMjIzNGNkYzhiZTIKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJVHVlIE9jdCAzMCAxNDo1NjozNiAyMDA3ICswMTAwCgogICAgQWRkIEFUU1RLMTAwWzIzNF0gdG8gTUFJTlRBSU5FUlMKCiAgICBBZGQgYWxsIHRoZSBBVFNUSzEwMDAgZGF1Z2h0ZXJib2FyZHMgdG8gTUFJTlRBSU5FUlMgYWxvbmcgd2l0aCB0aGVpcgogICAgIm1vdGhlciIuIEFsc28gdXBkYXRlIHRoZSBlbnRyeSBmb3IgQVRTVEsxMDAwIHRvIGJlIG5vdCBvbmx5IGFib3V0IHRoZQogICAgQVA3MDAwIENQVTsgaXQncyBpbnRlbmRlZCB0byBoYW5kbGUgYWxsIENQVXMgaW4gdGhlIEFUMzJBUCBmYW1pbHkuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNjRmZjIzNTdiMTcyNzIxMzgwMzU5MTgxM2RiYzc3OWM5MjRiZjc3MgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglNb24gT2N0IDI5IDEzOjAyOjU0IDIwMDcgKzAxMDAKCiAgICBBVlIzMjogQWRkIHN1cHBvcnQgZm9yIHRoZSBBVFNUSzEwMDQgYm9hcmQKCiAgICBBVFNUSzEwMDQgaXMgYSBkYXVnaHRlcmJvYXJkIGZvciBBVFNUSzEwMDAgd2l0aCB0aGUgQVQzMkFQNzAwMiBDUFUsCiAgICB3aGljaCBpcyBhIGRlcml2YXRpdmUgb2YgQVQzMkFQNzAwMC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA2Njc1NjhkYjE1N2YzNzRiODVhYmQ3ZTAzNTk2ZGRkMWYwYjI1NjgxCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CU1vbiBPY3QgMjkgMTM6MDI6NTQgMjAwNyArMDEwMAoKICAgIEFWUjMyOiBBZGQgc3VwcG9ydCBmb3IgdGhlIEFUU1RLMTAwMyBib2FyZAoKICAgIEFUU1RLMTAwMyBpcyBhIGRhdWdodGVyYm9hcmQgZm9yIEFUU1RLMTAwMCB3aXRoIHRoZSBBVDMyQVA3MDAxIENQVSwKICAgIHdoaWNoIGlzIGEgZGVyaXZhdGl2ZSBvZiBBVDMyQVA3MDAwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDVmZWU4NGE3OTRhNTFlYzgzMDU0OGNkYTQ4NWE3NzBlZmIwMThiOTIKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJTW9uIE9jdCAyOSAxMzoyMzozMyAyMDA3ICswMTAwCgogICAgQVZSMzI6IE1ha2Ugc29tZSBBVDMyQVA3MDB4IHBlcmlwaGVyYWxzIG9wdGlvbmFsCgogICAgQWRkIGEgY2hpcC1mZWF0dXJlcyBmaWxlIHByb3ZpZGluZyBkZWZpbml0aW9ucyBvZiB0aGUgZm9ybQoKICAgIEFUMzJBUDcwMHhfQ0hJUF9IQVNfPHBlcmlwaGVyYWw+CgogICAgdG8gaW5kaWNhdGUgdGhlIGF2YWlsYWJpbGl0eSBvZiB0aGUgZ2l2ZW4gcGVyaXBoZXJhbCBvbiB0aGUgY3VycmVudGx5CiAgICBzZWxlY3RlZCBjaGlwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDM2ZjI4ZjhhOTYwNWVlNWRjZmEzMzA0ODJjZmM2MjE3MTI2MWFmOTcKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJTW9uIE9jdCAyOSAxMzowOTo1NiAyMDA3ICswMTAwCgogICAgQVZSMzI6IFJlbmFtZSBhdDMyYXA3MDAwIC0+IGF0MzJhcDcwMHgKCiAgICBUaGUgU29DLXNwZWNpZmljIGNvZGUgZm9yIGFsbCB0aGUgQVQzMkFQNzAweCBDUFVzIGlzIHByYWN0aWNhbGx5CiAgICBpZGVudGljYWw7IHRoZSBvbmx5IGRpZmZlcmVuY2UgaXMgdGhhdCBzb21lIGNoaXBzIGhhdmUgbGVzcyBmZWF0dXJlcwogICAgdGhhbiBvdGhlcnMuIEJ5IGRvaW5nIHRoaXMgcmVuYW1lLCB3ZSBjYW4gYWRkIHN1cHBvcnQgZm9yIHRoZSBBUDcwMDAKICAgIGRlcml2YXRpdmVzIHNpbXBseSBieSBtYWtpbmcgc29tZSBmZWF0dXJlcyBjb25kaXRpb25hbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA0ZDVmYTk5YzczZjM1NGU3Y2Y5ODVlZmNmNDE3ZWE1NWNhMmY2YTVlCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CUZyaSBKdW4gMjkgMTg6MjI6MzQgMjAwNyArMDIwMAoKICAgIGF0bWVsX21jaTogU2hvdyBTUiB3aGVuIGJsb2NrIHJlYWQgZmFpbHMKCiAgICBTaG93IGNvbnRyb2xsZXIgc3RhdHVzIGFzIHdlbGwgYXMgY2FyZCBzdGF0dXMgd2hlbiBhbiBlcnJvciBvY2N1cnMKICAgIGR1cmluZyBibG9jayByZWFkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDg2OTdlNmExOWIxMGY1MTQ1MTFiNmE5Yzg2ZGU4OGJkMTA4YzRmOGQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBEZWMgMTMgMTQ6NTI6NTMgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQnJpbmcgNHh4IGZkdCBzdXBwb3J0IHVwLXRvLWRhdGUKCiAgICBUaGlzIHBhdGNoIHVwZGF0ZSB0aGUgNHh4IGZkdCBzdXBwb3J0LiBJdCBlbmFibGVkIGZkdCBib290aW5nCiAgICBvbiB0aGUgQU1DQyBLaWxhdWVhIGFuZCBTZXF1b2lhIGZvciBub3cuIE1vcmUgY2FuIGZvbGxvdyBsYXRlcgogICAgcXVpdGUgZWFzaWx5LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxMmQzMGFhNzk3NzljMmFhN2E5OThiYmFlNGMwNzVmODIyYTUzMDA0CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBEZWMgMTMgMTI6NTY6MzQgMjAwNyArMDEwMAoKICAgIGNmaV9mbGFzaDogVXNlIG1hcF9waHlzbWVtKCkgYW5kIHVubWFwX3BoeXNtZW0oKQoKICAgIFVzZSBtYXBfcGh5c21lbSgpIGFuZCB1bm1hcF9waHlzbWVtKCkgdG8gY29udmVydCBmcm9tIHBoeXNpY2FsIHRvCiAgICB2aXJ0dWFsIGFkZHJlc3Nlcy4gVGhpcyBnaXZlcyB0aGUgYXJjaCBhIGNoYW5jZSB0byBwcm92aWRlIGFuIHVuY2FjaGVkCiAgICBtYXBwaW5nIGZvciBmbGFzaCBhY2Nlc3Nlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA0ZDdkNjkzNmViMjlhZjdjY2EzMzA5Mzc4MDgzMTJhYTVmNjE0NTRkCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBEZWMgMTMgMTI6NTY6MzMgMjAwNyArMDEwMAoKICAgIEludHJvZHVjZSBtYXBfcGh5c21lbSgpIGFuZCB1bm1hcF9waHlzbWVtKCkKCiAgICBtYXBfcGh5c21lbSgpIHJldHVybnMgYSB2aXJ0dWFsIGFkZHJlc3Mgd2hpY2ggY2FuIGJlIHVzZWQgdG8gYWNjZXNzIGEKICAgIGdpdmVuIHBoeXNpY2FsIGFkZHJlc3Mgd2l0aG91dCBpbnZvbHZpbmcgdGhlIGNhY2hlLiB1bm1hcF9waHlzbWVtKCkKICAgIHNob3VsZCBiZSBjYWxsZWQgd2hlbiB0aGUgdmlydHVhbCBhZGRyZXNzIHJldHVybmVkIGJ5IG1hcF9waHlzbWVtKCkgaXMKICAgIG5vIGxvbmdlciBuZWVkZWQuCgogICAgVGhpcyBwYXRjaCBhZGRzIGEgc3R1YiBpbXBsZW1lbnRhdGlvbiB3aGljaCBzaW1wbHkgcmV0dXJucyB0aGUKICAgIHBoeXNpY2FsIGFkZHJlc3MgY2FzdCB0byBhIHVjaGFyICogZm9yIGFsbCBhcmNoaXRlY3R1cmVzIGV4Y2VwdCBBVlIzMiwKICAgIHdoaWNoIGNvbnZlcnRzIHRoZSBwaHlzaWNhbCBhZGRyZXNzIHRvIGFuIHVuY2FjaGVkIHZpcnR1YWwgbWFwcGluZy4KICAgIHVubWFwX3BoeXNtZW0oKSBpcyBhIG5vLW9wIG9uIGFsbCBhcmNoaXRlY3R1cmVzLCBidXQgaWYgYW55CiAgICBhcmNoaXRlY3R1cmUgbmVlZHMgdG8gZG8gc3VjaCBtYXBwaW5ncyB0aHJvdWdoIHRoZSBUTEIsIHRoaXMgaXMgdGhlCiAgICBob29rIHdoZXJlIHRob3NlIFRMQiBlbnRyaWVzIGNhbiBiZSBpbnZhbGlkYXRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBjZGJhZWZiNWY1ZjAzZTU0NDU1ZDA0MzlkY2Y2ZGJkOTdlYWQxZjlkCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVRodSBEZWMgMTMgMTI6NTY6MzIgMjAwNyArMDEwMAoKICAgIGNmaV9mbGFzaDogSW50cm9kdWNlIHJlYWQgYW5kIHdyaXRlIGFjY2Vzc29ycwoKICAgIEludHJvZHVjZSBmbGFzaF9yZWFkezgsMTYsMzIsNjQpIGFuZCBmbGFzaF93cml0ZXs4LDE2LDMyLDY0fSBhbmQgdXNlCiAgICB0aGVtIHRvIGFjY2VzcyB0aGUgZmxhc2ggbWVtb3J5LiBUaGlzIG1ha2VzIGl0IGNsZWFyZXIgd2hlbiB0aGUgZmxhc2gKICAgIGlzIGFjdHVhbGx5IGJlaW5nIGFjY2Vzc2VkOyBtZXJlbHkgZGVyZWZlcmVuY2luZyBhIHZvbGF0aWxlIHBvaW50ZXIKICAgIGxvb2tzIGp1c3QgbGlrZSBhbnkgb3RoZXIga2luZCBvZiBhY2Nlc3MuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgODEyNzExY2U2YjNhMzg2MTI1ZGNmMGQ2YTU5NTg4ZTQ2MWFiYmI4NwpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgRGVjIDEzIDEyOjU2OjMxIDIwMDcgKzAxMDAKCiAgICBJbXBsZW1lbnQgX19yYXdfe3JlYWQsd3JpdGV9W2J3bF0gb24gYWxsIGFyY2hpdGVjdHVyZXMKCiAgICBUaGlzIGFkZHMgaW1wbGVtZW50YXRpb25zIG9mIF9fcmF3X3JlYWRbYndsXSBhbmQgX19yYXdfd3JpdGVbYndsXSB0bwogICAgbTY4aywgcHBjLCBuaW9zIGFuZCBuaW9zMi4gVGhlIG02OGsgYW5kIHBwYyBpbXBsZW1lbnRhdGlvbnMgd2VyZSB0YWtlbgogICAgZnJvbSBMaW51eC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBiZTYwYTkwMjFjODJmYzVhZWNkNWIyYjFmYzk2ZjcwYTljODFiYmNkCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVNhdCBPY3QgNiAxODo1NTozNiAyMDA3ICswMjAwCgogICAgY2ZpX2ZsYXNoOiBSZW9yZGVyIGZ1bmN0aW9ucyBhbmQgZWxpbWluYXRlIGV4dHJhIHByb3RvdHlwZXMKCiAgICBSZW9yZGVyIHRoZSBmdW5jdGlvbnMgaW4gY2ZpX2ZsYXNoLmMgc28gdGhhdCBlYWNoIGZ1bmN0aW9uIG9ubHkgdXNlcwogICAgZnVuY3Rpb25zIHRoYXQgaGF2ZSBiZWVuIGRlZmluZWQgYmVmb3JlIGl0LiBUaGlzIGFsbG93cyB0aGUgc3RhdGljCiAgICBwcm90b3R5cGUgZGVjbGFyYXRpb25zIG5lYXIgdGhlIHRvcCB0byBiZSBlbGltaW5hdGVkIGFuZCBtaWdodCBhbGxvdwogICAgZ2NjIHRvIGRvIGEgYmV0dGVyIGpvYiBpbmxpbmluZyBmdW5jdGlvbnMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMzA1NTc5M2JjYmRmMjRiMWY4MTE3ZjYwNmZmYjc2NmQzMmViNzY2ZgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgRGVjIDEzIDEyOjU2OjI5IDIwMDcgKzAxMDAKCiAgICBjZmlfZmxhc2g6IE1ha2Ugc29tZSBuZWVkbGVzc2x5IGdsb2JhbCBmdW5jdGlvbnMgc3RhdGljCgogICAgTWFrZSBmdW5jdGlvbnMgbm90IGRlY2xhcmVkIGluIGFueSBoZWFkZXIgZmlsZSBzdGF0aWMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgN2U1YjliNDcxNTE4YzU2NTJmZWJjNjhiYTYyYjQzMjE5M2Q2YWJmNApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglUaHUgRGVjIDEzIDEyOjU2OjI4IDIwMDcgKzAxMDAKCiAgICBjZmlfZmxhc2g6IEJyZWFrIGxvbmcgbGluZXMKCiAgICBUaGlzIHBhdGNoIHRyaWVzIHRvIGtlZXAgYWxsIGxpbmVzIGluIHRoZSBjZmlfZmxhc2ggZHJpdmVyIGJlbG93IDgwCiAgICBjb2x1bW5zLiBUaGVyZSBhcmUgYSBmZXcgbGluZXMgbGVmdCB3aGljaCBkb24ndCBmaXQgdGhpcyByZXF1aXJlbWVudAogICAgYmVjYXVzZSBJIGNvdWxkbid0IGZpbmQgYW55IHRyaXZpYWwgd2F5IHRvIGJyZWFrIHRoZW0gKGkuZS4gaXQgd291bGQKICAgIHRha2Ugc29tZSByZXN0cnVjdHVyaW5nLCB3aGljaCBJIGludGVuZCB0byBkbyBpbiBhIGxhdGVyIHBhdGNoLikKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA0MjAyNmM5Y2IzYTc2ODQ5YjQxZTZlMjRhYmZiN2I1NjgwN2E1YzFhCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIERlYyAxMSAxMzo1OTo1NyAyMDA3ICswMTAwCgogICAgQ0ZJOiBzeW5jaHJvbml6ZSBjb21tYW5kIG9mZnNldHMgd2l0aCBMaW51eCBDRkkgZHJpdmVyCgogICAgRml4ZXMgbm9uLXdvcmtpbmcgQ0ZJIEZsYXNoIG9uIHRoZSBJbmthNHgwIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgOGZmM2RlNjFmYzVmOWIzYjIxNjQ3YmNlMDgxYTNiN2Y3MTBmMGQ0ZApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CUZyaSBEZWMgNyAxMjoxNzozNCAyMDA3IC0wNjAwCgogICAgSGFuZGxlIE1QQzg1eHggUENJZSByZXNldCBlcnJhdGEgKFBDSS1FeCAzOCkKCiAgICBPbiB0aGUgTVBDODV4eCBib2FyZHMgdGhhdCBoYXZlIFBDSWUgZW5hYmxlIHRoZSBQQ0llIGVycmF0YSBmaXguCiAgICAoTVBDODU0NERTLCBNUEM4NTQ4Q0RTLCBNUEM4NTY4TURTKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDgyYWM4Yzk3MTQ1YTRjM2JmOGIzZGJmYWQwMGZhOTZlOTIwZjliOWMKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgRGVjIDcgMTI6MDQ6MzAgMjAwNyAtMDYwMAoKICAgIFVwZGF0ZSBGcmVlc2NhbGUgTVBDODV4eCBBRFMvQ0RTL01EUyBib2FyZCBjb25maWcKCiAgICAqIEVuYWJsZWQgQ09ORklHX0NNRF9FTEYKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGQ0MzU3OTMyMjljZTI5YTQyNzk3YzFlZGMzOWY1YjM0Zjk4N2Y5MWEKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglGcmkgRGVjIDcgMDQ6NTk6MjYgMjAwNyAtMDYwMAoKICAgIEhhbmRsZSBBc3luY2hyb25vdXMgRERSIGNsb2NrIG9uIDg1eHgKCiAgICBUaGUgTVBDODU3MiBpbnRyb2R1Y2VzIHRoZSBjb25jZXB0IG9mIGFuIGFzeW5jaHJvbm91cyBERFIgY2xvY2sgd2l0aAogICAgcmVnYXJkcyB0byB0aGUgcGxhdGZvcm0gY2xvY2suCgogICAgSW50cm9kdWNlIGdldF9kZHJfZnJlcSgpIHRvIHJlcG9ydCB0aGUgRERSIGZyZXEgcmVnYXJkbGVzcyBvZiBzeW5jL2FzeW5jCiAgICBtb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMjJhYmIyZDJlYWY3Yjc5NWE2OTIzYzYyNzNlYzljYjUzZmRhOWExMApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBOb3YgMjkgMTA6MzQ6MjggMjAwNyAtMDYwMAoKICAgIFVwZGF0ZSBGcmVlc2NhbGUgTVBDODV4eCBBRFMvQ0RTL01EUyBib2FyZCBjb25maWcKCiAgICAqIFJlbW92ZWQgc29tZSBtaXNjIGVudmlyb25tZW50IHNldHVwCiAgICAqIEVuYWJsZWQgQ09ORklHX0NNRExJTkVfRURJVElORwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNDE1YTYxM2JhYmI4NGQ1ZTVkNWI0MmU4ZTU1Mzg2OGM3MWZjM2E2NApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBOb3YgMjkgMTA6NDc6NDQgMjAwNyAtMDYwMAoKICAgIE1vdmUgdGhlIE1QQzg1NDEvTVBDODU1NS9NUEM4NTQ4IENEUyBib2FyZCB1bmRlciBib2FyZC9mcmVlc2NhbGUuCgogICAgTWlub3IgcGF0aCBjb3JyZWN0aW9ucyBuZWVkZWQgdG8gZW5zdXJlIGJ1aWxkYWJpbGl0eS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGMyZDk0M2ZmYmZkMzM1OWIzYjQ1ZDE3N2I0MzczNzlkMmNiODZmYmYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgTm92IDI5IDEwOjE2OjE4IDIwMDcgLTA2MDAKCiAgICBNb3ZlIHRoZSBNUEM4NTQwIEFEUyBib2FyZCB1bmRlciBib2FyZC9mcmVlc2NhbGUuCgogICAgTWlub3IgcGF0aCBjb3JyZWN0aW9ucyBuZWVkZWQgdG8gZW5zdXJlIGJ1aWxkYWJpbGl0eS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDg3MGNlYWM1YjNhMzQ4NmMxMDkzOTZlMDA1YWY4MWFlNzYyYjU3MTAKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgTm92IDI5IDEwOjE0OjUwIDIwMDcgLTA2MDAKCiAgICBNb3ZlIHRoZSBNUEM4NTYwIEFEUyBib2FyZCB1bmRlciBib2FyZC9mcmVlc2NhbGUuCgogICAgTWlub3IgcGF0aCBjb3JyZWN0aW9ucyBuZWVkZWQgdG8gZW5zdXJlIGJ1aWxkYWJpbGl0eS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGFjYmNhODc2ZmIzZmVjMjVjZDljNTViMGVmYzgxZmY2MThmZjUyNjIKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgTm92IDI5IDEwOjEzOjQ3IDIwMDcgLTA2MDAKCiAgICBNb3ZlIHRoZSBNUEM4NTY4IE1EUyBib2FyZCB1bmRlciBib2FyZC9mcmVlc2NhbGUuCgogICAgTWlub3IgcGF0aCBjb3JyZWN0aW9ucyBuZWVkZWQgdG8gZW5zdXJlIGJ1aWxkYWJpbGl0eS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IGE4NTNkNTZjNTliMzM0MTUzMDQ1MzE0NDM2MzM4MDg3MzZhY2ZjNmUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgTm92IDI5IDAyOjE4OjU5IDIwMDcgLTA2MDAKCiAgICBVc2Ugc3RhbmRhcmQgTEFXQVJfVFJHVF9JRl8qIGRlZmluZXMgZm9yIExBVyBzZXR1cCBvbiA4NXh4CgogICAgV2UgYWxyZWFkeSBoYWQgZGVmaW5lcyBmb3IgTEFXQVJfVFJHVF9JRl8qIHRoYXQgd2Ugc2hvdWxkIHVzZQogICAgcmF0aGVyIHRoYW4gY3JlYXRpbmcgbmV3IG9uZXMuICBBbHNvLCBhZGRlZCBzb21lIG1pc3NpbmcgZGVmaW5lcyBmb3IKICAgIFBDSUUgdGFyZ2V0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDA0ZGI0MDA4OTJkYTM3Yjc2YTU4NWUzMzJhMGMxMzc5NTRhZDIwMTUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgTm92IDI5IDAyOjEwOjA5IDIwMDcgLTA2MDAKCiAgICBTdG9wIHVzaW5nIGltbWFwX3Qgb24gODV4eAoKICAgIEluIHRoZSBmdXR1cmUgdGhlIG9mZnNldHMgdG8gdmFyaW91cyBibG9ja3MgbWF5IG5vdCBiZSBpbiBzYW1lIGxvY2F0aW9uLgogICAgTW92ZSB0byB1c2luZyBDRkdfTVBDODV4eF8qX0FERFIgYXMgdGhlIGJhc2Ugb2YgdGhlIHJlZ2lzdGVycwogICAgaW5zdGVhZCBvZiBnZXR0aW5nIGl0IHZpYSAmaW1tYXAuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAyNzE0MjIzZjhlMDRhYjNlNDEzM2ZmNjU4NzJlZWYzNjZkOTBiZmVhCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE5vdiAyOSAwMToyMzowOSAyMDA3IC0wNjAwCgogICAgUmVtb3ZlIENPTkZJR19PRl9GTEFUX1RSRUUgcmVsYXRlZCBjb2RlIGZyb20gbXBjODV4eCBzaW5jZSB3ZSBub3cgdXNlIGxpYmZkdAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYzQ4MDg2MWJmMDAwMTU2ZTZhM2U5MzJjMjU4ZGI1OWZmMjIxMmRkMwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBOb3YgMjkgMDE6MDY6MTkgMjAwNyAtMDYwMAoKICAgIFVwZGF0ZSBNUEM4NTY4IE1EUyB0byB1c2UgbGliZmR0CgogICAgVXBkYXRlZCB0aGUgTVBDODU2OCBNRFMgY29uZmlnIHRvIHVzZSBsaWJmZHQgYW5kIGFzc3VtZSB1c2Ugb2YgYWxpYXNlcyBmb3IKICAgIGV0aGVybmV0LCBwY2ksIGFuZCBzZXJpYWwgZm9yIHRoZSB2YXJpb3VzIGZpeHVwcyB0aGF0IGFyZSBkb25lLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMTU2M2Y1NmUwYzY4ZjY5MjBmOTU2MzgyZDZkMTNiZWUzZjAxYzBmNwpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBOb3YgMTQgMTU6NTI6MDYgMjAwNyAtMDUwMAoKICAgIEFkZCBQQ0kgRXhwcmVzcyBzdXBwb3J0IG9uIE1QQzg1NjhNRFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBiOTBkMjU0OTc2MjViOTBmZmEzZjI5MTFhMDg5NWNhMjM3NTU2ZmY1CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE5vdiAyOSAwMDoxMTo0NCAyMDA3IC0wNjAwCgogICAgVXBkYXRlIE1QQzg1eHggQ0RTIHRvIHVzZSBsaWJmZHQKCiAgICBVcGRhdGVkIHRoZSBNUEM4NXh4IENEUyBjb25maWcgdG8gdXNlIGxpYmZkdCBhbmQgYXNzdW1lIHVzZSBvZiBhbGlhc2VzIGZvcgogICAgZXRoZXJuZXQsIHBjaSwgYW5kIHNlcmlhbCBmb3IgdGhlIHZhcmlvdXMgZml4dXBzIHRoYXQgYXJlIGRvbmUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAwZmQ1ZWM2NmIxMDUyMWEwNTdhZDczZTY5YWI1ZjBmOWVhZmJhMjU1CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIE5vdiAyOCAyMjo1NDoyNyAyMDA3IC0wNjAwCgogICAgVXBkYXRlIE1QQzg1NDAgQURTIHRvIHVzZSBsaWJmZHQKCiAgICBVcGRhdGVkIHRoZSBNUEM4NTQwIEFEUyBjb25maWcgdG8gdXNlIGxpYmZkdCBhbmQgYXNzdW1lIHVzZSBvZiBhbGlhc2VzIGZvcgogICAgZXRoZXJuZXQsIHBjaSwgYW5kIHNlcmlhbCBmb3IgdGhlIHZhcmlvdXMgZml4dXBzIHRoYXQgYXJlIGRvbmUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA1Y2U3MTU4MDJmNmM1MGRjNzhiMzQwNWI5MmYxODRiMWUzNzEwNTE5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIE5vdiAyOCAyMjo0MDozMSAyMDA3IC0wNjAwCgogICAgVXBkYXRlIE1QQzg1NjAgQURTIHRvIHVzZSBsaWJmZHQKCiAgICBVcGRhdGVkIHRoZSBNUEM4NTYwIEFEUyBjb25maWcgdG8gdXNlIGxpYmZkdCBhbmQgYXNzdW1lIHVzZSBvZiBhbGlhc2VzIGZvcgogICAgZXRoZXJuZXQsIHBjaSwgYW5kIHNlcmlhbCBmb3IgdGhlIHZhcmlvdXMgZml4dXBzIHRoYXQgYXJlIGRvbmUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBhYWZlZWZiZGI4YjAyOWY1Y2EyYTE5NTU5OGQwYTUwMWE2MDZlZWE5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIE5vdiAyOCAwMDozNjozMyAyMDA3IC0wNjAwCgogICAgU3RvcCB1c2luZyBpbW1hcF90IGZvciBjcG0gb2Zmc2V0IG9uIDg1eHgKCiAgICBJbiB0aGUgZnV0dXJlIHRoZSBvZmZzZXRzIHRvIHZhcmlvdXMgYmxvY2tzIG1heSBub3QgYmUgaW4gc2FtZSBsb2NhdGlvbi4KICAgIE1vdmUgdG8gdXNpbmcgQ0ZHX01QQzg1eHhfQ1BNX0FERFIgYXMgdGhlIGJhc2Ugb2YgdGhlIENQTSByZWdpc3RlcnMKICAgIGluc3RlYWQgb2YgZ2V0dGluZyBpdCB2aWEgJmltbWFwLT5pbV9jcG0uCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmNTliNTVhNWI4ZmNhZGFhOTk3ODFiYTQ4ZTdhMzhlOTU2YWZhNTI3CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIE5vdiAyNyAyMzoyNTowMiAyMDA3IC0wNjAwCgogICAgU3RvcCB1c2luZyBpbW1hcF90IGZvciBndXRzIG9mZnNldCBvbiA4NXh4CgogICAgSW4gdGhlIGZ1dHVyZSB0aGUgb2Zmc2V0cyB0byB2YXJpb3VzIGJsb2NrcyBtYXkgbm90IGJlIGluIHNhbWUgbG9jYXRpb24uCiAgICBNb3ZlIHRvIHVzaW5nIENGR19NUEM4NXh4X0dVVFNfQUREUiBhcyB0aGUgYmFzZSBvZiB0aGUgZ3V0cyByZWdpc3RlcnMKICAgIGluc3RlYWQgb2YgZ2V0dGluZyBpdCB2aWEgJmltbWFwLT5pbV9ndXIuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA1MGMwM2M4Y2Y0OTRkOTFjZGVjMzk2NzBkOTUzMzdjNzQzZTE2ZWM5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIE5vdiAyNyAyMjo0MjozNCAyMDA3IC0wNjAwCgogICAgVXBkYXRlIE1QQzg1NDQgRFMgY29uZmlnCgogICAgKiBSZW1vdmVkIEhBU19FVEgyL0hBU19FVEgzIC0gTVBDODU0NCBvbmx5IGhhcyBUU0VDMS8yCiAgICAqIFJlbW92ZWQgc29tZSBtaXNjIGVudmlyb25tZW50IHNldHVwCiAgICAqIE1vdmVkIHRvIHVzaW5nIGZkdGZpbGUgJiBmZHRhZGRyIGFzIGZkdCBlbnYgdmFyIG5hbWVzCiAgICAqIEVuYWJsZWQgQ09ORklHX0NNRExJTkVfRURJVElORwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYWRkY2U1N2UyZTRjNDllNzdmZmIyMDIwYTg0NjkwNzEzYmIxOGI0NwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBOb3YgMjYgMTc6MTI6MjQgMjAwNyAtMDYwMAoKICAgIFVwZGF0ZSBNUEM4NTQ0RFMgdG8gdXNlIGxpYmZkdAoKICAgIFVwZGF0ZWQgdGhlIE1QQzg1NDREUyBjb25maWcgdG8gdXNlIGxpYmZkdCBhbmQgYXNzdW1lIHVzZSBvZiBhbGlhc2VzIGZvcgogICAgZXRoZXJuZXQsIHBjaSwgYW5kIHNlcmlhbCBmb3IgdGhlIHZhcmlvdXMgZml4dXBzIHRoYXQgYXJlIGRvbmUuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmODUyY2U3MmYxMDBjYWJkMWYxMWMyMWMwODVhMGFkOGVjYTlmYjY1CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE5vdiAyOSAwMDoxNTozMCAyMDA3IC0wNjAwCgogICAgQWRkIGxpYmZkdCBiYXNlZCBmdF9jcHVfc2V0dXAgZm9yIG1wYzg1eHgKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDNiOWFiZGM0NDhhMWMyYzZhNGMyYWEyOTI3MjRiNGQxYTA1MTY2YTkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBEZWMgMTEgMTM6Mzg6MTkgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQ29ycmVjdCBHUElPIG9mZnNldCBpbiBncGlvX2NvbmZpZygpCgogICAgVGhhbmtzIHRvIEdhcnkgSmVubmVqb2huIGZvciBwb2ludGluZyB0aGlzIG91dC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODgwOWEyNzEzYjFjZWFmM2RhNTVkOWQ3ODU0NzAyOTRmMTVkZTA2YQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIERlYyAxMSAxMTo0NjowMSAyMDA3ICswMTAwCgogICAgcnRjOiBGaXggbWVyZ2luZyBwcm9ibGVtCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDdjZmMxMmE3ZGNmZGIzNTBlMmFiNzZkYjRkYWZjYzMwZjdlNzdjMmIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBEZWMgOCAxNDo0NzozNCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiA0MDVFWDogQ29ycmVjdGx5IGVuYWJsZSBVU0IgcGlucwoKICAgIFRoaXMgcGF0Y2ggc2VsZWN0cyB0aGUgVVNCIGRhdGEgcGlucyBpbiB0aGUgNDA1RVggR1BJTyBhbmQgTUZDIChtdWx0aQogICAgZnVuY3Rpb24gY29udHJvbCkgcmVnaXN0ZXJzLiBUaGlzIGlzIGRvbmUgZm9yIHRoZSBBTUNDIEtpbGF1ZWEgYW5kCiAgICBNYWthbHUgZXZhbCBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDk2OTJjMjczNGE0N2YyM2I0NGEwZjY4MDQyYTNlMmNhOGQxYmZiMzkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBEZWMgOCAwODoyNTowOSAyMDA3ICswMTAwCgogICAgQ0ZJOiBDb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4MWIyMGNjYzJkNzk1YWU5YTExOTlkYjVhNTBhZDljMjhkMWU0ZDIyCkF1dGhvcjogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KRGF0ZToJRnJpIERlYyA3IDIzOjM1OjAyIDIwMDcgKzAxMDAKCiAgICBDRkk6IHN1cHBvcnQgSkVERUMgZmxhc2ggcm9tcyBpbiBDRkktZmxhc2ggZnJhbWV3b3JrCgogICAgVGhlIGZvbGxvd2luZyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIG5vbi1DRkkgZmxhc2ggUk9NUywgYnkgaG9va2luZyBpbnRvIHRoZQogICAgQ0ZJIGZsYXNoIGNvZGUgYW5kIHVzaW5nIG1vc3Qgb2YgaXRzIGNvZGUsIGFzIHJlY2VudGx5IGRpc2N1c3NlZCBoZXJlIGluIHRoZQogICAgdGhyZWFkICJNaXhpbmcgQ0ZJIGFuZCBub24tQ0ZJIGZsYXNocyIuCgogICAgU2lnbmVkLW9mZi1ieTogTWljaGFlbCBTY2h3aW5nZW4gPG1pY2hhZWxAc2Nod2luZ2VuLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjMDFiMTdkZDg1NmZhMTIwYjI5NzBmNTBkOTU5ODU0NmE0OTI3ZWMzCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJV2VkIE5vdiAyOCAyMToyNDo1MCAyMDA3IC0wNTAwCgogICAgQ29uZGl0aW9uYWxseSBjb21waWxlIGZkdF9maXh1cF9ldGhlcm5ldCgpCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzOiBPbiBib2FyZHMgdGhhdCBkb24ndCBoYXZlIGV0aGVybmV0cyBkZWZpbmVkLAogICAgZG9uJ3QgY29tcGlsZSBmZHRfZml4dXBfZXRoZXJuZXQoKS4KCmNvbW1pdCAyNDZkNGFlNmJjMjgyYmMxODQxMjI0ZTFjNWZjNDlkYzkyNWUwYmY3CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIE5vdiAyNyAyMTo1OTo0NiAyMDA3IC0wNjAwCgogICAgQ29udmVydCBib2FyZHMgdGhhdCBzZXQgbWVtb3J5IG5vZGUgdG8gdXNlIGZkdF9maXh1cF9tZW1vcnkoKQoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMTUxYzhiMDliMzVlZWJlOGZkOTEzOWNiNmMxZDkxYzI3YjIyZjA1OApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CU1vbiBOb3YgMjYgMTc6MDY6MTUgMjAwNyAtMDYwMAoKICAgIEFkZGVkIGZkdF9maXh1cF9zdGRvdXQgdGhhdCB1c2VzIGFsaWFzZXMgdG8gc2V0IGxpbnV4LHN0ZG91dC1wYXRoCgogICAgV2UgdXNlIGEgY29tYmluYXRpb24gb2YgdGhlIHNlcmlhbE4gYWxpYXMgYW5kIENPTkZJR19DT05TX0lOREVYIHRvCiAgICBkZXRlcm1pbmUgd2hpY2ggc2VyaWFsIGFsaWFzIHdlIHNob3VsZCBzZXQgbGludXgsc3Rkb3V0LXBhdGggdG8uCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAzYzkyNzI4MTNmYWQ4NGM2OTFkMGU0OTg5YmIxOGEzZmZlYmRlYmZjCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIE5vdiAyNiAxNDo1Nzo0NSAyMDA3IC0wNjAwCgogICAgQWRkIGNvbW1vbiBtZW1vcnkgZml4dXAgZnVuY3Rpb24KCiAgICBBZGQgdGhlIGZ1bmN0aW9uIGZkdF9maXh1cF9tZW1vcnkoKSB0byBmaXh1cCB0aGUgL21lbW9yeSBub2RlIG9mIHRoZSBmZHQKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDljOTEwOWU3ZmNmN2FjMmNhMTljOTViOGFjNTRiOGQxYzc3M2IxNTcKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gTm92IDI2IDExOjE5OjEyIDIwMDcgLTA2MDAKCiAgICBDb25kaXRpb25hbGx5IGNvbXBpbGUgZmR0X3N1cHBvcnQuYwoKICAgIE1vZGlmeSBjb21tb24vTWFrZWZpbGUgdG8gY29uZGl0aW9uYWxseSBjb21waWxlIGZkdF9zdXBwb3J0LmMgYmFzZWQKICAgIG9uIENPTkZJR19PRl9MSUJGRFQuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBkODhlN2JhMDk4MDc3MzQ3OWUxYTY0YmFkYjI5MzExNjA3MWI3ZWYwCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJTW9uIE5vdiAyNiAxMDo0MTo0MCAyMDA3IC0wNjAwCgogICAgRml4IGJ1aWxkIGJyZWFrYWdlIGR1ZSB0byBsaWJmZHQgaW1wb3J0CgogICAgVGhlIElEUzgyNDcgZ290IGxvc3QgaW4gdGhlIHVwZGF0ZSBhbmQgbmVlZCBhbiBBUEkgdXBkYXRlCiAgICBkbyB0byByZW5hbWUgb2YgZnVuY3Rpb25zIGluIGxpYmZkdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDI4ZjM4NGIxNzFiYmYxZmIyZGFmYjEwNDZlNmQyNTlhNmIyZjg3MTQKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglGcmkgTm92IDIzIDE5OjQzOjIwIDIwMDcgLTA1MDAKCiAgICBBZGQgc3BhY2VzIGFyb3VuZCB0aGUgPSBpbiB0aGUgZmR0IHByaW50IGZvcm1hdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDI5NTkyZWNiYTNiOTMyYjliMTUyYmNlYzZjMGMwODA2NDEyZGI0YTMKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CUZyaSBEZWMgNyAwMToyNTozOCAyMDA3ICswOTAwCgogICAgc2g6IE1vdmVkIGRyaXZlciBvZiB0aGUgU3VwZXJIIGRlcGVuZGVuY2UKCiAgICBUaGUgY29tcG9zaXRpb24gb2YgdGhlIGRpcmVjdG9yeSBpbiB0aGUgZHJpdmVycy8gY2hhbmdlZC4KICAgIEkgbW92ZWQgU3VwZXJIIHNlcmlhbCBkcml2ZXIgYW5kIG1hcnVidW4gUENNQ0lBIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNDFiZTk2OWY0OTU3MTE1ZWQ3YjFmZThiODkwYmZhZWU5OWQ3YTdhMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBEZWMgNiAxMDoyMToxOSAyMDA3ICswMTAwCgogICAgUmVsZWFzZSB2MS4zLjEKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGNmNTkzM2JhMWU5N2ExY2Q4ZjVmMjQwNzBlODIwZjIxZDk3NmVhZWIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgRGVjIDYgMTA6MjE6MDMgMjAwNyArMDEwMAoKICAgIEFEUzUxMjEgQm9hcmQ6IGZpeCBjb21waWxlIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBhMjcwNDRiMTRhOWU5MzY3OGE4MmQ3YjM1ZjIwMmI5M2U3Njg3YWJjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgRGVjIDYgMDU6NTg6NDMgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogRW5hYmxlIGhhcmR3YXJlLWZpeCBmb3IgUENJL0RNQSBlcnJhdGEgb24gQU1DQyA0NDBTUC9TUGUgYm9hcmRzCgogICAgVGhpcyBwYXRjaCBlbmFibGVzIHRoZSBoYXJkd2FyZS1maXggZm9yIHRoZSBQQ0kvRE1BIGVycmF0YSdzIDE5KzIyIGJ5CiAgICBzZXR0aW5nIHRoZSBGSVhEIGJpdCBpbiB0aGUgU0RSMF9NRlIgcmVnaXN0ZXIuIEhlcmUgYSBkZXNjcmlwdGlvbiBvZiB0aGUKICAgIHN5bXB0b21zOgoKICAgIFByb2JsZW0gRGVzY3JpcHRpb24KICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgSWYgYSBETUEgaXMgcGVyZm9ybWVkIGJldHdlZW4gbWVtb3J5IGFuZCBQQ0kgd2l0aCB0aGUgRE1BIDEgQ29udHJvbGxlcgogICAgdXNpbmcgcHJlZmV0Y2gsIGFuZCBhcyBhIHJlc3VsdCB1c2VzIGEgc3BlY2lhbCBwdXJwb3NlIGJ1ZmZlciBzZWxlY3RlZCBieQogICAgdGhlIFBDSVhuIEJyaWRnZSBPcHRpb25zIDEgUmVnaXN0ZXIgKFBDSVhuX0JSREdPUFQxW1JCUDddIC0gYml0cyAzMS0yOSksCiAgICB0aGUgZmlyc3QgcGFydCBvZiB0aGUgdHJhbnNmZXIgc2VxdWVuY2UgaXMgcGVyZm9ybWVkIHR3aWNlLiBUaGUKICAgIFBQQzQ0MFNQZSBQQ0kgQ29udHJvbGxlciByZXF1ZXN0cyBtb3JlIGRhdGEgdGhhbiB3YXMgbmVlZGVkIHN1Y2ggdGhhdCBpbgogICAgdGhlIGNhc2Ugb2YgZW5mb3JjZSBtZW1vcnkgcHJvdGVjdGlvbiwgYSBob3N0IENQVSAgZXhjZXB0aW9uIGNhbiBvY2N1ci4KICAgIE5vIGRhdGEgaXMgY29ycnVwdGVkLCBiZWNhdXNlIGRhdGEgdHJhbnNmZXIgaXMgc3RvcHBlZCBpbiB0aGUgUENJCiAgICBDb250cm9sbGVyLiBQcmVmZXRjaCBlbmFibGUgaXMgc3BlY2lmaWVkIGJ5IHNldHRpbmcgRE1BIENvbmZpZ3VyYXRpb24KICAgIFJlZ2lzdGVyIChJMk8wX0RNQXhfQ0ZHW0RYRVBEXSAtIGJpdCAzMSkgdG8gMC4KCiAgICBCZWhhdmlvciB0aGF0IG1heSBiZSBvYnNlcnZlZCBpbiBhIHJ1bm5pbmcgc3lzdGVtCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAxLiBETUEgcGVyZm9ybWFuY2UgaXMgZGVjcmVhc2VkIGJlY2F1c2Ugb2YgdGhlIGRvdWJsZSBhY2Nlc3Mgb24gdGhlIFBDSSBidXMKICAgIGludGVyZmFjZS4KICAgIDIuIElmIGFuIGlsbGVnYWwgYWNjZXNzIHRvIHNvbWUgYWRkcmVzcyBvbiB0aGUgUENJIGJ1cyBpcyBkZXRlY3RlZCBhdCB0aGUKICAgIHN5c3RlbSBsZXZlbCwgYSBtYWNoaW5lIGNoZWNrIG9yIHNpbWlsYXIgc3lzdGVtIGVycm9yIG1heSBvY2N1ci4KCiAgICBXb3JrYXJvdW5kcyBBdmFpbGFibGUKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAxLiBEbyBub3QgcHJvZ3JhbSBwcmVmZXRjaC4gTm90ZSB0aGF0IGEgcHJlZmV0Y2ggY29tbWFuZCBjYW5ub3QgYmUgcHJvZ3JhbW1lZAogICAgd2l0aG91dCBzZWxlY3RpbmcgYSBzcGVjaWFsIHB1cnBvc2UgYnVmZmVyLgogICAgMi4gVG8gYXZvaWQgY3Jvc3NpbmcgYSBwaHlzaWNhbCBib3VuZGFyeSBvZiB0aGUgUENJIHNsYXZlIGRldmljZSwgYWRkIDUxMgogICAgYnl0ZXMgb2YgYWRkcmVzcyB0byB0aGUgUENJIGFkZHJlc3MgcmFuZ2UuCgogICAgVGhpcyBwYXRjaCB3YXMgb3JpZ2luYWxseSBwcm92aWRlZCBieSBQcmF2aW4gTS4gQmF0aGlqYSA8cGJhdGhpamFAYW1jYy5jb20+CiAgICBmcm9tIEFNQ0MgYW5kIHNsaWdobHkgY2hhbmdlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQcmF2aW4gTS4gQmF0aGlqYSA8cGJhdGhpamFAYW1jYy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYTkwOTIxZjcxZDIyNWJmOWUwZjBmYzdiOGJlYWRlYjgwMDFiZjc4YQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIERlYyA0IDE2OjI5OjQ4IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IFlvc2VtaXRlL1llbGxvd3N0b25lOiBBZGQgRFRUIEFENzQxNCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDhkNGYwNDBhM2MxNTAzNmE2ZWEyNWE5YzM5ZTdkODlmZWZhODQ0MGQKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gRGVjIDMgMDA6MTU6MjggMjAwNyArMDEwMAoKICAgIFByZXBhcmUgZm9yIDEuMy4xLXJjMQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZTE1ZTMzNDMzZTdjMDUxMTE5NjhkYzliNDM0YTUyZmQ0MmNiZDIyMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE5vdiAzMCAwNzoxNTo0MSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBLaWxhdWVhOiBBZGQgUENJZSByZXNldCBhc3NlcnRpb24gdXBvbiBwb3dlci11cAoKICAgIFRoaXMgbWFudWFsIFBDSWUgcmVzZXQgdHJpZ2dlcmluZyBzb2x2ZXMgdGhlIHByb2JsZW0gc2VlbiB3aXRoIHRoZQogICAgSW50ZWwgRVBSTy8xMDAwIGNhcmQsIHdoaWNoIHdhcyBub3QgZGV0ZWN0ZWQgKGxpbmsgbm90IGVzdGFibGlzaGVkKQogICAgdXBvbiBwb3dlci11cCByZXNldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjYwZWVhNTY3NmNhNDY5MDNhMzM1Njg2Y2MwMjBiMjljNGNhNDZmZQpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJVGh1IE5vdiAyOSAwMToyMTo1NCAyMDA3ICswOTAwCgogICAgc2g6IEFkZCBTdXBlckggYm9hcmRzIG1haW50YWluZXIgdG8gTUFJTlRBSU5FUlMgZmlsZQoKICAgIEFkZCBNUzc3NTBTRSBhbmQgTVM3NzIyU0UncyBib2FyZCBtYWludGFpbmVyIHRvIE1BSU5UQUlORVJTIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGFhOWM0ZjFkMjI3MDFhOTIzNDdjMWM4MWYzNGQxMmM4YWQzYTM3NDcKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVRodSBOb3YgMjkgMDA6MTM6MDQgMjAwNyArMDkwMAoKICAgIHNoOiBBZGQgbXM3NzUwc2Ugc3VwcG9ydCBpbiBNQUtFQUxMCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGM3MTQ0MzczNDI3YTE3ODMzMmJmOTc1NDEzMWM4YzM0YzUyYzIwMGEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUdWUgTm92IDI3IDA5OjQ0OjUzIDIwMDcgKzAxMDAKCiAgICBzaDogQWRkIHNoMyBhbmQgc2g0IHN1cHBvcnQgaW4gTUFLRUFMTAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMTMwMDgwODc0YTNkMjg0NTAwOTg0ODFhMjYyYzVmN2M4NTVlOTA4ZApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJU3VuIE5vdiAyNSAwMjo1MToxNyAyMDA3ICswOTAwCgogICAgc2g6IEFkZCBkb2N1bWVudCBmb3IgU3VwZXJILgoKICAgIFRoaXMgZG9jdW1lbnQgaXMgYSBzdW1tYXJ5IG9mIGluZm9ybWF0aW9uIGNvbmNlcm5pbmcgU3VwZXJIIG9mIFUtQm9vdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgMzNlY2RjMmY5ZDY0OTI2ZTFhNjA2N2IyOGYzYTBhZWZjM2I2ZDIzZApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJU3VuIE5vdiAyNSAwMjozOTozMSAyMDA3ICswOTAwCgogICAgc2g6IEFkZCBtYXJ1YnVuJ3MgcGNtY2lhIGRyaXZlcgoKICAgIE1hcnVidW4gcGNtY2lhIGlzIGEgY2hpcCBmb3IgUENNQ0lBIHVzZWQgd2l0aCBTdXBlckguCiAgICBPZiBjb3Vyc2UsIHRoaXMgY2FuIGJlIHVzZWQgZXZlbiBieSBvdGhlciBhcmNoaXRlY3R1cmVzLgogICAgV2hlbiB1c2UgdGhpcyBkcml2ZXIsIGNhbWUgdG8gYmUgYWJsZSB0byB1c2UgQ29tcGFjdEZsYXNoCiAgICBhbmQgRXRoZXJuZXQuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IGZlYmQ4NmI5NjliOTc1Mjg5ZWQ5NDhmMWFjMGViOTcyMmRhNDFjZWQKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVN1biBOb3YgMjUgMDI6MzI6MTMgMjAwNyArMDkwMAoKICAgIHNoOiBVcGRhdGUgU3VwZXJIIFNDSUYgZHJpdmVyCgogICAgLSBDaGFuZ2VkIHZvbGF0aWxlIHVuc2lnbmVkIHRvIHZ1Xy4KICAgIC0gQ2hhbmdlZCBNYWtlZmlsZSBmb3Iga2NvbmZpZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgOGJlNzYwOTAzNjQ1YWYwOTg3MWJlNTBhZDBhNmY5ZWJiNjJiMzExZApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE5vdiAyNyAxMTo1NzozNSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBLaWxhdWVhICYgTWFrYWx1OiBGaXggZXh0IElSUSBwaW4gbXVsdGlwbGV4aW5nCgogICAgQWZ0ZXIgYW4gZXJyb3IgaW4gdGhlIEFNQ0MgNDA1RVggdXNlcnMgbWFudWFsIG5vdyBjb3JyZWN0bHkgY29uZmlndXJlCiAgICBJUlEyIChLaWxhdWVhKS9JUlEwIChNYWthbHUpIGFzIGFsdGVybmF0ZSAyIHNpZ25hbCBmb3IgZXh0ZXJuYWwgSVJRCiAgICB1c2FnZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYTVmNjAxZmQxYjEyNzhkZWFlNWFhOWZjMjdhMjMyYjBkMWMxYzc4OApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjYgMTk6MTg6MjEgMjAwNyArMDEwMAoKICAgIENsZWFudXAgY29kaW5nIHN0eWxlOyB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAzZGVjYTlkNDQ3NjdlZmQxYjgzZjRiNzAxZjBkYmYyMWE3NTk1ZjdiCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE5vdiAyNSAyMjozOToyNSAyMDA3ICswMTAwCgogICAgTUFLRUFMTDogYWRkIG1pc3NpbmcgNTEyeCBib2FyZHMgaW4gcHBjCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBhMzQwYzMyNWU2NjhjYTczODZjMjI3NjM4NzY4MTcyMGJlOWMzNzU3CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE5vdiAyNSAxODo0NTo0NyAyMDA3ICswMTAwCgogICAgTWFrZWZpbGUgOiBmaXggdGFncyBjdGFncyBldGFncyB3aXRoIG5ldyBkcml2ZXJzIG9yZ2FuaXphdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNjMzNjJjZmM2YmFhOTdhZTBlMzdiYTJjNmVjZTUzMGZjYWM5Zjc5ZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNiAxNTowNjoxNCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBNYWthbHU6IENoYW5nZSBFQkMgc2V0dXAgZm9yIENTMCB0byBlbmFibGUgNDAwTUh6IHVzYWdlCgogICAgQXMgc3VnZ2VzdGVkIGJ5IFNlbmFvLCB1c2UgYSBkaWZmZXJlbnQgRUJDX1BCMEFQIHNldHVwIGZvciA0MDBNSHoKICAgIG9wZXJhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2ExY2UyMjYyODcyNzBiYjAxZTI1YjhlMzY3NGM3MDFmMTJlZGYxOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNiAxNTowMTo0NSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBLaWxhdWVhOiBDb25maWd1cmUgcGluIG11eCB0byB1c2UgZXh0IElSUTIgYXMgaW50ZXJydXB0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg3ZGRlZGQ2YWQ4MDQ0MjdjZTEyNWNlYWEwNzZkN2E0Zjc0ZTlkNWQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gTm92IDI1IDE4OjQ1OjQ3IDIwMDcgKzAxMDAKCiAgICBNYWtlZmlsZSA6IGZpeCB0YWdzIGN0YWdzIGV0YWdzIHdpdGggbmV3IGRyaXZlcnMgb3JnYW5pemF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA1OTgyOWNjMTg5Mzc4YzE0MmMxM2QyYWE4ZDlhODk3ZDhiZWYzOTYxCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE5vdiAyNCAyMToyNjo1NiAyMDA3ICswMTAwCgogICAgZHJpdmVycy9tdGQgOiBtb3ZlIG10ZCBkcml2ZXJzIHRvIGRyaXZlcnMvbXRkCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAzMThjMGI5MDQzMWYyNjQ4NTUyZTVhZGU3ODgzM2Y0MjY1MmNlODU5CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE5vdiAyNCAyMToxNzo1NSAyMDA3ICswMTAwCgogICAgZHJpdmVycy9taXNjIDogbW92ZSBtaXNjIGRyaXZlcnMgdG8gZHJpdmVycy9taXNjCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAzM2RhZjViNzg1ODgwN2NiNGNlNDE1OGMyYzU2NTI0NjcxYzE0YzA4CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE5vdiAyNCAyMToxMzo1OSAyMDA3ICswMTAwCgogICAgZHJpdmVycy9ibG9jayA6IG1vdmUgYmxvY2sgZHJpdmVycyB0byBkcml2ZXJzL2Jsb2NrCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAwYzY5OGRjYWE3MDI3NWViODgxNGY2NjViNTQ1NTQ3Y2VlMDEzODkyCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE5vdiAyNCAyMDo1OTo1MCAyMDA3ICswMTAwCgogICAgZHJpdmVycy9ydGMgOiBtb3ZlIHJ0YyBkcml2ZXJzIHRvIGRyaXZlcnMvcnRjCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBmODY4Y2M1YTUwNzU3ZDk0ZjM2YzMxMjM5NTQ4MWNiMGYxODdkOWU2CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE5vdiAyNCAyMDoxNDo0NCAyMDA3ICswMTAwCgogICAgZHJpdmVycy9od21vbiA6IG1vdmUgaGFyZHdhcmUgbW9uaXRvciBkcnZpZXJzIHRvIGRyaXZlcnMvaHdtb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDE2YjE5NWM4MmExOGNiZmQxNjQ4MDBmMTdhMWVmOWRiMmU0ODMzMWEKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgTm92IDI0IDE5OjQ2OjQ1IDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL2lucHV0IDogbW92ZSBpbnB1dCBkcml2ZXJzIHRvIGRyaXZlcnMvaW5wdXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGU0NTU4NjY2MjkzMzY0ZmMzYWYxYzFkOTM4MWNhOTMzZmEwZjEyNzUKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgTm92IDI0IDE5OjQwOjExIDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL3VzYiA6IG1vdmUgdXNiIGRyaXZlcnMgdG8gZHJpdmVycy91c2IKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDEzNzhkZjc5MmE3ZmYzYWJkMWJmNTRhNjNmNTQ3NTc4NGY1YjA4M2MKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTYXQgTm92IDI0IDE5OjMzOjM4IDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL3NlcmlhbCA6IG1vdmUgc2VyaWFsIGRyaXZlcnMgdG8gZHJpdmVycy9zZXJpYWwKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDI0MzllNGJmYTExMWJhYmY0YmMwN2JhMjBlZmJmM2UzNjAzNjgxM2UKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgTm92IDIxIDIxOjE5OjI0IDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL25ldCA6IG1vdmUgbmV0IGRyaXZlcnMgdG8gZHJpdmVycy9uZXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDM1MmQyNTkxMzBiMzQ5ZmU5NTkzYjhkYWRhNjQxYmQ3OGE5NjU5ZTUKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUdWUgTm92IDIwIDIwOjQxOjQ4IDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL3ZpZGVvIDogbW92ZSB2aWRlbyBkcml2ZXJzIHRvIGRyaXZlcnMvdmlkZW8KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDczNjQ2MjE3MTg2YWExN2FmYzhlMzA1YzVmMDZmMDZkZDMzNWVhYWQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUdWUgTm92IDIwIDIwOjMzOjA5IDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL3BjbWNpYSA6IG1vdmUgcGNtY2lhIGRyaXZlcnMgdG8gZHJpdmVycy9wY21jaWEKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDkzYTY4NmVlOWM1ZGRjNmZhMzY4YzMyY2ZiZmRlNmY2NzI0NTk5ZmMKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglUdWUgTm92IDIwIDIwOjI4OjA5IDIwMDcgKzAxMDAKCiAgICBkcml2ZXJzL3BjaSA6IG1vdmUgcGNpIGRyaXZlcnMgdG8gZHJpdmVycy9wY2kKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDkxNjIzNTI4MTc1Nzk4NDBkNzgwMmRhNmQ4NTg3MmIzY2EwMDNjOTcKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglUaHUgTm92IDIyIDE3OjIzOjIzIDIwMDcgLTA1MDAKCiAgICBGaXggZmR0IHByaW50aW5nIGZvciB1cGRhdGVkIGxpYmZkdAoKICAgIEFsc28gaW1wcm92ZSBwcmludGluZyAoYWRvcHQgZHRjIHYxICJjIHN0eWxlIiBoZXggZm9ybWF0KSwgd2hpdGVzcGFjZSBjbGVhbnVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgOWViNzdjZWExZmExMmQ1OTY5ZWIyNmExZDFkODFkYTM4MWJkNmIxYwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBOb3YgMjEgMTM6MzA6MTUgMjAwNyAtMDYwMAoKICAgIEFkZCBhZGRpdGlvbmFsIGZkdCBmaXh1cCBoZWxwZXIgZnVuY3Rpb25zCgogICAgQWRkZWQgdGhlIGZvbGxvd2luZyBmZHQgZml4dXAgaGVscGVyczoKICAgICAqIGRvX2ZpeHVwX2J5X3Byb3B7X3UzMn0gLSBGaW5kIG1hdGNoaW5nIG5vZGVzIGJ5IHByb3BlcnR5IG5hbWUvdmFsdWUKICAgICAqIGRvX2ZpeHVwX2J5X2NvbXBhdHtfdTMyfSAtIEZpbmQgbWF0Y2hpbmcgbm9kZXMgYnkgY29tcGF0CgogICAgVGhlIF91MzIgdmFyaWFudHMgd29yayB0aGUgc2FtZSBvbmx5IHRoZSBwcm9wZXJ0eSB0aGV5IGFyZSBzZXR0aW5nCiAgICBpcyBrbm93IHRvIGJlIGEgMzItYml0IGludGVnZXIgaW5zdGVhZCBvZiBhIGJ5dGUgYnVmZmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYWI1NDQ2MzNhYmRkMTRmNGRkNWQ5MmU1MDBiNzNlYjU5ZWY1N2U2NwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBOb3YgMjEgMTE6MTE6MDMgMjAwNyAtMDYwMAoKICAgIEFkZCBmZHRfZml4dXBfZXRoZXJuZXQgaGVscGVyIHRvIHNldCBtYWMgYWRkcmVzc2VzCgogICAgQWRkZWQgYSBmaXh1cCBoZWxwZXIgdGhhdCB1c2VzIGFsaWFzZXMgdG8gc2V0IG1hYyBhZGRyZXNzZXMKICAgIGluIHRoZSBkZXZpY2UgdHJlZSBiYXNlZCBvbiB0aGUgYmRfdAoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZGJhZjA3Y2U2MjBhYWIyNDllMzUwMmIyMGE5ODYyMzRhNmFmMWQzYQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBOb3YgMjEgMTQ6MDc6NDYgMjAwNyAtMDYwMAoKICAgIEZpeCB3YXJuaW5ncyBmcm9tIGltcG9ydCBvZiBsaWJmZHQKCiAgICBjbWRfZmR0LmM6IEluIGZ1bmN0aW9uIGZkdF9wcmludDoKICAgIGNtZF9mZHQuYzo1ODY6IHdhcm5pbmc6IGFzc2lnbm1lbnQgZGlzY2FyZHMgcXVhbGlmaWVycyBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKICAgIGNtZF9mZHQuYzo2MTM6IHdhcm5pbmc6IGFzc2lnbm1lbnQgZGlzY2FyZHMgcXVhbGlmaWVycyBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKICAgIGNtZF9mZHQuYzo2MzU6IHdhcm5pbmc6IGFzc2lnbm1lbnQgZGlzY2FyZHMgcXVhbGlmaWVycyBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKICAgIGNtZF9mZHQuYzo2MzY6IHdhcm5pbmc6IGFzc2lnbm1lbnQgZGlzY2FyZHMgcXVhbGlmaWVycyBmcm9tIHBvaW50ZXIgdGFyZ2V0IHR5cGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDhkMDRmMDJmNjIyNGU2OTgzZjQ4MTJlYTRkYTcwNDk1MGVjODUzOWMKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgT2N0IDI0IDExOjA0OjIyIDIwMDcgLTA1MDAKCiAgICBVcGRhdGUgbGliZmR0IGZyb20gZGV2aWNlIHRyZWUgY29tcGlsZXIgKGR0YykKCiAgICBVcGRhdGUgbGliZmR0IHRvIGNvbW1pdCA4ZWFmNWUzNTgzNjYwMTdhYTJlODQ2YzUwMzhkMWFhMTk5NTgzMTRlIGZyb20KICAgIHRoZSBkZXZpY2UgdHJlZSBjb21waWxlciAoZHRjKSBwcm9qZWN0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZTkzYmVjZjgwZDczMmI2NGFlZjgxYjIzZThiNmVjZTAyYzQwNTMzZApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVNhdCBOb3YgMyAxOTo0NjoyOCAyMDA3IC0wNTAwCgogICAgTW92ZSBkb19maXh1cCogZm9yIGxpYmZkdCBpbnRvIGNvbW1vbiBjb2RlCgogICAgTW92ZWQgdGhlIGdlbmVyaWMgZml4dXAgaGFuZGxpbmcgY29kZSBvdXQgb2YgY3B1L21wYzV4eHggYW5kIGNwdS9tcGM4MjYwCiAgICBpbnRvIGNvbW1vbi9mZHRfc3VwcG9ydC5jIGFuZCByZW5hbWVkOgoKICAgIGRvX2ZpeHVwKCkJLT4gZG9fZml4dXBfYnlfcGF0aCgpCiAgICBkb19maXh1cF91MzIoKQktPiBkb19maXh1cF9ieV9wYXRoX3UzMigpCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBmNzM4YjRhNzU5OThmNDJhNzQwOGRlZmFkYzliYWFjN2EzMWM5MmRiCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVGh1IE9jdCAyNSAxNjoxNTowNyAyMDA3IC0wNTAwCgogICAgTWFrZSBubyBvcHRpb25zIHRvIGZkdCBwcmludCBkZWZhdWx0IHRvICcvJwoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYTNjMjkzM2UwMjUwM2ZlMzZhZGUyYzFiNjVhZjQ2ZjJiN2ExNjhlNwpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVdlZCBPY3QgMjQgMTA6MjE6NTcgMjAwNyAtMDUwMAoKICAgIFJlbW92ZWQgc29tZSBub251c2VkIGZkdCBmdW5jdGlvbnMgYW5kIG1vdmVkIGZkdF9maW5kX2FuZF9zZXRwcm9wIG91dCBvZiBsaWJmZHQKCiAgICBSZW1vdmVkOgoJZmR0X25vZGVfaXNfY29tcGF0aWJsZQoJZmR0X2ZpbmRfbm9kZV9ieV90eXBlCglmZHRfZmluZF9jb21wYXRpYmxlX25vZGUKCiAgICBUbyBlYXNlIG1lcmdlIG9mIG5ld2VyIGxpYmZkdCBhcyB3ZSBhcmVuJ3QgdXNpbmcgdGhlbSBhbnl3aGVyZSBhdCB0aGlzIHRpbWUuCgogICAgQWxzbyBtb3ZlZCBmZHRfZmluZF9hbmRfc2V0cHJvcCBvdXQgb2YgbGliZmR0IGludG8gZmR0X3N1cHBvcnQuYyBmb3IgdGhlIHNhbWUKICAgIHJlYXNvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgoKY29tbWl0IDk4ZTI4NjdjYzg1NDA5YjkxOWY4NjJlNmMxNjAyNjQ2MWVjOTU1ZGYKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVdlZCBOb3YgMjEgMDk6MTk6MzcgMjAwNyAtMDcwMAoKICAgIFtCVUlMRF0gUmVtb3ZlIGxpYnJhcmllcyB3aGVuIHVwZGF0aW5nIGF1dG9jb25mLm1rCgogICAgRml4IGxpYnJhcnkgcHJvYmxlbXMgY2F1c2VkIGJ5IGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uLiAgVXNpbmcKICAgIGF1dG9jb25mLm1rIHRvIGRlY2lkZSB3aGljaCBmaWxlcyB0byBjb21waWxlIGhhcyBjYXVzZWQgYSBwcm9ibGVtIHdoZW4KICAgIGNoYW5naW5nIGNvbmZpZ3VyYXRpb24gZnJvbSBvbmUgYm9hcmQgdG8gYW5vdGhlciB3aXRob3V0IGNsZWFyaW5nIG91dAogICAgdGhlIGxpYnJhcnkgKCouYSkgZmlsZXMuCgogICAgSXQgdXNlZCB0byBiZSB0aGF0IHRoZSBsaW5rZXIgd2FzIGFsd2F5cyBwYXNzZWQgdGhlIHNhbWUgbGlzdCBvZiAubwogICAgZmlsZXMgd2hlbiBidWlsZGluZyB0aGUgLmEgZmlsZXMuICBIb3dldmVyLCB0aGF0IGlzIG5vdCBsb25nZXIgdHJ1ZQogICAgd2l0aCBjb25kaXRpb25hbCBjb21waWxhdGlvbi4gIE5vdywgYSBkaWZmZXJlbnQgYm9hcmQgY29uZmlnIHdpbGwgaGF2ZQogICAgYSBkaWZmZXJlbnQgZmlsZSBsaXN0IHBhc3NlZCB0byB0aGUgbGlua2VyLiAgVGhlIHByb2JsZW0gb2NjdXJzIHdoZW4KICAgIGEgbGlicmFyeSBoYXMgYWxyZWFkeSBiZWVuIGJ1aWx0IGFuZCB0aGUgYm9hcmQgY29uZmlnIGlzIGNoYW5nZWQuCgogICAgU2luY2UgdGhlIGxpbmtlciB3aWxsIHVwZGF0ZSBpbnN0ZWFkIG9mIHJlcGxhY2UgYSBwcmVleGlzdGluZyBsaWJyYXJ5LAogICAgdGhlbiBpZiB0aGUgZmlsZSBsaXN0IGNoYW5nZXMgdG8gcmVtb3ZlIHNvbWUgb2JqZWN0IGZpbGVzIHRoZSBvbGQKICAgIG9iamVjdHMgd2lsbCBzdGlsbCBleGlzdCBpbiB0aGUgbGlicmFyeS4KCiAgICBUaGUgc29sdXRpb24gaXMgdG8gcmVtb3ZlIGFsbCBvbGQgbGlicmFyeSBmaWxlcyB3aGVuIGF1dG9jb25mLm1rIGlzCiAgICBtYWRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBlZDEzNTNkNzRiOWNlOGE3ZmNkNjYwNTcwYjg0OGExODRkNjE0YjVmCkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJV2VkIE5vdiAyMSAwODo0OTo1MCAyMDA3IC0wNjAwCgogICAgW0JVSUxEXSBjb25kaXRpb25hbGx5IGNvbXBpbGUgbGliZmR0LyouYyBpbiBsaWJmZHQvTWFrZWZpbGUKCiAgICBNb2RpZnkgbGliZmR0L01ha2VmaWxlIHRvIGNvbmRpdGlvbmFsbHkgY29tcGlsZSB0aGUgKi5jIGZpbGVzIGJhc2VkCiAgICBvbiB0aGUgYm9hcmQgY29uZmlnLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgNGE0MzcxOWE3NzM4NzEyODExZDgyMmNhODEyNTQyN2IyN2E1NWNkYwpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJTW9uIFNlcCAyNCAwOTowNTozMSAyMDA3IC0wNjAwCgogICAgW0JVSUxEXSBjb25kaXRpb25hbGx5IGNvbXBpbGUgY29tbW9uL2NtZF8qLmMgaW4gY29tbW9uL01ha2VmaWxlCgogICAgTW9kaWZ5IGNvbW1vbi9NYWtlZmlsZSB0byBjb25kaXRpb25hbGx5IGNvbXBpbGUgdGhlIGNtZF8qLmMgZmlsZXMgYmFzZWQKICAgIG9uIHRoZSBib2FyZCBjb25maWcuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDJmMTU1ZjZjMGExZjVlOWEzMDZhM2YxZjRmYmUwNjdkYjdjZWQzYjEKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CU1vbiBTZXAgMjQgMDk6MDU6MzEgMjAwNyAtMDYwMAoKICAgIFtCVUlMRF0gR2VuZXJhdGUgaW5jbHVkZS9hdXRvY29uZi5tayBmcm9tIGJvYXJkIGNvbmZpZyBmaWxlcwoKICAgIFVzZSBjcHAgYW5kIHNlZCB0byBwb3N0cHJvY2VzcyBjb25maWcuaCBhbmQgaW1wb3J0IHRoZSBkZWZpbmVkIHZhbHVlcwogICAgaW50byBpbmNsdWRlL2F1dG9jb25mLm1rLiAgYXV0b2NvbmYubWsgaXMgdGhlbiBpbmNsdWRlZCBieSBjb25maWcubWsgdG8KICAgIGdpdmUgJ21ha2UnIGFjY2VzcyB0byB0aGUgYm9hcmQgY29uZmlndXJhdGlvbi4KCiAgICBEb2luZyB0aGlzIGVuYWJsZXMgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gYXQgdGhlIE1ha2VmaWxlIGxldmVsIGluc3RlYWQKICAgIG9mIGJ5IHdyYXBwaW5nIGV2ZXJ5IC5jIGZpbGUgd2l0aCAjaWZkZWYvI2VuZGlmIHdyYXBwZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA2OGI4ODk5OWRhODdhYjg4ZTcxZTEzMDYxOTI5MDViZTM0NTAxOThlCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE5vdiAyMCAxNTowMjoyNiAyMDA3IC0wNjAwCgogICAgODYxMEhQQ0Q6IEVuYWJsZSB0aGUgODYxMCBEaXNwbGF5IEludGVyZmFjZSBVbml0CgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3NGY4OWZhYTlkMWU3N2VkOTQ3ZTYyOGQzZWZmYWE1MTNmZTA1ZDA1CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE5vdiAyMCAxNTowMDo1MyAyMDA3IC0wNjAwCgogICAgTW92ZSA4NjEwIERJVSBpbnRlcmZhY2Ugc3RydWN0dXJlIGRlZmluaXRpb25zIHRvIGhlYWRlciBmaWxlLgoKICAgIFRoZXNlIHR3byBzdHJ1Y3R1cmVzIGFyZSBzdGlsbCBuZWVkZWQgZHVyaW5nIHRoZQogICAgaW5pdGlhbGl6YXRpb24gYW5kIHNldHVwIG9mIHRoZSBESVUgaGFyZHdhcmUuCiAgICBTbyBtb3ZlIHRoZW0gdG8gdGhlIGZzbF9kaXVfZmIuaCBmaWxlIGZvciBub3cuCiAgICBPZmZpY2lhbCAiYmxhaCIuCgogICAgTm90aWNlZC1ieTogWW9yayBTdW4gPHlvcmtzdW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDgwYzY0NmRiZjQ3NGExMDljM2Y4NTcxOGZiMDFjZTA0MmEzOGM0NQpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVR1ZSBOb3YgMjAgMjA6MTQ6MTggMjAwNyArMDEwMAoKICAgIGRyaXZlcnMvaTJjIDogbW92ZSBpMmMgZHJpdmVycyB0byBkcml2ZXJzL2kyYwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOWEzMzdkZGMxNTRhMTBhMjZmMTE3ZmQxNDdiMDA5YWJjZGViYTc1YQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMTkgMjI6MjA6MjQgMjAwNyArMDEwMAoKICAgIFByZXBhcmUgZm9yIDEuMy4wIHJlbGVhc2UuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmMzBhZDQ5YjE2YmY5OThiMDNjMWE1MjI4YjZjODYzNjlkNjFjMjU4CkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE5vdiAxOSAxMDowMjoxMyAyMDA3IC0wNTAwCgogICAgTW92ZSBDT05GSUdfUUUgb3V0IG9mIENPTkZJR19QQ0kgd3JhcCBmb3IgTVBDODU2OE1EUwoKICAgIENPTkZJR19RRSBzaG91bGRuJ3QgYmUgaW4gdGhlIHdyYXAgb2YgQ09ORklHX1BDSSwgZml4IGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjhjMzIwNjA5MzY2MTc2YjMxMTA0ZDliZjVlMjk1MjMyZTFjN2YxZApBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJTW9uIE5vdiAxOSAxMToxNDoxNiAyMDA3ICswOTAwCgogICAgW01JUFNdIGJvYXJkL2d0aDIvbG93bGV2ZWxfaW5pdC5TOiBGaXggYSBidWlsZCB3YXJuaW5nCgogICAgbG93bGV2ZWxfaW5pdC5TOiBBc3NlbWJsZXIgbWVzc2FnZXM6CiAgICBsb3dsZXZlbF9pbml0LlM6NDEzOiBXYXJuaW5nOiBQcmV0ZW5kaW5nIGdsb2JhbCBzeW1ib2wgdXNlZCBhcyBicmFuY2ggdGFyZ2V0IGlzIGxvY2FsLgoKICAgIExvb2tpbmcgYXQgY29kZXMsIHRoZSBgbWVtdGVzdCcgYW5kIGBjbGVhcm1lbScgYXJlIGludGVudGlvbmFsIG1peGVkCiAgICB1c2Ugb2YgYGdsb2JhbCBzeW1ib2xzJyBhbmQgYGxhYmVsJyBmb3IgZGVidWdnaW5nIHB1cnBvc2UuIFRvIG1ha2UgaXQKICAgIGJ1aWxkLCBqdXN0IGRpc2FibGUgZ2xvYmFsLXN5bWJvbHMtdXNlIGZvciBub3cuIEFzIGEgcmVzdWx0IGBtZW10ZXN0JwogICAgc3RpbGwgcmVtYWlucyBhcyB1bnVzZWQsIGJ1dCBsZWF2ZSBpdCBiZS4uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KCmNvbW1pdCBlOGRhNThmMmJjMDkyODkxZThjYzkyYjkyN2VkNWM0YmQwY2IwY2FiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAxOSAxMjo1OToxNCAyMDA3ICswMTAwCgogICAgRml4IGJ1aWxkIHByb2JsZW1zIHdpdGggbXAydXNiIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2YmY0YzY4NmFmY2ExZTg2ZTFjMzg0ZDU5MjE4ZjkxNDYwNTcxM2JmCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU3VuIE5vdiAxOCAxODozNjoxMSAyMDA3ICswMTAwCgogICAgczNjMjR4MDogRml4IHVzYl9vaGNpLmMgbWlzc2luZyBpbiBNYWtlZmlsZQogICAgYW5kIHVzYl9vaGNpLmMgd2FybmluZyBkaWZmZXIgaW4gc2lnbmVkbmVzcwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNjA3M2Y2MWUwNzhkYTVkZGI1MjFiNTYyNTZiY2MzNjUwODU4OTg4MwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVN1biBOb3YgMTggMTI6NTU6MDIgMjAwNyArMDEwMAoKICAgIHBiMXgwMCBib2FyZDogRml4IHUxNiBzdGF0dXMgZGVjbGFyYXRpb24gd2hlbiBQQ01DSUEgaXMgZGVmaW5lZAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgODQxMmQ4MTRjZThiZjU1NzBhMmI3NDdmMWU3ZmQzMjEwOTdmZTk4NwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBOb3YgMTggMTc6MTE6MDkgMjAwNyArMDEwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyBmb3IgQVJNIHN5c3RlbXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA0MDllY2RjMGJiNDdkZDI4YjBhZjZjMjVmZmQ2NThkMjJjYzM2YjM3CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIE5vdiAxOCAxNjozNjoyNyAyMDA3ICswMTAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIGZvciBQUEMgc3lzdGVtcy4gVXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDY1MzgxMWEzYzJiMzU4NTZiZjEyZTE5NmRjYzhjNDY5NGUyOGU0MjAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVN1biBOb3YgMTggMTQ6NDQ6NDQgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQ29ycmVjdCA0MDVFWCBQQ0llIFVUTCByZWdpc3RlciBtYXBwaW5nCgogICAgTWFwIDRrIG1lbSBzcGFjZSBmb3IgVVRMIHJlZ2lzdGVycyBmb3IgZWFjaCBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwNzljMmM0ZmE3MWMwZDFlYmVmMzk0NTA4ZGY5MDg4ZGY4YTMwOGQzCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJU2F0IE5vdiAxNyAxMTozMToxMCAyMDA3ICswMTAwCgogICAgRml4IHdhcm5pbmcgZGlmZmVyIGluIHNpZ25lZG5lc3MgaW4gbmV0L25ldC5jIGFuZCBuZXQvbmZzLmMKCmNvbW1pdCA3ZTE0ZmM2NTM2OGNiZDI4NjFiMTIwNzQ1M2RhNTVhNGZjN2IzZjgxCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IE5vdiAxNyAyMDo0Mjo0NSAyMDA3ICswOTAwCgogICAgZ3RoMi5jOiBGaXggYSB3YXJuaW5nIG9uIGd0aDIgYnVpbGQuCgogICAgZ3RoMi5jOiBJbiBmdW5jdGlvbiAnbWlzY19pbml0X3InOgogICAgZ3RoMi5jOjQzNDogd2FybmluZzogcG9pbnRlciB0YXJnZXRzIGluIHBhc3NpbmcgYXJndW1lbnQgMiBvZiAnc2V0ZW52JyBkaWZmZXIgaW4gc2lnbmVkbmVzcwoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgMjMwOWMxMzBhYTRjODRiOTFiZDg3NGE0MTI2OWM5MjNlYjYxYjU1NQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE5vdiAxNyAwNzo1ODoyNSAyMDA3ICswMTAwCgogICAgRml4IHdhcm5pbmcgZGlmZmVyIGluIHNpZ25lZG5lc3MgaW4gY29tbW9uL2NtZF9zY3NpLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOWVhNjFiNTc5Njg1NTRlYWYwZjQ3NGVjN2UwODhiMTdkMzY3ZjQ3NApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE5vdiAxNyAxNDo1MjoyOSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBVcGRhdGUgQU1DQyBLaWxhdWVhIGNvbmZpZyBmaWxlCgogICAgLSBVc2UgZ2VuZXJpYyBHUElPIGNvbmZpZ3VyYXRpb24gZnJhbWV3b3JrIChDRkdfNHh4X0dQSU9fVEFCTEUpCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDdlMWQ4ODRiN2NiNjAyMDA3MzI5YzUxN2VjMWM0NTNlM2E2YTVkOWMKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgTm92IDE3IDIwOjA1OjI2IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gY3B1L21pcHMvY29uZmlnLm1rOiBGaXggR05VIGFzc2VtYmxlciBtaW5vciB2ZXJzaW9uIHBpY2tlcgoKICAgIEN1cnJlbnQgdHJpY2sgdG8gcGljayB1cCBHTlUgYXNzZW1ibGVyIG1pbm9yIHZlcnNpb24gZG9lcyBub3Qgd29yayB3aXRoIHRoZQogICAgbGF0ZXN0IGJpbnV0aWxzICgyMDA3LTAzLTAxIG9yIGxhdGVyKSBkdWUgdG8gJHtQS0dWRVJTSU9OfSBub3cgZGVmYXVsdCB0bwogICAgIihHTlUgQmludXRpbHMpICIuCgogICAgICAkIHNkZS1hcyAtLXZlcnNpb24gfGdyZXAgIkdOVSBhc3NlbWJsZXIiCiAgICAgIEdOVSBhc3NlbWJsZXIgMi4xNS45NCBtaXBzc2RlLTYuMDIuMDItMjAwNTA2MDIKICAgICAgJCBzZGUtYXMgLS12ZXJzaW9uIHxncmVwICJHTlUgYXNzZW1ibGVyIiB8YXdrICd7cHJpbnQgJDN9JwogICAgICAyLjE1Ljk0CiAgICAgICQgc2RlLWFzIC0tdmVyc2lvbiB8Z3JlcCAiR05VIGFzc2VtYmxlciIgfGF3ayAne3ByaW50ICQzfScgfGF3ayAtRi4gJ3twcmludCAkMn0nCiAgICAgIDE1CiAgICAgICQKCiAgICAgICQgbWlwcy1saW51eC1hcyAtLXZlcnNpb24gfGdyZXAgIkdOVSBhc3NlbWJsZXIiCiAgICAgIEdOVSBhc3NlbWJsZXIgKEdOVSBCaW51dGlscykgMi4xOAogICAgICAkIG1pcHMtbGludXgtYXMgLS12ZXJzaW9uIHxncmVwICJHTlUgYXNzZW1ibGVyIiB8YXdrICd7cHJpbnQgJDN9JwogICAgICAoR05VCiAgICAgICQgbWlwcy1saW51eC1hcyAtLXZlcnNpb24gfGdyZXAgIkdOVSBhc3NlbWJsZXIiIHxhd2sgJ3twcmludCAkM30nIHxhd2sgLUYuICd7cHJpbnQgJDJ9JwogICAgICAobm8gb3V0cHV0KQogICAgICAkCgogICAgQXMgYSByZXN1bHQgb2YgYWJvdmUsIHlvdSdsbCBzZWUgbWFueSBub2lzZXMgd2l0aCBzdWNoIGJpbnV0aWxzOgoKICAgICAgbWFrZSAtQyBjcHUvbWlwcy8KICAgICAgL2Jpbi9zaDogbGluZSAwOiBbOiA6IGludGVnZXIgZXhwcmVzc2lvbiBleHBlY3RlZAogICAgICAvYmluL3NoOiBsaW5lIDA6IFs6IDogaW50ZWdlciBleHByZXNzaW9uIGV4cGVjdGVkCiAgICAgIG1ha2VbMV06IEVudGVyaW5nIGRpcmVjdG9yeSBgL2hvbWUvc2t1cmliYXkvZGV2ZWwvdS1ib290LmdpdC9jcHUvbWlwcycKICAgICAgbWlwcy1saW51eC1nY2MgIC1EX19BU1NFTUJMWV9fIC1nICAtT3MgICAtRF9fS0VSTkVMX18gLURURVhUX0JBU0U9MHhCMDAwMDAwMCAgLUkvaG9tZS9za3VyaWJheS9kZXZlbC91LWJvb3QuZ2l0L2luY2x1ZGUgLWZuby1idWlsdGluIC1mZnJlZXN0YW5kaW5nIC1ub3N0ZGluYyAtaXN5c3RlbSAvaG9tZS9za3VyaWJheS9kZXZlbC9idWlsZHJvb3QvYnVpbGRfbWlwcy9zdGFnaW5nX2Rpci91c3IvYmluLy4uL2xpYi9nY2MvbWlwcy1saW51eC11Y2xpYmMvNC4yLjEvaW5jbHVkZSAtcGlwZSAgLURDT05GSUdfTUlQUyAtRF9fTUlQU19fIC1HIDAgLW1hYmljYWxscyAtZnBpYyAtcGlwZSAtbXNvZnQtZmxvYXQgLW1hcmNoPTRrYyAtbXR1bmU9NGtjIC1FQiAtYyAtbyBpbmNhaXBfd2R0Lm8gaW5jYWlwX3dkdC5TCiAgICAgIC9iaW4vc2g6IGxpbmUgMDogWzogOiBpbnRlZ2VyIGV4cHJlc3Npb24gZXhwZWN0ZWQKICAgICAgbWlwcy1saW51eC1nY2MgIC1EX19BU1NFTUJMWV9fIC1nICAtT3MgICAtRF9fS0VSTkVMX18gLURURVhUX0JBU0U9MHhCMDAwMDAwMCAgLUkvaG9tZS9za3VyaWJheS9kZXZlbC91LWJvb3QuZ2l0L2luY2x1ZGUgLWZuby1idWlsdGluIC1mZnJlZXN0YW5kaW5nIC1ub3N0ZGluYyAtaXN5c3RlbSAvaG9tZS9za3VyaWJheS9kZXZlbC9idWlsZHJvb3QvYnVpbGRfbWlwcy9zdGFnaW5nX2Rpci91c3IvYmluLy4uL2xpYi9nY2MvbWlwcy1saW51eC11Y2xpYmMvNC4yLjEvaW5jbHVkZSAtcGlwZSAgLURDT05GSUdfTUlQUyAtRF9fTUlQU19fIC1HIDAgLW1hYmljYWxscyAtZnBpYyAtcGlwZSAtbXNvZnQtZmxvYXQgLW1hcmNoPTRrYyAtbXR1bmU9NGtjIC1FQiAtYyAtbyBjYWNoZS5vIGNhY2hlLlMKICAgICAgL2Jpbi9zaDogbGluZSAwOiBbOiA6IGludGVnZXIgZXhwcmVzc2lvbiBleHBlY3RlZAogICAgICBtaXBzLWxpbnV4LWdjYyAtZyAgLU9zICAgLURfX0tFUk5FTF9fIC1EVEVYVF9CQVNFPTB4QjAwMDAwMDAgIC1JL2hvbWUvc2t1cmliYXkvZGV2ZWwvdS1ib290LmdpdC9pbmNsdWRlIC1mbm8tYnVpbHRpbiAtZmZyZWVzdGFuZGluZyAtbm9zdGRpbmMgLWlzeXN0ZW0gL2hvbWUvc2t1cmliYXkvZGV2ZWwvYnVpbGRyb290L2J1aWxkX21pcHMvc3RhZ2luZ19kaXIvdXNyL2Jpbi8uLi9saWIvZ2NjL21pcHMtbGludXgtdWNsaWJjLzQuMi4xL2luY2x1ZGUgLXBpcGUgIC1EQ09ORklHX01JUFMgLURfX01JUFNfXyAtRyAwIC1tYWJpY2FsbHMgLWZwaWMgLXBpcGUgLW1zb2Z0LWZsb2F0IC1tYXJjaD00a2MgLW10dW5lPTRrYyAtRUIgLVdhbGwgLVdzdHJpY3QtcHJvdG90eXBlcyAtYyAtbyBhc2Nfc2VyaWFsLm8gYXNjX3NlcmlhbC5jCiAgICAgIC9iaW4vc2g6IGxpbmUgMDogWzogOiBpbnRlZ2VyIGV4cHJlc3Npb24gZXhwZWN0ZWQKCiAgICBUaGlzIHBhdGNoIHNpbXBsaWZpZXMgdGhlIHRyaWNrIGFuZCBtYWtlcyBpdCB3b3JrIHdpdGggYm90aCB2ZXJzaW9ucyBvZiBnYXMuCiAgICBJIGFsc28gcmVwbGFjZSBhbiBleHBlbnNpdmUgYGF3ayAob3IgZ2F3ayknIHdpdGggYGN1dCcuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCAxNjY2NGY3Mjg1MDg0NmU2NDU2MTZkYTFjMGZhNWFmY2Q2ZDE1ZjE1CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IE5vdiAxNyAyMDowNToyNiAyMDA3ICswOTAwCgogICAgW01JUFNdIFJlbW92ZSB1c2VsZXNzIGluc3RydWN0aW9ucyBmb3IgaW5pdGlhbGl6aW5nICRncC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDAzYzAzMWQ1NjYwZWE5NDZjMzlhZjZlMmUxNjI2N2RhODU3YzYwOWYKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgT2N0IDI3IDE1OjI3OjA2IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gTUlQUyA0SyBjb3JlOiBDb2Rpbmcgc3R5bGUgY2xlYW51cHMKCiAgICBObyBsb2dpY2FsIGNoYW5nZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBmNWU0MjlkMzg2MGJiYTRjNmFlOGJlYWQ4Zjc4MzQ5ZmEyNDQ5MWIyCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IE5vdiAxNyAyMDowNToyMCAyMDA3ICswOTAwCgogICAgW01JUFNdIGd0aDIuYzogRml4IGEgd2FybmluZyBvbiBndGgyIGJ1aWxkLgoKICAgIGd0aDIuYzogSW4gZnVuY3Rpb24gJ21pc2NfaW5pdF9yJzoKICAgIGd0aDIuYzo0MzQ6IHdhcm5pbmc6IHBvaW50ZXIgdGFyZ2V0cyBpbiBwYXNzaW5nIGFyZ3VtZW50IDIgb2YgJ3NldGVudicgZGlmZmVyIGluIHNpZ25lZG5lc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDRmYmQwNzQxYjJiNjQ0MWRhMTBiZTkzZTEwMjY3MTIyNTgxYjcwNzkKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgT2N0IDI3IDE1OjIyOjMzIDIwMDcgKzA5MDAKCiAgICBbTUlQU10gYXUxeDAwX2V0aC5jOiBGaXhlZCBhIHdhcm5pbmcgb24gcGIxMDAwIGJ1aWxkLgoKICAgIGF1MXgwMF9ldGguYzogSW4gZnVuY3Rpb24gJ2F1MXgwMF9taWlwaHlfd3JpdGUnOgogICAgYXUxeDAwX2V0aC5jOjEzOTogd2FybmluZzogJ3JldHVybicgd2l0aCBubyB2YWx1ZSwgaW4gZnVuY3Rpb24gcmV0dXJuaW5nIG5vbi12b2lkCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBmMDEzMjA0NTk3MzZmMTU2NzA3NDI1Y2Y4MTEyZjk4NjA2MzAxYWE0CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IE9jdCAyNyAxNTowMDoyNSAyMDA3ICswOTAwCgogICAgW01JUFNdIGF1MXgwMF9ldGguYzogRml4IGF1MXgwMF9taWlwaHlfe3JlYWQsd3JpdGV9IGJ1aWxkIGVycm9yCgogICAgYXUxeDAwX2V0aC5jOiBJbiBmdW5jdGlvbiAnYXUxeDAwX2VuZXRfaW5pdGlhbGl6ZSc6CiAgICBhdTF4MDBfZXRoLmM6MjQ2OiBlcnJvcjogJ2F1MXgwMF9taWlwaHlfcmVhZCcgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICBhdTF4MDBfZXRoLmM6MjQ2OiBlcnJvcjogKEVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZQogICAgYXUxeDAwX2V0aC5jOjI0NjogZXJyb3I6IGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4uKQogICAgYXUxeDAwX2V0aC5jOjI0NjogZXJyb3I6ICdhdTF4MDBfbWlpcGh5X3dyaXRlJyB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgIGF1MXgwMF9ldGguYzogSW4gZnVuY3Rpb24gJ2F1MXgwMF9taWlwaHlfd3JpdGUnOgogICAgYXUxeDAwX2V0aC5jOjI5ODogd2FybmluZzogJ3JldHVybicgd2l0aCBubyB2YWx1ZSwgaW4gZnVuY3Rpb24gcmV0dXJuaW5nIG5vbi12b2lkCiAgICBtYWtlWzFdOiAqKiogW2F1MXgwMF9ldGgub10gRXJyb3IgMQoKICAgIEZpeGVkIGJ5IG1vdmluZyB0aGVzZSB0d28gZnVuY3Rpb25zIGZvcndhcmQuCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KCmNvbW1pdCBiMDkyNThjNTM5M2VkZDEwODdjNWYzOWFlNjgzMzhmMTZiNDlmOGIzCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJU2F0IE9jdCAyNyAxNTowMDoyNSAyMDA3ICswOTAwCgogICAgTUFLRUFMTDogQWRkZWQgbWlzc2luZyBwYjEwMDAgYm9hcmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDJlNGE2ZTM2NjdhMWUzOWMwZTZlOTk0OTg2ODZiMTVkMjcxOGIzNjkKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgT2N0IDI3IDE1OjAwOjI0IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gcGIxMDAwOiBSZXBsYWNlIG9ic29sZXRlIG1lbXNldHVwLlMgd2l0aCBsb3dsZXZlbF9pbml0LlMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDY2MmU1Y2IzOTcyNDljM2VhODhhNGMzMjU1ZTljY2ZjNDBiOThkODIKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgpEYXRlOglTYXQgT2N0IDI3IDE1OjAwOjI0IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gdS1ib290LmxkczogQ2xlYW51cCBfX3VfYm9vdF9jbWRfe3N0YXJ0LGVuZH0KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNrdXJpYmF5QHJ1YnkuZHRpLm5lLmpwPgoKY29tbWl0IDU5NDdmNjk5OWFhZmE3YzU0YzEzOTA5ODNkMjY0YTg0NjNkZmVhOGUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgTm92IDE3IDAyOjM0OjM4IDIwMDcgKzAxMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9JRywgcHJlcGFyZSBmb3IgLXJjNAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZmQzMjllNmYwNWJiZGZlNmJkNzFiMGUwOWYwYzc2ZDNiMGEwMjVhNQpBdXRob3I6IEx1b3RhbyBGdSA8bC5mdUBwZW5ndXRyb25peC5kZT4KRGF0ZToJV2VkIE5vdiAxNCAxODo1ODozMyAyMDA3ICswMTAwCgogICAgRml4IHRoZSBpMmMgZnJlcXVlbmN5IGFuZCBkZWZhdWx0IGFkZHJlc3MgaW4gcnNkcHJvdG8gYm9hcmQKCiAgICByc2Rwcm90byBib2FyZCBzdXBwb3J0IGhhcyB3cm9uZyBJMkMgZnJlcXVlbmN5IGFuZCB3cm9uZyByZXR1cm4gdmFsdWUKICAgIGhhbmRsaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEx1b3RhbyBGdSA8bC5mdUBwZW5ndXRyb25peC5kZT4KCmNvbW1pdCA0MjljMTgwZWRhZDAzOGY5MWM5ODljYjE0YjQ3ODIyODA5MmU3MDU0CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE5vdiAxNyAwMTo0NTozOCAyMDA3ICswMTAwCgogICAgcG93ZXJwYzogQmFja291dCByZWxvY2F0aW9uIGNoYW5nZXMgZm9yIE1QQzUxMjEsIHRvby4KCiAgICBBcHBseSBHcmFudCBMaWtlbHkncyBiYWNrb3V0IHRvIE1QQzUxMjEgY29kZSwgdG9vLgoKICAgIFBvaW50ZWQgb3V0IGJ5IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAxYzNkZDQzMzM4YTA3NzE2NWU3ZTAzMDljYjM5OTRlNjVkMmJkYmY4CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgTm92IDEzIDIyOjE4OjMzIDIwMDcgLTA3MDAKCiAgICBwb3dlcnBjOiBCYWNrb3V0IHJlbG9jYXRpb24gY2hhbmdlcy4KCiAgICBVZ2guICBJICpoYXRlKiB0byBiYWNrIHRoaXMgY2hhbmdlIG91dCwgYnV0IHRoZXNlIGNvbXBpbGVyIGZsYWdzIGRvbid0CiAgICB3b3JrIGZvciByZWxvY2F0aW9uIG9uIGFsbCB2ZXJzaW9ucyBvZiBHQ0MuICBJJ3ZlIG5vdCBiZWVuIGFibGUgdG8KICAgIHJlcHJvZHVjZSB0aGUgZW52aXJvbm1lbnQgaW4gbXkgc2V0dXAgKGFuZCBoZW5jZSwgbm90IGJlZW4gYWJsZSB0bwogICAgZmluZCBhIGNvbWJpbmF0aW9uIHRoYXQgKmRvZXMqIHdvcmspLCBzbyBJJ3ZlIGdvdCBubyBjaG9pY2UgYnV0IHRvIGdvCiAgICBiYWNrIHRvIHRoZSBvbGQgZ2NjIGZsYWdzIGFuZCBsaW5rZXIgc2NyaXB0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA1YzE1MDEwZWZhZDk4MGFkNTQ5OGNjNTY1ZmMxZWQ3MGRmMmY1MmI0CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJVHVlIE5vdiAxMyAwOToxMTowNSAyMDA3ICswMTAwCgogICAgRml4ZWQgbWlwc19pb19wb3J0X2Jhc2UgYnVpbGQgZXJyb3JzLgoKICAgIFRoaXMgcGF0Y2ggaGFzIGJlZW4gc2VudCBvbjoKICAgIC0gMjkgU2VwIDIwMDcKCiAgICBBbHRob3VnaCBtaXBzX2lvX3BvcnRfYmFzZSBpcyBjdXJyZW50bHkgYSBwYXJ0IG9mIElERSBjb21tYW5kLCBpdCBpcyBxdWl0ZQogICAgZnVuZGFtZW50YWwgZm9yIE1JUFMgSS9PIHBvcnQgYWNjZXNzIHN1Y2ggYXMgaW5bYndsXSBhbmQgb3V0W2J3bF0uIFNvIG1vdmUKICAgIGl0IHRvIE1JUFMgZ2VuZXJhbCBwYXJ0LCBhbmQgaW50cm9kdWNlIGBzZXRfaW9fcG9ydF9iYXNlKCknIGZyb20gTGludXguCgogICAgVGhpcyBwYXRjaCBpcyB0cmlnZ2VyZWQgYnkgbXVsdGlwbGUgZGVmaW5pdGlvbiBvZiBgbWlwc19pb19wb3J0X2Jhc2UnIGJ1aWxkCiAgICBlcnJvciBvbiBndGgyIChhbmQgdGIwMjI5IGFsc28gbmVlZHMgdGhpcyBmaXguKQoKICAgIGJvYXJkL2d0aDIvbGliZ3RoMi5hKGd0aDIubyk6IEluIGZ1bmN0aW9uIGBsb2dfc2VyaWFsX2NoYXInOgogICAgL2hvbWUvc2t1cmliYXkvZGV2ZWwvdS1ib290LmdpdC9ib2FyZC9ndGgyL2d0aDIuYzo0NzogbXVsdGlwbGUgZGVmaW5pdGlvbiBvZiBgbWlwc19pb19wb3J0X2Jhc2UnCiAgICBjb21tb24vbGliY29tbW9uLmEoY21kX2lkZS5vKTovaG9tZS9za3VyaWJheS9kZXZlbC91LWJvb3QuZ2l0L2NvbW1vbi9jbWRfaWRlLmM6NzEyOiBmaXJzdCBkZWZpbmVkIGhlcmUKICAgIG1ha2U6ICoqKiBbdS1ib290XSBFcnJvciAxCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNmVjYmI3YTNmYTliMDk0MGVkMzNlNDkwZDE5NWQ0YjY4MzBiMjQyMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBOb3YgMTcgMDE6MzA6NDAgMjAwNyArMDEwMAoKICAgIEZpeCBhIGJ1ZyBpbiB0aGUgc2xhdmUgc2VyaWFsIHByb2dyYW1taW5nIG1vZGUgZm9yIHRoZSBYaWxpbngKICAgIFNwYXJ0YW4yLzMgRlBHQXMuIFRoZSBvbGQgY29kZSB1c2VkICI8IDAiIG9uIGEgImNoYXIiIHR5cGUgdG8gdGVzdCBpZgogICAgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0IHdhcyBzZXQsIHdoaWNoIGRpZCBub3Qgd29yayBvbiBhbnkKICAgIGFyY2hpdGVjdHVyZSB3aGVyZSAiY2hhciIgZGVmYXVsdGVkIHRvIGJlIGFuIHVuc2lnbmVkIHR5cGUuCgogICAgQmFzZWQgb24gYSBwYXRjaCBieSBBbmdlbG9zIE1hbm91c2FyaWRpcyA8YW1hbm91c0BpbmFjY2Vzc25ldHdvcmtzLmNvbT4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGQwOGI3MjMzYmMyNTJmYWFkODMzOWU3Y2EwZGRmZDYyZmE3OTkwM2MKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDEgMTI6MjM6MjkgMjAwNyAtMDUwMAoKICAgIDg2eHg6IEZpeCBicm9rZW4gdmFyaWFibGUgcmVmZXJlbmNlIHdoZW4gI2RlZiBERUJVR2luZy4KCiAgICBTb21ldGltZXMgeW91IGNhbid0IHJlZmVyZW5jZSB0aGUgRERSMiBjb250cm9sbGVyIHZhcmlhYmxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY5ZDkxNjRkOWM2YjVhN2YwMzkzZmQ4ZDdlMjQ2YjhhMDMyNmJjMTkKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDI2IDE4OjMyOjAwIDIwMDcgKzA4MDAKCiAgICBtYWtlIDg2MTAgYm9hcmQgdXNlIHBpeGlzIHJlc2V0CgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkYjc0YjNjMWM5NDgxYTZiZmZiZjhjZDQ0NWU1YmNiZjY5MDhlODM2CkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE9jdCAyOSAxOToyNjoyMSAyMDA3ICswODAwCgogICAgVW5pZnkgcGl4aXNfcmVzZXQgYWx0YmFuayBhY3Jvc3MgYm9hcmQgZmFtaWxpZXMKCiAgICBCYXNpY2FsbHksIHJlZmFjdG9yIHRoZSBDRkdfUElYSVNfVkJPT1RfTUFTSyB2YWx1ZXMKICAgIGludG8gdGhlIHNlcGFyYXRlIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2NGJmNTU1NDY1Yzc5MjZiZTEzZTEwNDZhYzBkMGYwNWFjNzI4MjljCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIE5vdiA3IDA4OjE5OjIxIDIwMDcgKzAxMDAKCiAgICBGaXggd2FybmluZzogcG9pbnRlciB0YXJnZXRzIGluIGFzc2lnbm1lbnQgZGlmZmVyIGluIHNpZ25lZG5lc3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDdhNjBlZTdjNjI0OGE5NThjNTc1N2QzNjYwYTE3MDI3MjNhMjc4NmQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglXZWQgTm92IDcgMDg6MTk6MTkgMjAwNyArMDEwMAoKICAgIEZpeCB3YXJuaW5nIGRpZmZlciBpbiBzaWduZWRuZXNzIGluIGNvbW1vbi9jbWRfaWRlLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGYzMWQzOGI5ZWVhOWIzMmY2YTFhYzg0OGEyOThjYzcxY2E0YzlhMDMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBOb3YgMTYgMTQ6MTY6NTQgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogRW5hYmxlIDQwNUVYIFBDSWUgVVRMIHJlZ2lzdGVyIGNvbmZpZ3VyYXRpb24KCiAgICBUaWxsIG5vdyB0aGUgVVRMIHJlZ2lzdGVycyBvbiA0MDVFWCB3ZXJlIG5vdCBpbml0aWFsaXplZCBidXQgbGVmdCB3aXRoCiAgICB0aGVpciBkZWZhdWx0IHZhbHVlcy4gVGhpcyBwYXRjaCBuZXcgaW5pdGlhbGl6ZXMgc29tZSBvZiB0aGUgVVRMCiAgICByZWdpc3RlcnMgb24gNDA1RVguCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGVjZGNiZDRmOGMxZjhjZWZkNzg1NzUyZjRlNzUzNmFhZTJhNGVjZjkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBOb3YgMTYgMTQ6MDA6NTkgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogVXBkYXRlIEFNQ0MgTWFrYWx1IGZvciBib2FyZCByZXYgMS4xCgogICAgVGhpcyBwYXRjaCBhZGRzIGNoYW5nZXMgbmVlZGVkIGZvciBNYWthbHUgcmV2IDEuMToKCiAgICAtIEVuYWJsZSAybmQgRERSMiBiYW5rIHJlc3VsdGluZyBpbiAyNTZNQnl0ZSBvZiBTRFJBTQogICAgLSBFbmFibGUgMm5kIGV0aGVybmV0IHBvcnQgRU1BQzEKICAgIC0gVXNlIGdlbmVyaWMgR1BJTyBjb25maWd1cmF0aW9uIGZyYW1ld29yayAoQ0ZHXzR4eF9HUElPX1RBQkxFKQogICAgLSBSZXNldCBQQ0llIHBvcnRzIHZpYSBHUElPIHVwb24gYm9vdHVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDRkNGZhYWU2NWUxMTVlMzI3NDI1Y2Q1MTRjMWEzNTE0NmE4NTE2NmIKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CU1vbiBTZXAgMjQgMDk6MDU6MzEgMjAwNyAtMDYwMAoKICAgIEdyb3VwIFBDSSBhbmQgUENNQ0lBIGRyaXZlcnMgaW4gZHJpdmVycy9NYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA1Nzk4Zjg3ZGMxMGE0OTZkNzlkMzE3N2I5ZjVhNzY0ODg5ODdmZDM1CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglNb24gU2VwIDI0IDA5OjA1OjMxIDIwMDcgLTA2MDAKCiAgICBHcm91cCBibG9jay9mbGFzaCBkcml2ZXJzIGluIGRyaXZlcnMvTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZGY1OGM4MTU1MTcwMGYwNThiNDRjYWNmNTVhNzk5N2ZhNjNiZmUwYQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJTW9uIFNlcCAyNCAwOTowNTozMSAyMDA3IC0wNjAwCgogICAgR3JvdXAgVVNCIGRyaXZlcnMgaW4gZHJpdmVycy9NYWtlZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA1ZGJiNmVkNjIyZTUzOWIwYzg0OTNlZjdlNTc4ZDNhNTMzMTgxZDI5CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglNb24gU2VwIDI0IDA5OjA1OjMwIDIwMDcgLTA2MDAKCiAgICBHcm91cCBpMmMgZHJpdmVycyBpbiBkcml2ZXJzL01ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGVjMDBjNzZkZTBlNTk3MTI3MzkwNTk5OGQ2MmQ2YmIxMTkzMjQyMTgKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CU1vbiBTZXAgMjQgMDk6MDU6MzAgMjAwNyAtMDYwMAoKICAgIEdyb3VwIGNvbnNvbGUgZHJpdmVycyBpbiBkcml2ZXJzL01ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDc1NGYyMzBhYTAxYjhjNzg5ZmMzMWY4MDEzYzI0ODc5NTQwNzMzMDAKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CU1vbiBTZXAgMjQgMDk6MDU6MzAgMjAwNyAtMDYwMAoKICAgIEdyb3VwIG5ldHdvcmsgZHJpdmVycyBpbiBkcml2ZXJzL01ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGYwMDM3YzU2YjBkMTJjZDQ2MjE1MTI0NjY3YjlmODNkNjBlZjkzOTEKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CU1vbiBTZXAgMjQgMDk6MDU6MzAgMjAwNyAtMDYwMAoKICAgIEJ1aWxkOiBzcGxpdCBDT0JKUyB2YWx1ZSBpbnRvIG11bHRpcGxlIGxpbmVzCgogICAgVGhpcyBjaGFuZ2UgaXMgaW4gcHJlcGFyYXRpb24gZm9yIGNvbmR0aXRpb25pYWwgY29tcGlsZSBzdXBwb3J0IGluIHRoZQogICAgYnVpbGQgc3lzdGVtLiAgQnkgc3BsaXRpbmcgdGhlbSBhbGwgaW50byBzZXBlcmF0ZSBsaW5lcyBub3csIHN1YnNlcXVlbnQKICAgIHBhdGNoZXMgdGhhdCBjaGFuZ2UgJ0NPQkpTLXkgKz0gJyBpbnRvICdDT0JKUy0kKENPTkZJR188YmxhaD4pICs9ICcgd2lsbAogICAgYmUgbGVzcyBpbnZhc2l2ZSBhbmQgZWFzaWVyIHRvIHJldmlldwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAxYjRhYWZmZTRmYjJhNWU5NWQ5MTExYTVkOTRmZDFmODkyMTVkY2U0CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglNb24gU2VwIDI0IDA5OjA1OjMwIDIwMDcgLTA2MDAKCiAgICBBZGQgLmdpdGlnbm9yZSBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KICAgIEFja2VkLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk1NTQxM2YzNWYwNTRhODJlNDAwNDJmMWRiY2Y1MDFjNmEwNTcxOWIKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVRodSBOb3YgMTUgMDg6Mjc6NTIgMjAwNyAtMDcwMAoKICAgIFJldmVydCAiQ29ycmVjdCByZWxvY2F0aW9uIGZpeHVwIGZvciBtcGM1eHgiCgogICAgVGhpcyByZXZlcnRzIGNvbW1pdCAzNjQ5Y2Q5OWJhODE1YjY2MDE4Njg3MzU3NjU2MDJmMDBlZjM2OTJiLgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGUxNTYzMzg4OGEwNThhYWNiMzFhNjJkMmNmMTI3OGUxZTRjMjM2YWIKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVRodSBOb3YgMTUgMDg6MjQ6MzIgMjAwNyAtMDcwMAoKICAgIFJldmVydCAiQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uIGZvciBNUEM1eHh4IgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNmY3NTc2YjIwZWNmMGQwNDBjM2FjM2IwMzJiNWNiYzg2MGUzOGE5MC4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAxMzkzNjVmYmU1NjZkMGZjNjE5YTFlZDA0NDUyZWM1Mzg4ZjBjZWY4CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUaHUgTm92IDE1IDA4OjIxOjA0IDIwMDcgLTA3MDAKCiAgICBSZXZlcnQgIkNvcnJlY3QgZml4dXAgcmVsb2NhdGlvbiBmb3IgbXBjODIyMCIKCiAgICBUaGlzIHJldmVydHMgY29tbWl0IGE4NWRkMjU0YzA1NzdmY2ExMzYyN2M0NmU5M2ZjMmFkNGM0ZjFmMDAuCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNzA5MjIzNDIzNjllNWUzOWIyODZmZTIxZTc2OGEyMzljYTA3YTUxNApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVGh1IE5vdiAxNSAwODoyMDo1NyAyMDA3IC0wNzAwCgogICAgUmV2ZXJ0ICJDb3JyZWN0IGZpeHVwIHJlbG9jYXRpb24gZm9yIG1wYzgyNHgiCgogICAgVGhpcyByZXZlcnRzIGNvbW1pdCBmM2E1MmZlMDU5MjM5MzVkYjg2OTg1ZGFmOTQzOGUyZjcwYWMzOWFhLgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDk2Mjc5YWI0Y2FkNjBjYjU5NzJhYTkzNGZiZTQ4NDVhYzAyY2M3NWEKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVRodSBOb3YgMTUgMDg6MjA6NTAgMjAwNyAtMDcwMAoKICAgIFJldmVydCAiQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uIGZvciBtcGM4MjYwIgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgNWFmNjFiMmY0YjgzOGEwNWY3OWJlMjc0ZjNlNWE2NmVkZDJkOWM5Ni4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA5MjhmZTMzYjI0Y2RmMzgyYThkYzg2ODdmZWQyNGIxOTYxY2RiNWQ2CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUaHUgTm92IDE1IDA4OjIwOjQzIDIwMDcgLTA3MDAKCiAgICBSZXZlcnQgIkNvcnJlY3QgZml4dXAgcmVsb2NhdGlvbiBmb3IgbXBjODN4eCIKCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDA1NzAwNGY0YTQ4NjM1NTRkNTZjYzU2MjY4YmZhN2M3ZDk3MzhlMjcuCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYzkzOTQ1ZThmOWUzMDA4NjBkMmJmNzNhMjU0OWNlNTc5NGY4YmQwMApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVGh1IE5vdiAxNSAwODoyMDoyNSAyMDA3IC0wNzAwCgogICAgUmV2ZXJ0ICJbTVBDNTEyeF0gQ29ycmVjdCBmaXh1cCByZWxvY2F0aW9uIgoKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOGQxNzk3OWQwMzU5NDkyYTgyMmEwYTQwOWQyNmUzYTM1NDliNGNkNC4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBjOTY3MmY4MWYxYmRiNGU4ZGRmNjJhYTcyY2EwMjA2ZThiNzJhYTFjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTm92IDE1IDE0OjI1OjA5IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IFNtYWxsIEFNQ0MgS2lsYXVlYSBjbGVhbnVwCgogICAgUmVtb3ZlIG5vdCBuZWVkZWQgcGNpX3RhcmdldF9pbml0KCkgZnVuY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGFlZTc0N2YxOWI0NjBhMGU5ZGEyMGZmMjFlOTBmZGFhYzFjZWMzNTkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBOb3YgMTUgMTQ6MjM6NTUgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogRW5hYmxlIDQ0MCBHUElPIGluaXQgdGFibGUgQ0ZHXzQ0MF9HUElPX1RBQkxFIGZvciA0MDUgcGxhdGZvcm1zCgogICAgLSBSZW5hbWUgQ0ZHXzQ0MF9HUElPX1RBQkxFIHRvIENGR180eHhfR1BJT19UQUJMRQogICAgLSBDbGVhbnVwIG9mIHRoZSA0eHggR1BJTyBmdW5jdGlvbnMKICAgIC0gTW92ZSBzb21lIEdQSU8gZGVmaW5lcyBmcm9tIHRoZSBjcHUgaGVhZGVycyBwcGM0MDUuaC9wcGM0NDAuaCBpbnRvIGdwaW8uaAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4YWRhMGViZjM4ZTQwNzNiZWVhMDMwOTE4OGIyNWQ4MmExMTJhMmFlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTm92IDE1IDE0OjIwOjA4IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEFNQ0MgVGFpaHUgYm9hcmQgY29uZmlnIGZpbGUgY2xlYW51cAoKICAgIFRoaXMgcGF0Y2ggbWFrZXMgdGhlIEFNQ0MgVGFpaHUgYSBsaXR0bGUgbW9yZSBjb21wYXRpYmxlIHRvIHRoZSBvdGhlcgogICAgQU1DQyBldmFsIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNWU3MWM1MWQ3NGM5NjNkMzE3NDA2MGMwNzhkY2FjZjEzYmRkMDJlZgpBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBOb3YgMTUgMTM6Mzc6MjggMjAwNyArMDEwMAoKICAgIFtJTktBNHgwXSBORyBoYXJkd2FyZTogZmxhc2ggc3VwcG9ydAoKICAgIERpc2FibGVkIGFuZCByZW1vdmUgaW5rYTR4MCBjdXN0b20gZmxhc2ggZHJpdmVyLCB1c2UgQ0ZJIGZsYXNoCiAgICBkcml2ZXIgaW5zdGVhZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgoKY29tbWl0IDVmYjZkNzE5MWUyMDZjZGRlMGUyMzE0MGZkODExMWNhZWQ5M2E1OTUKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgTm92IDE1IDEzOjI5OjU1IDIwMDcgKzAxMDAKCiAgICBbSU5LQTR4MF0gTkcgaGFyZHdhcmU6IFNEUkFNIHN1cHBvcnQKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhyZWUgbmV3IEREUiBjaGlwcyB0aGF0IG1heSAgYmUgcHJlc2VudCBvbiBhIE5HCiAgICBJTktBNHgwIGhhcmR3YXJlOiBIWUIyNUQ1MTIxNjBCRi01LCBLNEg1MTE2MzhDLTdDQjMsIFQ0NlYzMk0xNkJOLTZJVC4KCiAgICBDbGVhbnVwIGJvYXJkL2lua2E0eDAvbXQ0OGxjMTZtMTZhMi03NS5oIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBmMjNjYjM0YzM2N2JiMjc1ODVhNGZkYjhhNzUyNzczNzBlN2QwNTk2CkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IE5vdiAxNSAxMzoyNDo0MyAyMDA3ICswMTAwCgogICAgW0lOS0E0eDBdIE5HIGhhcmR3YXJlOiBwbGF0Zm9ybSBjb2RlIHVwZGF0ZQoKICAgIC0gQ2xlYW51cCBjb21waWxlIHdhcm5pbmdzLgogICAgLSBBZGQgbWlzc2luZyAnXDAnIGluIGRlZmF1bHQgZW52aXJvbm1lbnQuCiAgICAtIEluY3JlYXNlIENGR19NT05JVE9SX0xFTiB0byAyNTYgS2lCLgogICAgLSBBZGQgcmVxdWlyZWQgQ0ZHX1VTRV9QUENFTlYuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAyYWU2NGY1MTM1ZTUxYmIxODc1Mzg4NGQxMjY1Yjk5ZTg5YjVhZWRkCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVGh1IE5vdiAxNSAwODo1ODowMCAyMDA3ICswMDAwCgogICAgUmVtb3ZlIHdhcm5pbmdzIHJlIENPTkZJR19FWFRSQV9FTlZfU0VUVElOR1MKICAgIFJlbW92ZSB3YXJuaW5ncyByZSBvbmVuYW5kX3JlYWQoKSAmIHdyaXRlKCkKCmNvbW1pdCAyZGI5MTZlMTQ0MTBlM2VjMTczODUwOGM3YmY0ZGZlYjJiMjk5YWU3CkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVGh1IE5vdiAxNSAwODo0NToxMyAyMDA3ICswMDAwCgogICAgQ29ycmVjdGlvbiBwYXRjaAoKY29tbWl0IDFkOGE0OWVjYTFjN2JkYzhkYjFjNDdhOTJmOTAxNGEyOWVhZDAzYWUKQXV0aG9yOiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBTZXAgMTMgMTg6NTI6MjggMjAwNyArMDgwMAoKICAgIEVuYWJsZSBVTGkxNTc1IEV0aGVybmV0IHN1cHBvcnQgaW4gODYxMEhQQ0QgY29uZmlnCgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTRmZDZjOTNjMjhhMGE0NTM1MmZmZjVkZDkyNjczNDAxZmY1NjNmMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE5vdiAxMyAwODoxODoyMCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBsd21vbjU6IENoYW5nZSBQSFkgcmVzZXQgc2VxdWVuY2UgZm9yIFBIWSBNRElPIGFkZHJlc3MgbGF0Y2hpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgN2QwYTQwNjZiNWE2YjY5OGU1ZmMxYjY2Y2ZlOTcwNTc3NGJiY2U5MwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE5vdiAxMyAwODowNjoxMSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBGaXggNDA1RVggUENJZSBVVExTRVQgcmVnaXN0ZXIgc2V0dXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMWNlNTUxNTFjODVkMDY4ZjcwMzE3YThkNjVjNjEwNThiODkxYWZiNApBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgpEYXRlOglUdWUgTm92IDEzIDA3OjUwOjI5IDIwMDcgKzAxMDAKCiAgICBbVUMxMDFdIFNSQU0gbm93IHdpdGggMiBNQiB3b3JraW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDJkMTQ2ODQzNDExMDlhNjk2MTZlNGQ2MDE2Y2Q2MTQwMmQ1NTA4NmYKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJRnJpIE5vdiA5IDE1OjM3OjUzIDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IFVzZSBnZW5lcmljIHVzYi1vaGNpIGRyaXZlciBmb3Igc2VxdW9pYSBib2FyZAoKICAgIFRoaXMgcGF0Y2ggbWFrZXMgdGhlIHNlcXVvaWEgYm9hcmQgdXNlIHRoZSBnZW5lcmljIHVzYi1vaGNpIGRyaXZlcgogICAgaW5zdGVhZCBvZiBjcHUvcHBjNHh4L3VzYl9vaGNpLmMuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOWJlNjU5YWMwODY4ZGMzNjdjYWE5NTdjNWM3MjVlNDZiMDdmNmE1ZgpBdXRob3I6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgpEYXRlOglGcmkgTm92IDkgMTU6Mzc6MjMgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogTWFrZSBVU0Igd29ya2luZyB3aXRoIENPTkZJR180eHhfRENBQ0hFIGRlZmluZWQKCiAgICBUaGlzIHBhdGNoIGRpc2FibGVzIHRoZSA0NHggZC1jYWNoZSBvbiAndXNiIHN0YXJ0JyBhbmQKICAgIHJlZW5hYmxlcyBpdCBvbiAndXNiIHN0b3AnLiBUaGlzIHNob3VsZCBiZSBzZWVuIGFzIGEKICAgIHRlbXBvcmFyeSBmaXggdW50aWwgdGhlIGdlbmVyaWMgdXNiLW9oY2kgZHJpdmVyIGNhbgogICAgbGlmZSB3aXRoIGQtY2FjaGUgZW5hYmxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmYmRlMjE2OWQyYzQ4ZmNjOWZmMDM0ODk1MzRhNzhmZmIwYThhMGQ0CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBOb3YgOSAxNTozNjo0NCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBSZW1vdmUgcmVkdW5kYW50IGNvZGUgZnJvbSA0eHggbmV0d29yayBkcml2ZXIKCiAgICBUaGlzIHBhdGNoIHJlbW92ZXMgc29tZSByZWR1bmRhbnQgY29kZSBhbmQgZGVjcmVtZW50cyB0aGUgZW5kCiAgICBhZGRyZXNzIG9mIGNhY2hlIGZsdXNoIGFuZCBpbnZhbGlkYXRlIGJ5IDEuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNWNhOTg4MWFhZDhjNDEzYWMyYTgyODY4YTVlMzcxOTE3ODI1NDUwMgpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CUZyaSBOb3YgOSAxNToyNDoyNiAyMDA3ICswMDAwCgogICAgQWRkIGFwb2xsb24gYm9hcmQgc3VwcG9ydAogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCBiNTMzMTNkYmZjNzQ1MjVkODVmMWU3ZTAxMDJmOTAyZDVjODYzYmViCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgTm92IDkgMTI6MTk6NTggMjAwNyArMDEwMAoKICAgIHBwYzR4eDogUmVtb3ZlIEluOi9PdXQ6L0VycjogYm9vdCBvdXRwdXQgZm9yIEFNQ0MgS2lsYXVlYQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjN2Y2OWMzNDAyNzc5MzVhNmMxOWE5NTY0MjE4NTJkYTk0NGEzNjVmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgTm92IDkgMTI6MTg6NTQgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogTWFrZSBvdXRwdXQgYSBsaXR0bGUgc2hvcnRlciBvbiBJMkMgYm9vdHJvbSBkZXRlY3Rpb24KCiAgICBNb3N0IDR4eCBQUEMgY2FwYWJsZSBvZiB1c2luZyBhbiBJMkMgYm9vdHJvbSBmb3IgYm9vdHN0cmFwIHNldHRpbmcKICAgIGFscmVhZHkgcHJpbnQgYSBsaW5lIHdpdGggdGhlIGluZm9ybWF0aW9uIHdoaWNoIEkyQyBib290cm9tIGlzCiAgICB1c2VkIGZvciBib290c3RyYXAgY29uZmlndXJhdGlvbi4gU28gd2UgZG9uJ3QgbmVlZCB0aGlzIGV4dHJhIGxpbmUKICAgIHdpdGggIkkyQyBib290IEVFUFJPTSBlbi0vZGlzLWFibGVkIi4KCiAgICBUaGlzIHBhdGNoIGFsc28gaGFzIGEgbGl0dGxlIGNvZGUgY2xlYW51cCBpbnRlZ3JhdGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4ZDczN2EyODE1MmVjMTI4NzNmODU0NGNjYTFmYjM5YTQ5ZTVlNjkzCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDggMTI6NTA6MTggMjAwNyAtMDYwMAoKICAgIENvbGRGaXJlOiBNQ0Y1MzI5IC0gUmVtb3ZlIHJlc2V0IHJlZ2lzdGVycyBmcm9tIENDTQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3ZDdjZGVhNzY5YTYwYjBhNmU0YzE4YmVmN2Y5ZDY0OGZkMTRiOGQ3CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDggMTI6MzE6MTEgMjAwNyAtMDYwMAoKICAgIENvbGRGaXJlOiBNQ0Y1MzI5IC0gQWRkIFJlc2V0IHN0cnVjdHVyZSB0byBpbW1hcF81MzI5LmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDliMjZjZjAwZDc2ZDc1ZmRmN2ZkYzRiMTNlNGRkOTI5NzQzYmMyMQpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiA4IDEyOjE5OjAxIDIwMDcgLTA2MDAKCiAgICBDb2xkRmlyZTogTUNGNTMyOSAtIHJldmVydCBpbmNsdWRlL2FzbS1tNjhrL201MzI5LmggZmlsZSBtb2RlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDIyNWEyNGI1ZTA2MmFkOTQ2Mjc0MjQ1MDhhZTgxNGY1MWRiZTFhMzQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBOb3YgNyAxODowMDo1NCAyMDA3IC0wNjAwCgogICAgQ29sZEZpcmU6IE1DRjU0NDV4IC0gVXBkYXRlIGNvcnJlY3QgUkFNQkFSIGFuZCBtaXNzaW5nIGxpbmtlciBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNDhjN2MxNDgzNWYzNGQ1ZDkxMGI0NWU1NjAwMDUwZTU4Y2E2Y2FiCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTm92IDcgMTc6NTY6MTUgMjAwNyAtMDYwMAoKICAgIENvbGRGaXJlOiBNQ0Y1MzJ4IC0gVXBkYXRlIGRvX3Jlc2V0KCkgdXNpbmcgY29yZSByZXNldAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkOTI0MGE1ZjgyN2ViM2I0NzZhNmJhMjkzOGQwMWYxYTllNzY4OGY0CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTm92IDcgMTc6NTE6MDAgMjAwNyAtMDYwMAoKICAgIENvbGRGaXJlOiBVcGRhdGUgY3B1IGZsYWcgZm9yIDQuMi14eCBjb21waWxlcgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwNzBiYTU2MTE1YjRkYTYzYjQ2ZTk3NDI4N2ZhNDU1MGQ0MDIzMzg2CkF1dGhvcjogWW9yayBTdW4gPHlvcmtzdW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE9jdCAzMSAxNDo1OTowNCAyMDA3IC0wNTAwCgogICAgODYxMDogQWRkIGNvbnNvbGUgZnJhbWUgYnVmZmVyIHN1cHBvcnQgdG8gRlNMIDg2MTAgRElVIGRyaXZlci4KCiAgICBBZGQgY2ZiIGNvbnNvbGUgc3VwcG9ydCB0byBGU0wgODYxMCBESVUgZHJpdmVyLgogICAgSW5zcGVjdCBib2FyZCB2ZXJzaW9uIGZyb20gUElYSVMgdG8gb2J0YWluIGNvcnJlY3QgcGl4ZWwgZm9ybWF0LgoKICAgIFVzZSAjZGVmaW5lIENPTkZJR19WSURFTyBpbiBjb25maWcgZmlsZSB0byBlbmFibGUgZmIgY29uc29sZS4KCiAgICBUbyBzd2l0Y2ggbW9uaXRvciwgc2V0IG1vbml0b3IgdmFyaWFibGUgdG8KICAgIDAgLSBEVkksIDEgLSBTaW5nbGUgbGluayBMVkRTLCAyIC0gRG91YmxlIGxpbmsgTFZEUwogICAgZm9sbG93ZWQgYnkgImRpdWZiIGluaXQiLgoKICAgIFByZXNlcnZlIGxvZ28gYml0bWFwIGF0IHRoZSB0b3Agb2YgdGhlIGZiIGNvbnNvbGUuCgogICAgU2lnbmVkLW9mZi1ieTogWW9yayBTdW4gPHlvcmtzdW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTg3Nzg4MGM2OTQ5ZTk0OGJkNjNjZDZlYTRlMjE2NTczZDJmNTNkZApBdXRob3I6IFlvcmsgU3VuIDx5b3Jrc3VuQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBPY3QgMjkgMTM6NTg6MzkgMjAwNyAtMDUwMAoKICAgIDg2MTA6IEFkZCA4NjEwIERJVSBkaXNwbGF5IGRyaXZlcgoKICAgIDEyODB4MTAyNCBhbmQgMTAyNHg3NjggQCAzMiBicHAgYXJlIHN1cHBvcnRlZCBub3cuCiAgICBEVkksIFNpbmdsZS1saW5rIExWRFMsIERvdWJsZS1saW5rIExWRFMgYXJlIGFsbCBzdXBwb3J0ZWQuCgogICAgRW52aXJvbm1lbnRhbCB2YXJpYWJsZSAibW9uaXRvciIgaXMgdXNlZCB0byBzcGVjaWZ5IG1vbml0b3IgcG9ydC4KCiAgICBBIG5ldyBjb21tYW5kICJkaXVmYiIgaXMgaW50cm9kdWNlZCB0byByZWluaXRpYWxpemUgbW9uaXRvcgogICAgYW5kIGRpc3BsYXkgYSBCTVAgZmlsZSBpbiB0aGUgbWVtb3J5LiBTbyBmYXIsIDEtYml0LCA0LWJpdCwKICAgIDgtYml0IGFuZCAyNC1iaXQgQk1QIGZvcm1hdHMgYXJlIHN1cHBvcnRlZC4KCglkaXVmYiBpbml0CgkgICAgLSBpbml0aWFsaXplIHRoZSBkaXUgZHJpdmVyCglFbmFibGUgdGhlIHBvcnQgc3BlY2lmaWVkIGluIHRoZSBlbnZpcm9ubWVudGFsIHZhcmlhYmxlICJtb25pdG9yIgoKCWRpdWZiIGFkZHIKCSAgICAtIGRpc3BsYXkgYm1wIGZpbGUgaW4gbWVtb3J5LgoJVGhlIGJtcCBpbWFnZSBzaG91bGQgYmUgbm8gYmlnZ2VyIHRoYW4gdGhlIHJlc29sdXRpb24sIDEyODB4MTAyNAoJZm9yIERWSSBhbmQgZG91YmxlLWxpbmsgTFZEUywgMTAyNHg3NjggZm9yIHNpbmdsZS1saW5rIExWRFMuCgogICAgTm90ZSwgdGhpcyBkcml2ZXIgYWxsb2NhdGUgbWVtb3J5IGJ1dCBkb2Vzbid0IGZyZWUgaXQgYWZ0ZXIgdXNlCiAgICBJdCBpcyB3cml0dGVuIG9uIHB1cnBvc2UgLS0gdG8gYXZvaWQgYSBmYWlsdXJlIG9mIHJlYWxsb2NhdGlvbgogICAgZHVlIHRvIG1lbW9yeSBmcmFnZW1lbnQuCgogICAgRUNDIG9mIEREUiBpcyBkaXNhYmxlZCBmb3IgRElVIHBlcmZvcm1hbmNlLiBMMiBkYXRhIGNhY2hlIGlzIGFsc28gZGlzYWJsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogWW9yayBTdW4gPHlvcmtzdW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBsb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTJlNWRkZmVjZGRhMzA4Zjc1NzgyZmFlMjA2YjY3N2IxODEwZjVmOQpBdXRob3I6IFlvcmsgU3VuIDx5b3Jrc3VuQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBPY3QgMzEgMTA6NDM6NTkgMjAwNyAtMDUwMAoKICAgIEZTTDogQWRkIGEgZnJlZXNjYWxlIGJpdG1hcCBsb2dvLgoKICAgIFRoaXMgRnJlZXNjYWxlIGxvZ28gaXMgYSAzNDAgeCAxMjggeCA0YnBwIEJNUCBmaWxlCiAgICB0aGF0IGNhbiBiZSBkaXNwbGF5ZWQgYnkgdGhlIERJVSBGcmFtZWJ1ZmZlciBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogWW9yayBTdW4gPHlvcmtzdW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTgxNTMzOGZiZDFjMGY5NGY4Mjc2ZDI4OTFiOTljYWE1YTA1ZjYyMgpBdXRob3I6IFlvcmsgU3VuIDx5b3Jrc3VuQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBPY3QgMjkgMTM6NTc6NTMgMjAwNyAtMDUwMAoKICAgIDg2MTA6IE1ha2Ugc29tZSBleHRyYSBkZWJ1ZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgY29uZGl0aW9uYWwuCgogICAgT25lIG1heSAjZGVmaW5lIEVOVl9ERUJVRyB0byBnZXQgdGhlbSBiYWNrIGFnYWluLgoKICAgIFNpZ25lZC1vZmYtYnk6IFlvcmsgU3VuIDx5b3Jrc3VuQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzYxNDIxY2NjYTgwYTlmYjM3YjE5YzM3YWE2MWQ0NmVmNzVlMDY0NwpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBPY3QgMjkgMTk6MjY6MjEgMjAwNyArMDgwMAoKICAgIDg2MTA6IEFjdHVhbGx5IGVuYWJsZSBwaXhpc19yZXNldCBDT05GSUdzCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmM2JjZWFhYjIzMGI0NzQ4ZDBhZmM0MTA5YjY4MzczMDhmMDE4YjQwCkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAyNiAxODozMTo1OSAyMDA3ICswODAwCgogICAgRml4IHRoZSBCQVQgZGVmaW5pdGlvbiBvZiBQQ0kgSU8gb24gODYxMCBib2FyZAoKICAgIFRoZSBhZGRyZXNzIGluIHRoZSBCQVQgcmVnaXN0ZXIgaXMgYWxpZ25lZCB3aXRoIHRoZSBCQVQgc2l6ZS4KICAgIFRoZSBvcmlnaW5hbCBkZWZpbml0aW9uIGFjdHVhbGx5IGRpZCBub3QgZGVmaW5lIEJBVCBmb3IgUENJRTIgSU8uCiAgICBUaGlzIHBhdGNoIGZpeCB0aGlzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOWYyM2NhMzM0YTZmNWYwMjFlZjllOWQwZmFkOWRhODBkNjNiMmQ1NgpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBPY3QgMjkgMTk6MjY6MjEgMjAwNyArMDgwMAoKICAgIFVuaWZ5IHBpeGlzX3Jlc2V0IGFsdGJhbmsgYWNyb3NzIGJvYXJkIGZhbWlsaWVzCgogICAgQmFzaWNhbGx5LCByZWZhY3RvciB0aGUgQ0ZHX1BJWElTX1ZCT09UX01BU0sgdmFsdWVzCiAgICBpbnRvIHRoZSBzZXBhcmF0ZSBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTgzMThlYzIwNWM4ZTg3OTRiNWY5ZjFiODU4NGFiYWRiNDQwZThiYQpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMjYgMTg6MzI6MDAgMjAwNyArMDgwMAoKICAgIG1ha2UgODYxMCBib2FyZCB1c2UgcGl4aXMgcmVzZXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDljODQ3MDllZWRjZTljNjgwZGQ2OTU5ODRhYjdkMjMyOGY0ZjA0ZjUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDEgMTI6MjM6MjkgMjAwNyAtMDUwMAoKICAgIDg2eHg6IEZpeCBicm9rZW4gdmFyaWFibGUgcmVmZXJlbmNlIHdoZW4gI2RlZiBERUJVR2luZy4KCiAgICBTb21ldGltZXMgeW91IGNhbid0IHJlZmVyZW5jZSB0aGUgRERSMiBjb250cm9sbGVyIHZhcmlhYmxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFmMTAzMTA1YTM3NDZhYjEyMjc5YjYzYjhjMWQzNzJjMGNlMmNjNTgKQXV0aG9yOiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBOb3YgNSAxNzozOToyNCAyMDA3ICswODAwCgogICAgSW1wbGVtZW50IGdlbmVyYWwgVUxpIDUyNnggRXRoZXJuZXQgZHJpdmVyIHN1cHBvcnQgaW4gVS1ib290CgogICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIGdlbmVyYWwgVUxpIDUyNnggRXRoZXJuZXQgZHJpdmVyLgogICAgVW50aWwgbm93LCBpdCBpcyB0aGUgb25seSBuYXRpdmUgRXRoZXJuZXQgcG9ydCBvbgogICAgTVBDODYxMEhQQ0QgYm9hcmQsIGJ1dCBpdCBjb3VsZCBiZSB1c2VkIG9uIG90aGVyIGJvYXJkcwogICAgd2l0aCBVTGkgNTI2eCBFdGhlcm5ldCBwb3J0IGFzIHdlbGwuCgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgNzFiYzZlNjQ3NGZlYThlZjQ4MWI5YjQ1ZDFlZGQ3YWQxZjZkZmJiZApBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglUaHUgTm92IDEgMDg6NDY6NTAgMjAwNyAtMDUwMAoKICAgIE5FVDogQWRkIEV0aGVybmV0IDEwMDBCQVNFLVggc3VwcG9ydCBmb3IgUFBDNHh4CgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIDEwMDBCQVNFLVggdG8gZnVuY3Rpb25zICJtaWlwaHlfc3BlZWQgKCkiIGFuZAogICAgIm1paXBoeV9kdXBsZXgoKSIuCUl0IGFsc28gYWRkcyBmdW5jdGlvbiAibWlpcGh5X2lzXzEwMDBiYXNlX3ggKCkiLCB3aGljaAogICAgcmV0dXJucyBub24temVybyBpZmYgdGhlIFBIWSByZWdpc3RlcnMgYXJlIGNvbmZpZ3VyZWQgZm9yIDEwMDBCQVNFLVguICBUaGUKICAgICJtaWkgaW5mbyIgY29tbWFuZCBpcyBtb2RpZmllZCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIDEwMDBCQVNFLVQgYW5kIC1YLgoKICAgIFNpZ25lZC1vZmYtYnk6IExhcnJ5IEpvaG5zb24gPGxyakBhY20ub3JnPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgMjk4MDM1ZGY0OTQ4YjExM2QyOWFjMGU2OTQ3MTdkMzRiOTViYzVkYwpBdXRob3I6IExhcnJ5IEpvaG5zb24gPGxyakBhcmxpbnguY29tPgpEYXRlOglXZWQgT2N0IDMxIDExOjIxOjI5IDIwMDcgLTA1MDAKCiAgICBORVQ6IENvc21ldGljIGNoYW5nZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYXJyeSBKb2huc29uIDxscmpAYWNtLm9yZz4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IDY1NGYzOGIzYTM4Nzg4Njk5NmE1YTc1NzcxZmJmYzI5Y2I0ZjIyNWUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgNSAwNzo0MzowNSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBNYWtlIG91dHB1dCBhIGxpdHRsZSBzaG9ydGVyIG9uIFBDSWUgZGV0ZWN0aW9uCgogICAgTm93IG5vdCBtYXggMyBsaW5lcyBidXQgMiBsaW5lcyBhcmUgcHJpbnRlZCBwZXIgUENJZSBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5OTI3NDJhNWIwOWQ5MDQwYWRiZDE1NmZiOTA3NTZhZjY2YWRlMzEwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IE5vdiAzIDIzOjA5OjI3IDIwMDcgKzAxMDAKCiAgICBDbGVhbnVwIGNvZGluZyBzdHlsZTsgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZTg4MWNiNTYzZTMyZjQ1ODMyYjdiNmRiNzdiZGNkMDE3YWRjYmI0MQpBdXRob3I6IEJydWNlIEFkbGVyIDxicnVjZS5hZGxlckBjY3B1LmNvbT4KRGF0ZToJRnJpIE5vdiAyIDEzOjE1OjQyIDIwMDcgLTA3MDAKCiAgICBmaXggd29yZGluZyBpbiBSRUFETUUKCiAgICBDaGFuZ2VkIHRoZSB3b3JkaW5nIHRvIHByb3Blcmx5IGRlc2NyaWJlIHRoZSBzaGFkb3dpbmcKICAgIG9mIHRoZSBlbnZpcm9ubWVudCBmcm9tIFJPTSB0byBSQU0KCiAgICBTaWduZWQtb2ZmLWJ5OiBCcnVjZSBBZGxlciA8YnJ1Y2UuYWRsZXJAYWNtLm9yZz4KCmNvbW1pdCBhZDg0NWJlZWYwNjI0NTQyNmM1N2I1M2RjZGMwMWI3ZGM3MGUwZDQ1CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxza3VyaWJheUBydWJ5LmR0aS5uZS5qcD4KRGF0ZToJV2VkIE9jdCAzMSAwMjoxODoxNSAyMDA3ICswOTAwCgogICAgYmxhY2tmaW46IE1vdmUgYC1EX19CTEFDS0ZJTl9fJyB0byAkKEFSQ0gpX2NvbmZpZy5tawoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2t1cmliYXlAcnVieS5kdGkubmUuanA+Cgpjb21taXQgZWMyMjc1NTc5OTQ2NmM4YTEwMzY2NGJiM2E1ZTY0N2JmOWMyMzhmNApBdXRob3I6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgpEYXRlOglUaHUgT2N0IDI1IDE2OjA4OjE0IDIwMDcgKzAzMDAKCiAgICBUcmltbWVkIHNvbWUgdmFyaWFibGVzIGluIG5lMjAwMC5jCgogICAgU2lnbmVkLW9mZi1ieTogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+Cgpjb21taXQgZWI2ZjIxNGQzNjQ0YjJhNzc5NjhjMTc2ZWQzNmRjZjg1OGNmZTdlMApBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMjUgMTc6NTE6MjcgMjAwNyArMDgwMAoKICAgIEZpeCB0aGUgaXNzdWUgb2YgdXNiX2tiZCBkcml2ZXIgbWlzc2luZyB0aGUgc2NhbiBjb2RlIG9mIGtleSAneicuCgogICAgVGhlIHNjYW4gY29kZSBvZiB0aGUga2V5ICd6JyBpcyAweDFkLCB3aGljaCBzaG91bGQgYmUgaGFuZGxlZC4KCiAgICBUaGUgY2hhbmdlIGhhcyBiZSB0ZXN0ZWQgb24gTk9WQVRFSyBVU0Iga2V5Ym9hcmQgYW5kIFVMSSBQQ0kgT0hDSQogICAgY29udHJvbGxlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJiZjQ3OTZmNjQ5OGZiYWRlNTZkNTZlZmYzYTBhNDliMjk5ZDkzZTUKQXV0aG9yOiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDI1IDE3OjMwOjA0IDIwMDcgKzA4MDAKCiAgICBGaXggVVNCIHN1cHBvcnQgaXNzdWUgZm9yIE1QQzg2NDFIUENOIGJvYXJkLgoKICAgIFRoZSBjb25maWd1cmF0aW9uIGZpbGUgaGFzIGFscmVhZHkgZW5hYmxlZCBVU0IsIGJ1dCBpdAogICAgbWlzc2VkIGRlZmluaXRpb24gb2YgQ0ZHX09IQ0lfU1dBUF9SRUdfQUNDRVNTLCB0aGUgVVNCCiAgICBvbiBNUEM4NjQxSFBDTiBjYW4gbm90IHdvcmsgYmVjYXVzZSBvZiB0aGUgd3JvbmcgVVNCCiAgICByZWdpc3RlciBlbmRpYW4uCgogICAgQW5kIGFkZCB0aGUgVVNCIGNvbW1hbmQgdG8gVS1Cb290IGNvbW1hbmRzIGxpc3QuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZTYyMDQxMDIzZGMzZGU5ZDk4ZDk3N2JiMDgwMjM1YmM2ZDAzNWUwCkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJV2VkIE9jdCAyNCAxODoxNjowMSAyMDA3ICswMjAwCgogICAgVXNlIGNvbmZpZ19jbWRfZGVmYXVsdC5oIGluc3RlYWQgb2YgY29uZmlnX2NtZF9hbGwuaAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgNTY2MjJmODc4NTc0MzliMWMyMjFlOWRlZWYxMWE5ZDViYjVkNDMwOApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBPY3QgMjQgMDE6Mzc6MzYgMjAwNyArMDIwMAoKICAgIFRRTTUyMDA6IENhbGwgdXNiX2NwdV9pbml0KCkgZHVyaW5nIGJvYXJkIGluaXQKCiAgICB1c2JfY3B1X2luaXQoKSBjb25maWd1cmVzIEdQUyBVU0IgcGlucywgY2xvY2tzLCBldGMuIGFuZAogICAgaXMgcmVxdWlyZWQgZm9yIHByb3BlciBvcGVyYXRpb24gb2Yga2VybmVsIFVTQiBzdWJzeXN0ZW0uCiAgICBUaGlzIHNldHVwIHdhcyBwcmV2aW91c2x5IGRvbmUgaW4gdGhlIGtlcm5lbCBieSB0aGUgZml4dXAKICAgIGNvZGUgd2hpY2ggaXMgYmVpbmcgcmVtb3ZlZCwgdGh1cyBsb3cgbGV2ZWwgaW5pdCBtdXN0IGJlCiAgICBkb25lIGJ5IFUtYm9vdCBub3cuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCAyOWMyOWMwMjY3ZmU4NTdlNzIwMTRjZTkwYzVkMzViMmVmNjMwMmJkCkF1dGhvcjogR3Vlbm5hZGkgTGlha2hvdmV0c2tpIDxsZ0BkZW54LmRlPgpEYXRlOglUdWUgT2N0IDIzIDE2OjI1OjUwIDIwMDcgKzAyMDAKCiAgICBGaXggdHlwbyBpbiBuZnMuYwoKICAgIEFuIG9idmlvdXMgdHlwby4gT3JpZ2luYWxseSBmaXhlZCBpbiBsaW5rc3RhdGlvbiB1LWJvb3QgcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHdWVubmFkaSBMaWFraG92ZXRza2kgPGxnQGRlbnguZGU+Cgpjb21taXQgNTk1NDNmZTAwYTRjZTcyMGVmOWY1YWE3ZmIzODdjNmRhZjFjN2Q3OApBdXRob3I6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyMyAxNDozNTowNSAyMDA3ICswMjAwCgogICAgRml4IGEgdHlwbyBpbiBjcHUvbXBjODI0eC9pbnRlcnJ1cHRzLmMKCiAgICBTaW5jZSBEZWNlbWJlciAyMDAzIHRoZSB0aW1lcl9pbnRlcnJ1cHRfY3B1KCkgZnVuY3Rpb24gaW4KICAgIGNwdS9tcGM4MjR4L2ludGVycnVwdHMuYyBjb250YWlucyB3aGF0IHNlZW1zIHRvIGJlIGEgc3VwZXJmbHVvdXMKICAgIHBhcmFtZXRlci4gUmVtb3ZlIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEd1ZW5uYWRpIExpYWtob3ZldHNraSA8bGdAZGVueC5kZT4KCmNvbW1pdCBjOWU3YjliOWExNzAwZmUwMDk2NzhkMWY5YjQxZTYzNjRhYzVkZjJkCkF1dGhvcjogU2VyZ2VqIFN0ZXBhbm92IDxTZXJnZWouU3RlcGFub3ZAaWRzLmRlPgpEYXRlOglXZWQgT2N0IDE3IDExOjEzOjUxIDIwMDcgKzAyMDAKCiAgICBhZGQgZnRfY3B1X3NldHVwKC4uKSBvbiBtcGM4MjYwCgogICAgQWRkIGZ0X2NwdV9zZXR1cCguLiktZnVuY3Rpb24gdG8gYWRhcHQgaXQgZm9yIHVzZSB3aXRoIGxpYmZkdAogICAgYmFzZWQgb24gY29kZSBmcm9tIG1wYzV4eHgKCiAgICBTaWdlbmQtb2ZmLWJ5OiBTZXJnZWogU3RlcGFub3YgPFNlcmdlai5TdGVwYW5vdkBpZHMuZGU+CiAgICAtLQoKY29tbWl0IDZhYmQ4MmUxOWFlOTNjMGI0ZDEwNGU1MDE2NWUyMzU5MTVlYzA4NzUKQXV0aG9yOiBTZXJnZWogU3RlcGFub3YgPFNlcmdlai5TdGVwYW5vdkBpZHMuZGU+CkRhdGU6CVdlZCBPY3QgMTcgMTE6MTg6NDIgMjAwNyArMDIwMAoKICAgIGNoYW5nZXMgZm9yIElEUzgyNDcgYm9hcmQgc3VwcG9ydAoKICAgIFRvIGdldCB0aGUgSURTODI0NyBib2FyZCB3b3JraW5nIGZvbGxvd2luZyBhcmUgZG9uZToKICAgICAtIEZDQzIgaXMgZGVhY3RpdmF0ZWQKICAgICAtIEZDQzEgaXMgYWN0aXZhdGVkCiAgICAgLSBJMkMgaXMgYWN0aXZhdGVkCiAgICAgLSBDRkkgZHJpdmVyIGlzIGFjdGl2YXRlZAogICAgIC0gQWRhcHRlZCBmb3IgdXNlIHdpdGggTElCRkRUCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VqIFN0ZXBhbm92IDxTZXJnZWouU3RlcGFub3ZAaWRzLmRlPgogICAgLS0KCmNvbW1pdCAzZDZjYjNiMjRhZGQ2NDE1Zjg2YTBmMDEzZWE0MGY1NjM5YjkwMDQ3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTm92IDMgMTI6MDg6MjggMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQWRkIEFNQ0MgS2lsYXVlYS9IYWxlYWthbGEgTkFORCBib290aW5nIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgTkFORCBib290aW5nIHN1cHBvcnQgZm9yIHRoZSBBTUNDIDQwNUVYKHIpIGV2YWwgYm9hcmRzLgogICAgQWdhaW4sIG9ubHkgb25lIGltYWdlIHN1cHBvcnRzIGJvdGggdGFyZ2V0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOGI2Njg0YTY5ODUwMGJlOWMxNDJlYzJjOWY0NmNmYzM0OGUxN2YwYwpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgT2N0IDI0IDE1OjQ4OjM3IDIwMDcgKzAyMDAKCiAgICBBVFNUSzEwMDI6IFJlbW92ZSBkZWZhdWx0IGV0aGVybmV0IGFkZHJlc3NlcwoKICAgIFdvbGZnYW5nIGlzIHJpZ2h0OiBJdCdzIG5vdCBhIGdvb2QgaWRlYSB0byBzZXQgdXAgZGVmYXVsdCBpbml0aWFsCiAgICBldGhlcm5ldCBhZGRyZXNzZXMgZm9yIGEgYm9hcmQsIGV2ZW4gdGhvdWdoIHRoZXkgYmVsb25nIHRvIHRoZSBsb2NhbAogICAgcmFuZ2UuCgogICAgVGhpcyB3aWxsIGNoYW5nZSB0aGUgZmFpbHVyZSBtb2RlIGZyb20gIklUIG1hbmFnZXIgc2NyZWFtcyBhdCB5b3UgZm9yCiAgICB1c2luZyBkdXBsaWNhdGUgZXRoZXJuZXQgYWRkcmVzc2VzIiB0byBhIG5pY2UgZXJyb3IgbWVzc2FnZSBleHBsYWluaW5nCiAgICB0aGF0IHRoZSBldGhlcm5ldCBhZGRyZXNzIGhhc24ndCBiZWVuIHNldCBwcm9wZXJseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBlNWM3OTRlNDkxYTU3ZDgyOWI2ZDg3MzNlMmVkODM2OGEyMjY5YWJmCkF1dGhvcjogSnVzdGluIEZsYW1taWEgPGpmbGFtbWlhQHNhdmFudGF2LmNvbT4KRGF0ZToJTW9uIE9jdCAyOSAxNzo0MDozNSAyMDA3IC0wNDAwCgogICAgREhDUCBDbGllbnQgRml4CgogICAgVGhpcyBpcyBhIG11bHRpLXBhcnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC4KCiAgICBjb21taXQgZTZlNTA1ZWFlOTRlZDcyMWUxMjNlMTc3NDg5MjkxZmM0NTQ0YjdiOAogICAgQXV0aG9yOiBKdXN0aW4gRmxhbW1pYSA8amZsYW1taWFAc2F2YW50YXYuY29tPgogICAgRGF0ZTogICBNb24gT2N0IDI5IDE3OjE5OjAzIDIwMDcgLTA0MDAKCglGb3VuZCBhIGJ1ZyBpbiB0aGUgd2F5IHRoZSBESENQIFJlcXVlc3QgcGFja2V0IGlzIGJ1aWx0LCB3aGVyZSB0aGUgSVAgYWRkcmVzcwoJdGhhdCBpcyBvZmZlcmVkIGJ5IHRoZSBzZXJ2ZXIgaXMgYm91bmQgdG8gcHJlbWF0dXJlbHkuIFRoaXMgcGF0Y2ggaXMgYSBmaXggb2YKCXRoYXQgYnVnIHdoZXJlIHRoZSBJUCBhZGRyZXNzIG9mZmVyZWQgYnkgdGhlIERIQ1Agc2VydmVyIGlzIG5vdCB1c2VkIHVudGlsCglhZnRlciB0aGUgREhDUCBBQ0sgZnJvbSB0aGUgc2VydmVyIGlzIHJlY2VpdmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEp1c3RpbiBGbGFtbWlhIDxqZmxhbW1pYUBzYXZhbnRhdi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCA1ZDk2ZDQwZDNmMzZkYTMzMzQ4ZTY4ZjllYTk5M2YzODNlMTFmOTk3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgT2N0IDMxIDIwOjU4OjM0IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IEZpeCBhY2FkaWFfbmFuZCBidWlsZCBwcm9ibGVtCgogICAgU2luY2UgdGhlIGNhY2hlIGhhbmRsaW5nIGZ1bmN0aW9ucyB3ZXJlIG1vdmVkIGZyb20gc3RhcnQuUyBpbnRvIGNhY2hlLlMKICAgIHRoZSBhY2FkaWEgTkFORCBib290aW5nIE1ha2ZpbGUgbmVlZHMgdG8gYmUgYWRhcHRlZCBhY2NvcmRpbmdseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWEyZTE0Mjg0MzUzM2NhNTkzZmNiNWNiM2UxZGFmMWI3ZjVlNTk0OQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAzMSAyMDo1NzoxMSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBBZGQgQ09ORklHXzR4eF9EQ0FDSEUgY29tcGlsZSBvcHRpb25zIHRvIGVuYWJsZSBjYWNoZWQgU0RSQU0KCiAgICBUaGlzIHBhdGNoIGFkZHMgdGhlIENPTkZJR180eHhfRENBQ0hFIG9wdGlvbnMgdG8gc29tZSBTRFJBTSBpbml0IGZpbGVzCiAgICBhbmQgdG8gdGhlIFNlcXVvaWEgVExCIGluaXQgY29kZS4gTm93IHRoZSBjYWNoZSBjYW4gYmUgZW5hYmxlZCBvbiA0NHgKICAgIGJvYXJkcyBieSBkZWZpbmluZyBDT05GSUdfNHh4X0RDQUNIRSBpbiB0aGUgYm9hcmQgY29uZmlnIGZpbGUuIFRoaXMKICAgIG9wdGlvbiB3aWxsIGRpc2FwcGVhciwgd2hlbiBtb3JlIGJvYXJkcyB1c2UgaXMgc3VjY2Vzc2Z1bGx5IGFuZCBubwogICAgbW9yZSBrbm93biBwcm9ibGVtcyBleGlzdC4KCiAgICBUaGlzIGlzIHRlc3RlZCBzdWNjZXNzZnVsbHkgb24gU2VxdW9pYSBhbmQgS2F0bWFpLiBUaGUgb25seSBwcm9ibGVtIHRoYXQKICAgIG5lZWRzIHRvIGJlIGZpeGVkIGlzLCB0aGF0IFVTQiBpcyBub3Qgd29ya2luZyBvbiBTZXF1b2lhIHJpZ2h0IG5vdywgc2luY2UKICAgIGl0IHdpbGwgbmVlZCBzb21lIGNhY2hlIGhhbmRsaW5nIGNvZGUgdG9vLCBzaW1pbGFyIHRvIHRoZSA0eHggRU1BQyBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDNkYjkzYjhiZWRkMzJlOTE0YjM4OTc2MTQxYjNmZGY0ZWEzZmY3MzgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMzEgMjA6NTE6MTAgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogRW5hYmxlIENQVSBQT1NUIHRlc3QgZm9yIDR4eCB3aXRoIGRjYWNoZSBlbmFibGVkCgogICAgTm93IHdpdGggY2FjaGVzIGVuYWJsZWQgKGktIGFuZCBkLWNhY2hlKSBvbiA0NHgsIHdlIG5lZWQgYSBjaGFuY2UgdG8KICAgIGRpc2FibGUgdGhlIGNhY2hlIGZvciB0aGUgQ1BVIFBPU1QgdGVzdHMsIHNpbmNlIHRoZXNlIHRlc3RzIGNvbnNpc3QKICAgIG9mIHNlbGYgbW9kaWZ5aW5nIGNvZGUuIFRoaXMgaXMgZG9uZSB2aWEgdGhlIG5ldyBjaGFuZ2VfdGxiKCkgZnVuY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGY3MWIyODg4YjRiM2M4NzA5MDlhMDM0MTQyN2IyYTkxNDI0NmY4MWYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMzEgMjA6NDc6MjYgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogQ2hhbmdlIDR4eCBQT1NUIGV0aGVybmV0IHRlc3QgdG8gaGFuZGxlIGNhY2hlZCBtZW1vcnkgdG9vCgogICAgVGhpcyBwYXRjaCBlbmFibGVzIHRoZSA0eHggRU1BQyBQT1NUIGRyaXZlciB0byB3b3JrIHRvbywgd2hlbiBkY2FjaGUgaXMKICAgIGVuYWJsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGEyNjg1OTA0MDYxYjM1YTE3NTgzZDY1ZmU0N2NkYzI2ODZhNjllYWEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMzEgMjA6NDU6NTMgMjAwNyArMDEwMAoKICAgIHBwYzR4eDogUmVtb3ZlIHRlbXBvcmFyeSBUTEIgZW50cnkgaW4gUE9TVCBjYWNoZSB0ZXN0IG9ubHkgZm9yIDQ0MAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmZjc2OGNiMTY4ZDgxNTdjMjRhMjUwMTZkYmZiZWI0NjVlNDdmNDIwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgT2N0IDMxIDE4OjAxOjI0IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IENoYW5nZSA0eHggZXRoZXJuZXQgZHJpdmVyIHRvIGhhbmRsZSBjYWNoZWQgbWVtb3J5IHRvbwoKICAgIFRoaXMgcGF0Y2ggZW5hYmxlcyB0aGUgNHh4IEVNQUMgZHJpdmVyIHRvIHdvcmsgdG9vLCB3aGVuIGRjYWNoZSBpcwogICAgZW5hYmxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNDgzZTA5YTIyM2M2NjYyNjllZjgxZDM1NzNhNjU5MWIxMDQ2YjBlZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAzMSAxNzo1OToyMiAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBBZGQgY2hhbmdlX3RsYiBmdW5jdGlvbiB0byBtb2RpZnkgSSBhdHRyaWJ1dGUgb2YgVExCKHMpCgogICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGVpdGhlciB0dXJuIGNhY2hlIG9uIG9yIG9mZiBpbiBhIHNwZWNpZmljCiAgICBtZW1vcnkgYXJlYS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDI1ZGZlMDhmYmQxMjIwY2I5OTRlN2U2YjEwNTA0OWFhOWFhOGU3OQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAzMSAxNzo1Nzo1MiAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBSZW1vdmUgY2FjaGUgZGVmaW5pdGlvbiBmcm9tIDR4eCBib2FyZCBjb25maWcgZmlsZXMKCiAgICBBbGwgNHh4IGJvYXJkIGNvbmZpZyBmaWxlcyBkb24ndCBuZWVkIHRoZSBjYWNoZSBkZWZpbml0aW9ucyBhbnltb3JlLgogICAgVGhlc2UgYXJlIG5vdyBkZWZpbmVkIGluIGNvbW1vbiBoZWFkZXJzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5Yjk0YWM2MWQyMTc2MTg1YzMwYWRmMDc5M2UwNzllYzMwZTY4Njg3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgT2N0IDMxIDE3OjU1OjU4IDIwMDcgKzAxMDAKCiAgICBwcGM0eHg6IFJld29yayA0eHggY2FjaGUgc3VwcG9ydAoKICAgIE5ldyBjYWNoZSBoYW5kbGluZyBmdW5jdGlvbnMgYWRkZWQgYW5kIGFsbCBleGlzdGluZyBmdW5jdGlvbnMKICAgIG1vdmVkIGZyb20gc3RhcnQuUyBpbnRvIHNlcGVyYXRlIGNhY2hlLlMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDA2NzEzNzczZGE0YWMzZDM5MGM2M2Q4MjY0MWViNTUzMjI0YjI3YzIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjMgMTg6MDM6MTIgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogUmVtb3ZlIGNvbXBpbGVyIHdhcm5pbmcgZnJvbSBwcmV2aW91cyBjb21taXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmZhMzk3ZGY2N2MwZjI2OWU0NTI4YmYxODFhNmU4Yzg4Zjk3MjNmOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyMyAxNDo0MDozMCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBSZW1vdmUgdGVtcG9yYXJ5IFRMQiBlbnRyeSBpbiBQT1NUIGNhY2hlIHRlc3QKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTMzOGU2YTgxODM0MDk5YmExOTczM2I2OWFhZmQ4ZWY1ZjA5ODA5NApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyMyAxNDowNTowOCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBDaGFuZ2UgYXV0b25lZ290aWF0aW9uIHRpbWVvdXQgZnJvbSA0IHRvIDUgc2Vjb25kcwoKICAgIEkgbGF0ZWx5IG5vdGljZWQsIHRoYXQgbmV3ZXIgNHh4IGJvYXJkIHdpdGggR0JpdCBzdXBwb3J0IHNvbWV0aW1lcyBkb24ndAogICAgZmluaXNoIGxpbmsgYXV0b25lZ290aWF0aW9uIGluIDQgc2Vjb25kcy4gQ2hhbmdpbmcgdGhpcyB0aW1lb3V0IHRvIDUKICAgIHNlY29uZHMgc2VlbXMgZmluZSBoZXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyZDgzNDc2YTRjMWM5OTExZDE1OGEzZjhhNDMxMmQzNTRiYzFiZGI3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgT2N0IDIzIDE0OjAzOjE3IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENoYW5nZSA0eHhfZW5ldCAmIG1paXBoeSB0byB1c2Ugb3V0X2JlMzIoKSBhbmQgZnJpZW5kcwoKICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyBhbGwgaW4zMi9vdXQzMiBjYWxscyB0byB1c2UgdGhlIHJlY29tbWVuZGVkIGluX2JlMzIvCiAgICBvdXRfYmUzMiBtYWNyb3MgaW5zdGVhZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgN2Q0N2NlZTJjYzU3ZjkwNzM4MGYyYzA2ZjViNmM2ODNkMDNlNDIzYQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE9jdCAyNSAxMjoyNDo1OSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggUE9TVCBldGhlcm5ldCB0ZXN0IGZvciBIYWxlYWthbGEKCiAgICBUaGUgUE9TVCBldGhlcm5ldCB0ZXN0IG5lZWRlZCB0byBiZSBjaGFuZ2VkIHRvIGR5bmFtaWNhbGx5IGRldGVybWluZQogICAgdGhlIGNvdW50IG9mIGV0aGVybmV0IGRldmljZXMuIFRoaXMgY29kZSBpcyBjbG9uZWQgZnJvbSB0aGUgNHh4CiAgICBldGhlcm5ldCBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGYxMDQ5M2M2ZDc3YTFlMDdhNmMyZmY0ZDc3MjkzN2E1ZTczNTlkNmEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjMgMTE6MzE6MDUgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ29ycmVjdCBVQVJUIGlucHV0IGNsb2NrIGNhbGN1bGF0aW9uIGFuZCBwYXNzaW5nIHRvIGZkdAoKICAgIFdlIG5vdyB1c2UgYSB2YWx1ZSBpbiB0aGUgZ2QgKGdsb2JhbCBkYXRhKSBzdHJ1Y3R1cmUgZm9yIHRoZSBVQVJUIGlucHV0CiAgICBmcmVxdWVuY3ksIHNpbmNlIHRoZSBQUEM0eHhfU1lTX0lORk8gc3RydWN0IGlzIGFsd2F5cyByZXdyaXR0ZW4gY29tcGxldGVseQogICAgaW4gZ2V0X3N5c19pbmZvKCkuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM1M2YyNjg4YjRlMGZjN2I5NjliYzcwYTAyYmU0YjQwYmYwZGQxMjQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjMgMTA6MTA6MDggMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIGluaXRpYWwgQU1DQyBIYWxlYWthbGEgUFBDNDA1RVhyIGV2YWwgYm9hcmQgc3VwcG9ydAoKICAgIFRoZSBIYWxlYWthbGEgaXMgbmVhcmx5IGlkZW50aWNhbCB3aXRoIHRoZSBLaWxhdWVhIGV2YWwgYm9hcmQuIFRoZSBvbmx5CiAgICBkaWZmZXJlbmNlIGlzIHRoYXQgdGhlIDQwNUVYciBvbmx5IHN1cHBvcnRzIG9uZSBFTUFDIGFuZCBvbmUgUENJZQogICAgaW50ZXJmYWNlLiBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIEhhbGVha2FsYSBib2FyZCBieSB1c2luZwogICAgdGhlIGlkZW50aWNhbCBpbWFnZSBmb3IgS2lsYXVlYSBhbmQgSGFsZWFrYWxhLiBUaGUgZGlzdGluY3Rpb24gaXMgZG9uZQogICAgYnkgY29tcGFyaW5nIHRoZSBQVlIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDlmNzk4NzY2YWE4NWU2MmViOGZhOGM3MjFlMTQ4ZGY2MDliNzgxMzcKQXV0aG9yOiBFdWdlbmUgTydCcmllbiA8ZXVnZW5lLm9icmllbkBhZHZhbnRlY2hhbXQuY29tPgpEYXRlOglUdWUgT2N0IDIzIDA4OjI5OjEwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeGVkIG9mZnNldCBvZiByZWZyZXNoIHJhdGUgdHlwZSBmb3IgQmFtYm9vIG9uLWJvYXJkIEREUiBTRFJBTQoKICAgIFRoaXMgcGF0Y2ggYWxzbyBhZGRzIGEgbm90ZSB0byB0aGUgZml4ZWQgRERSIHNldHVwIGZvciBCYW1ib28gTkFORCBib290aW5nOgoKICAgIE5vdGU6CiAgICBBcyBmb3VuZCBvdXQgYnkgRXVnZW5lIE8nQnJpZW4gPGV1Z2VuZS5vYnJpZW5AYWR2YW50ZWNoYW10LmNvbT4sIHRoZSBmaXhlZAogICAgRERSIHNldHVwIGhhcyBwcm9ibGVtcyAoVS1Cb290IGNyYXNoZXMgcmFuZG9tbHkgdXBvbiBURlRQKSwgd2hlbiB0aGUgRElNTQogICAgbW9kdWxlcyBhcmUgc3RpbGwgcGx1Z2dlZCBpbi4gU28gaXQgaXMgcmVjb21tZW5kZWQgdG8gcmVtb3ZlIHRoZSBESU1NCiAgICBtb2R1bGVzIHdoaWxlIHVzaW5nIHRoZSBOQU5EIGJvb3RpbmcgY29kZSB3aXRoIHRoZSBmaXhlZCBTRFJBTSBzZXR1cCEKCiAgICBTaWduZWQtb2ZmLWJ5OiBFdWdlbmUgTydCcmllbiA8ZXVnZW5lLm9icmllbkBhZHZhbnRlY2hhbXQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGFmZTlmYTU5Y2I2M2I0ZjlkMTZiZjAxYzkzZWIyMTJmMjVhMzhjMmEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBPY3QgMjIgMTY6MjQ6NDQgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIFNOVFAgc3VwcG9ydCB0byBBTUNDIEthdG1haSwgS2lsYXVlYSAmIE1ha2FsdSBib2FyZHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzI0OGY2M2FkODljYjAzMTQ5MWVkYjcwMTY1ODdmZTZlOWEyMzhiOQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE9jdCAyMiAxNjoyMjo0MCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBSZXdvcmsgb2YgNHh4IHNlcmlhbCBkcml2ZXIgKDQpCgogICAgQ2hhbmdlIDR4eF91YXJ0LmM6CgogICAgLSBVc2UgaW5fOC9vdXRfOCBtYWNyb3MgaW5zdGVhZCBvZiBpbjgvb3V0OAogICAgLSBObyBuZWVkIGZvciBVQVJUX0JBU0UgbWFyY28gYW55bW9yZSwgbm93IHJlYWxseSBoYW5kbGVkIHZpYSBmdW5jdGlvbgogICAgICBwYXJhbWV0ZXIKICAgIC0gc2VyaWFsX2luaXRfY29tbW9uKCkgaW50cm9kdWNlZAogICAgLSBGdXJ0aGVyIGNvZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGU2MWNiODE2M2E2NmI4YTEzNTY5NmFlMjMyZTJiZWFkMWNlMGEwNDkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBPY3QgMjIgMTU6NDU6NDkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogUmV3b3JrIG9mIDR4eCBzZXJpYWwgZHJpdmVyICgzKQoKICAgIENoYW5nZSBhbGwgbGlua2VyIHNjcmlwdHMgdG8gcmVmZXJlbmNlIHRoZSBjaGFuZ2VkIGRyaXZlciBuYW1lIGlvcDQ4MF91YXJ0Lm8uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg4MmFlNDEyNzQ5MjFmOTAxNjEzMTgwNmJkZWIyN2UxOTYwNmY0N2EKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBPY3QgMjIgMTU6NDQ6MzkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogUmV3b3JrIG9mIDR4eCBzZXJpYWwgZHJpdmVyICgyKQoKICAgIENoYW5nZSBhbGwgbGlua2VyIHNjcmlwdHMgdG8gcmVmZXJlbmNlIHRoZSBjaGFuZ2VkIGRyaXZlciBuYW1lIDR4eF91YXJ0Lm8uCgogICAgTm90ZTogSW4gbW9zdCBjYXNlZCBhbGwgdGhlc2UgZXhwbGljaXQgcmVmZXJlbmNpbmcgb2YgdGhlc2Ugb2JqZWN0IGZpbGVzCiAgICBpbiB0aGUgbGlua2VyIHNjcmlwdHMgaXMgbm90IG5lY2Nlc3NhcnkuIE9ubHkgZm9yIG1hbnVhbGx5IGVtYmVkZGVkCiAgICBlbnZpcm9ubWVudCBpbnRvIHRoZSBVLUJvb3QgaW1hZ2UsIHdoaWNoIGlzIG5vdCBkb25lIGlzIG1vc3QgY2FzZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGFkMzFlNDBiZWQwNDJjYjY3MGQwMDM2ZmVhOTY0MzUwMDdhZmI4MzgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBPY3QgMjIgMTU6MDk6NTkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogUmV3b3JrIG9mIDR4eCBzZXJpYWwgZHJpdmVyICgxKQoKICAgIFRoaXMgcGF0Y2ggc3RhcnRzIHRoZSByZXdvcmsgb2YgdGhlIFBQQzR4eCBzZXJpYWwgZHJpdmVyLiBGaXJzdCB3ZSBzcGxpdAogICAgdGhlIGZpbGUgaW50byB0d28gc2VwZXJhdGUgZmlsZXMsIG9uZSA0eHhfdWFydC5jIHdpdGggdGhlIDQwNS80NDAgVUFSVAogICAgaGFuZGxpbmcgY29kZSBhbmQgdGhlIG90aGVyIG9uZSBpb3A0ODBfdWFydC5jIHdpdGggdGhlIFVBUlQgY29kZSBmb3IgdGhlCiAgICBQTFgtVGVjaCBJT1A0ODAgUFBDIChQUEM0MDMgYmFzZWQpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3NjRlNzQxN2VlNWY2ZTI1YjE3MTU3MjBlN2Q3ZGQzNDg3MTA5Mzg1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gT2N0IDIyIDEwOjMwOjM4IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENvcnJlY3QgVUFSVCBpbnB1dCBjbG9jayBjYWxjdWxhdGlvbiBhbmQgcGFzc2luZyB0byBmZHQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjExZWE5MWFjNmMyMjViZWM3ZTY2OGEwM2QwYmE3ZDczMTA2NzlmYQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE9jdCAyMiAwNzozNDozNCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgaW5pdGlhbCBBTUNDIE1ha2FsdSA0MDVFWCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGZhOGFlYTIwNDU2ZTZmMWRiYTQzZjQ2YmNjNzIwMjRkZDk0OTk5OTgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBPY3QgMjIgMDc6MzM6NTIgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIGZyZXFVQVJUIHRvIENQVSBzcGVlZCBkZXRlY3Rpb24KCiAgICBUaGlzIHZhbHVlIGlzIG5lZWRlZCBsYXRlciBmb3IgdGhlIGRldmljZSB0cmVlIGNvbmZpZ3VyYXRpb24gb2YKICAgIHRoZSB1YXJ0IGNsb2NrLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4MzdjNzMwYjRkN2M2YjFkZGYzZDFlMjQ3Y2I0NDQ1MDA1ZDliZjBkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTdW4gT2N0IDIxIDE0OjI2OjI5IDIwMDcgKzAyMDAKCiAgICBwcGM6IFNtYWxsIEtpbGF1ZWEgY2xlYW51cCBvZiBjb25maWcgZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3NThjMDM3YWVlYWQzNGI0OTYzMWI4ZGEzYTkwYjFiYmExNGMwNDEwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTdW4gT2N0IDIxIDA4OjE2OjEyIDIwMDcgKzAyMDAKCiAgICBydGM6IEFkZCBYaWNvci9JbnRlcnNpbCBYMTIwNSBSVEMgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgWGljb3IvSW50ZXJzaWwgWDEyMDUgUlRDIHVzZWQgb24gdGhlCiAgICBBTUNDIE1ha2FsdSBldmFsIGJvYXJkLiBUaGlzIGRyaXZlciBpcyBiYXNpY2FsbHkgY2xvbmVkIGZyb20gdGhlIExpbnV4CiAgICBkcml2ZXIgdmVyc2lvbiAoMi42LjIzKS4KCiAgICBUaGlzIHBhdGNoIGFsc28gaW50cm9kdWNlcyB0aGUgTGludXggYmNkLmggaGVhZGVyIGZvciB0aGUgQkNEMkJJTi8KICAgIEJJTjJCQ0QgY29udmVyc2lvbnMuIEluIHRoZSBmdXR1cmUgc29tZSBvZiB0aGUgb3RoZXIgVS1Cb290IFJUQyBkcml2ZXIKICAgIHNob3VsZCBiZSBjb252ZXJ0ZWQgdG8gYWxzbyB1c2UgdGhpcyBoZWFkZXIgaW5zdGVhZCBvZiBpbXBsZW1lbnRpbmcKICAgIHRoZWlyIG93biBsb2NhbCBjb3B5IG9mIHRoZXNlIGZ1bmN0aW9ucy9tYWNyb3MuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDA4N2RmZGI3OWI1ZmQxYWI5OWEyNjk5MGM2MmE3MzJjMDFhOGM3ZjYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVN1biBPY3QgMjEgMDg6MTI6NDEgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ29uc29saWRhdGUgc29tZSBvZiB0aGUgNDA1IGFuZCA0NDAgbWFjcm9zL3N0cnVjdHMgaW50byA0eHgKCiAgICBUaGlzIHBhdGNoIG1vdmVzIHNvbWUgY29tbW9uIDR4eCBtYWNyb3MgYW5kIHRoZSBQUEM0MDVfU1lTX0lORk8vCiAgICBQUEM0NDBfU1lTX0lORk8gc3RydWN0dXJlIGludG8gdGhlIGNvbW1vbiBwcGM0eHguaCBoZWFkZXIuCgogICAgTG90J3Mgb2Ygb3RoZXIgbWFjcm9zIGFyZSBnb29kIGNhbmRpZGF0ZXMgdG8gYmUgY29uc29saWRhdGVkIHRoaXMgd2F5CiAgICBpbiB0aGUgZnV0dXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3NzBjN2FmNTgwMGY1OThkMjI3MzBkMWY0YjcwZjE2YzliMzM1MTJlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTdW4gT2N0IDIxIDA4OjA1OjE4IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBzaXplIHNldHVwIGluIEtpbGF1ZWEgRERSMiBpbml0IHJvdXRpbmUKCiAgICBUaGUgc2l6ZSB3YXMgaW5pdGlsaXplZCB3cm9uZy4gSW5zdGVhZCBvZiAyNTZNQiwgdGhlIEREUjIgY29udHJvbGxlcgogICAgd2FzIHNldHVwIHRvIDUxMk1CLiBOb3cgdGhlIGNvcnJlY3QgdmFsdWVzIGlzIHVzZWQuCgogICAgVGhpcyBwYXRjaCBhbHNvIGRvZXMgYSBsaXR0bGUgY2xlYW51cCBhbmQgYWRkcyBhIGNvbW1lbnQgaGVyZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjZiYTliNTY2MDdkNGIyNzU1MDMwMWM3YzdmNmI1NWI2NTRmZDYyYQpBdXRob3I6IEV1Z2VuZSBPJ0JyaWVuIDxldWdlbmUub2JyaWVuQGFkdmFudGVjaGFtdC5jb20+CkRhdGU6CVRodSBPY3QgMTggMTc6Mjk6MDQgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRGVmaW5lIENPTkZJR19CT09LRSBmb3IgYWxsIFBQQzQ0MCBiYXNlZCBwcm9jZXNzb3JzCgogICAgQ09ORklHX0JPT0tFIG11c3QgYmUgZGVmaW5lZCBmb3IgUFBDNDQwIHByb2Nlc3NvcnMgc28gdGhhdCB0aGUgcHJvcGVyIFNQUgogICAgbnVtYmVyIGlzIHVzZWQgdG8gYWNjZXNzIHN5c3RlbSByZWdpc3RlcnMuCgogICAgU2lnbmVkLW9mZi1ieTogRXVnZW5lIE8nQnJpZW4gPGV1Z2VuZS5vYnJpZW5AYWR2YW50ZWNoYW10LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBjMzZjNjgxNjAzMzNhYzVmZTQxZWMzZGIxMmE3MjhiNzA3NWIzOTEyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgT2N0IDE4IDA3OjQyOjI3IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENoYW5nZSBpbmJvdW5kIFBDSWUgbG9jYXRpb24gZm9yIGVuZHBvaW50IHRlc3RzIG9uIEthdG1haQoKICAgIE9uIFl1Y2NhICYgS2F0bWFpLCB0aGUgaW5ib3VuZCBtZW1vcnkgbWFwIHBvaW50ZWQgdG8gMHg0LjAwMDAuMDAwMCwgd2hpY2gKICAgIGlzIHRoZSBpbnRlcm5hbCBTUkFNLiBTaW5jZSBJIG5vdyBwb3J0ZWQgYW5kIHRlc3RlZCB0aGlzIGVuZHBvaW50IG1vZGUKICAgIG9uIEtpbGF1ZWEgc3VjY2Vzc2Z1bGx5IHRvIG1hcCB0byAwIChTRFJBTSksIEkgYWxzbyBjaGFuZ2VkIHRoaXMgZm9yCiAgICBLYXRtYWkuCgogICAgWXVjY2Egd2lsbCBzdGF5IGF0IGludGVybmFsIFNSQU0gZm9yIG5vdy4gTm90IHN1cmUgaWYgc29tZWJvZHkgcmVsaWVzIG9uCiAgICB0aGlzIHNldHVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1Y2I0YWY0NzkxZjYxODQzNDMyMTU1MTQyYjZjZmFjOTAxZjY2YzEwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgT2N0IDE4IDA3OjM5OjM4IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBQQ0llIGVuZHBvaW50IHN1cHBvcnQgb24gS2lsYXVlYSAoNDA1RVgpCgogICAgVGhpcyBwYXRjaCBhZGRzIGVuZHBvaW50IHN1cHBvcnQgZm9yIHRoZSBBTUNDIEtpbGF1ZWEgZXZhbCBib2FyZC4gSXQgY2FuCiAgICBiZSB0ZXN0ZWQgYnkgY29ubmVjdGluZyBhIHJld29ya2VkIFBDSWUgY2FibGUgKG9ubHkgMXggbGFuZSBzaW5nbGVzCiAgICBjb25uZWN0ZWQpIHRvIGFub3RoZXIgcm9vdC1jb21wbGV4LgoKICAgIEluIHRoaXMgdGVzdCBzZXR1cCwgYSA2NE1CIGluYm91bmQgd2luZG93IGlzIGNvbmZpZ3VyZWQgYXQgQkFSMCB3aGljaCBtYXBzCiAgICB0byAwIG9uIHRoZSBQTEIgc2lkZS4gU28gYWNjZXNzaW5nIHRoaXMgQkFSMCBmcm9tIHRoZSByb290LWNvbXBsZXggd2lsbAogICAgYWNjZXNzIHRoZSBmaXJzdCA2NE1CIG9mIHRoZSBTRFJBTSBvbiB0aGUgUFBDIHNpZGUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQ0Y2IyZDE3OTQ2NDY2NzQwYWZlYjE5NWE1N2Q2Y2IyOTBiZjRjYzAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBPY3QgMTMgMTY6NDM6MjMgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRHluYW1pYyBjb25maWd1cmF0aW9uIG9mIDR4eCBQQ0llIG1vZGUgYXMgcm9vdCBvciBlbmRwb2ludCBtb2RlCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGR5bmFtaWMgY29uZmlndXJhdGlvbiBvZiBQQ0llIHBvcnRzIGZvciB0aGUKICAgIEFNQ0MgUFBDNHh4IGJvYXJkcyBlcXVpcHBlZCB3aXRoIFBDSWUgaW50ZXJmYWNlcy4gVGhlc2UgYXJlIHRoZSBQUEM0NDBTUGUKICAgIGJvYXJkcyBZdWNjYSAmIEthdG1haSBhbmQgdGhlIDQwNUVYIGJvYXJkIEtpbGF1ZWEuCgogICAgVGhpcyBkeW5hbWljIGNvbmZpZ3VyYXRpb24gaXMgZG9uZSB2aWEgdGhlICJwY2llX21vZGUiIGVudmlyb25lbWVudAogICAgdmFyaWFibGUuIFRoaXMgdmFyaWFibGUgY2FuIGJlIHNldCB0byAiRVAiIG9yICJSUCIgZm9yIGVuZHBvaW50IG9yCiAgICByb290cG9pbnQgbW9kZS4gTXVsdGlwbGUgdmFsdWVzIGNhbiBiZSBqb2luZWQgdmlhIHRoZSAiOiIgZGVsaW1pdGVyLgogICAgSGVyZSBhbiBleGFtcGxlOgoKICAgIHBjaWVfbW9kZT1SUDpFUDpFUAoKICAgIFRoaXMgd2F5LCBQQ0llIHBvcnQgMCB3aWxsIGJlIGNvbmZpZ3VyZWQgYXMgcm9vdHBvaW50LCBQQ0llIHBvcnQgMSBhbmQgMgogICAgYXMgZW5kcG9pbnQuCgogICAgUGVyIGRlZmF1bHQgWXVjY2Egd2lsbCBiZSBjb25maWd1cmVkIGFzOgogICAgcGNpZV9tb2RlPVJQOkVQOkVQCgogICAgUGVyIGRlZmF1bHQgS2F0bWFpIHdpbGwgYmUgY29uZmlndXJlZCBhczoKICAgIHBjaWVfbW9kZT1SUDpSUDpSRVAKCiAgICBQZXIgZGVmYXVsdCBLaWxhdWVhIHdpbGwgYmUgY29uZmlndXJlZCBhczoKICAgIHBjaWVfbW9kZT1SUDpSUAoKICAgIFNpZ25lZC1vZmYtYnk6IFRpcnVtYWxhIFIgTWFycmkgPHRtYXJyaUBhbWNjLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmZDY3MTgwMmI2N2EwZWYzN2EwNjEyNGZhMmNlODVmMDBhYTIyYzZmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgT2N0IDExIDExOjE1OjU5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEVuYWJsZSBkZXZpY2UgdHJlZSBzdXBwb3J0IChmZHQpIG9uIEtpbGF1ZWEgcGVyIGRlZmF1bHQKCiAgICBUaGlzIHBhdGNoIGVuYWJsZXMgdGhlIGZkdCBzdXBwb3J0IG9uIHRoZSBBTUNDIEtpbGF1ZWEgZXZhbCBib2FyZC4KICAgIEFkZGl0aW9uYWxseSBub3cgRUJDIHJhbmdlcyBmZHQgZml4dXAgaXMgaW5jbHVkZWQgdG8gc3VwcG9ydCBOT1IKICAgIEZMQVNIIG1hcHBpbmcgdmlhIHRoZSBMaW51eCBwaHlzbWFwX29mIGRyaXZlci4KCiAgICBUaGlzIEtpbGF1ZWEgcG9ydCBub3cgc3VwcG9ydCBib290aW5nIGFyY2gvcHBjIGFuZCBhcmNoL3Bvd2VycGMKICAgIExpbnV4IGtlcm5lbHMuIFRoZSBkZWZhdWx0IGVudmlyb25tZW50ICJuZXRfbmZzIiBpcyBmb3IgYXJjaC9wcGMKICAgIGFuZCAibmV0X25mc19mZHQiIGlzIGZvciBhcmNoL3Bvd2VycGMuIEluIHRoZSBsb25nIHJ1biwgYXJjaC9wcGMKICAgIHN1cHBvcnQgd2lsbCBiZSByZW1vdmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0OTk0ZmZkODkwYjlkOTVkODA3Mzg3YTliN2JkOGE0ODAzZWU0MDZlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgT2N0IDExIDExOjExOjQ1IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBhZGRpdGlvbmFsIGRlYnVnIGluZm8gdG8gNHh4IGZkdCBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGRiMzIzMmRkYjA1OGQwZWQwYmMzMWY3YzVjMjk2NzQ4YTFhZmFjNjcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgNSAyMToyODo1OCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggc21hbGwgbWVyZ2UgcHJvYmxlbXMgd2l0aCBDUENJNDQwIGFuZCBBY2FkaWEgYm9hcmRzCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDE5NDFjY2U3MWIxYWU5NzU2MDI4NTQwNDUwNjFlODJmOTRlY2QwMTIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgNSAxNzozNToxMCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggc21hbGwgbWVyZ2UgcHJvYmxlbSBpbiA0eHhfZW5ldC5jCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDU2NjgwNmNhMWExYmY0ZDg5NWRhYWYwYjJiYTU0OTRhYmJmZmViYWYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgNSAxNzoxMTozMCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgaW5pdGlhbCBBTUNDIEtpbGF1ZWEgNDA1RVggc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkYmJkMTI1NzIxYWVhNjY0NWZkYjk2MmYzNmJkNDFmNTllMjcyZjlkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgT2N0IDUgMTc6MTA6NTkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIFBQQzQwNUVYIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMWQ3Yjg3NGU5YzlhN2M2NmY1ZDhkYTllYzc4YTM3MzM3NjVkM2UzMQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE9jdCA1IDE3OjA5OjM2IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENsZWFudXAgb2YgNHh4IFBDSSBhbmQgUENJZSBzdXBwb3J0IChyZW5hbWluZykKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNGYxNGVkNjIzMGI5YzEwOWFhYzlhNmZiODc4NDk3ZGFiZDQ0YzJkYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE9jdCA1IDE3OjA3OjUwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBpbml0aWFsIGZkdCBzdXBwb3J0IHRvIDR4eCAoZmlyc3QgbmVlZGVkIG9uIDQwNUVYKQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhNDI0YThiYjI5MjRiOTA3MjRiOTQ0MTY1ZDMxNDFmMWZhOGRmZTViCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgT2N0IDUgMTc6MDQ6NTcgMjAwNyArMDIwMAoKICAgIFBPU1Q6IEFkZCA0MDVFWCBzdXBwb3J0IHRvIDR4eCBVQVJUIFBPU1QgdGVzdAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0ZjJlOTJjMTFmNmUyMzkyZmM4MTg3ODI5MjExYTVjYTdmMGMxZTEyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgT2N0IDUgMTU6MTA6MDIgMjAwNyArMDIwMAoKICAgIERUVDogUHJlcGFyZSBEUzE3NzUgZHJpdmVyIGZvciB1c2Ugb2YgZGlmZmVyZW50IEkyQyBhZGRyZXNzZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTllOTNiMWUxNmQyNjcyMjA0NDBkODI3YjkyMGZiYWQ4YWJmYTcwZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE9jdCA1IDE0OjIzOjQzIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IDR4eF9wY2llOiBDaGFuZ2UgUENJZSBzdGF0dXMgb3V0cHV0IHRvIG1hdGNoIGNvbW1vbiBzdHlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmZjY4ZjY2YmNiMGRhODQ3ODQ1YWEyZmFjMTFlYmE2YzI1OTM4Yzk5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgT2N0IDUgMDk6MjI6MzMgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogNHh4X3BjaWU6IERpc2FibGUgZGVidWcgb3V0cHV0IGFzIGRlZmF1bHQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOTc5MjM3NzBjYjUyYjY0ZDY5ZWVjOTU4YTExYjJlZGE4ZDQ2ZTBmNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE9jdCA1IDA5OjE4OjIzIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IDR4eF9wY2llOiBNb3JlIGdlbmVyYWwgY2xlYW51cCBhbmQgNDA1RVggUENJZSBzdXBwb3J0IGFkZGVkCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDRkYmVlOGE5MGRmNjEzZWI1MTdhYWRiZWNlYmQ3MGYxNjg5MTNkMzAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgNSAwNzo1NzoyMCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiA0eHhfcGNpZTogQ2hhbmdlIENGR19QQ0lFX01FTVNJWkUgdG8gMTI4TUIgb24gWXVjY2EgJiBLYXRtYWkKCiAgICAxMjhNQiBzZWVtcyB0byBiZSB0aGUgc21hbGxlc3QgcG9zc2libGUgdmFsdWUgZm9yIHRoZSBtZW1vcnkgc2l6ZQogICAgZm9yIG9uIFBDSWUgcG9ydC4gV2l0aCB0aGlzIGNoYW5nZSBub3cgdGhlIEJBUidzIG9mIHRoZSBQQ0llIGNhcmRzCiAgICBhcmUgYWNjZXNzaWJsZSB1bmRlciBVLUJvb3QuCgogICAgT25lIGJpZyBub3RlOiBUaGlzIG9ubHkgd29ya3MgZm9yIFBDSWUgcG9ydCAwICYgMS4gRm9yIHBvcnQgMiB0aGlzCiAgICBjdXJyZW50bHkgZG9lc24ndCB3b3JrLCBzaW5jZSB0aGUgYmFzZSBhZGRyZXNzIGlzIG5vdyAweGMwMDAwMDAwCiAgICAoMHhiMDAwMDAwMCArIDIgKiAweDA4MDAwMDAwKSwgYW5kIHRoaXMgaXMgYWxyZWFkeSBvY2N1cGllZCBieQogICAgQ0ZHX1BDSUUwX0NGR0JBU0UuIEJ1dCBzb2x2aW5nIHRoaXMgaXNzdWUgZm9yIHBvcnQgMiB3b3VsZCBtZWFuCiAgICB0byBjaGFuZ2UgdGhlIGJhc2UgYWRkcmVzc2VzIGNvbXBsZXRlbHkgYW5kIHRoaXMgY2hhbmdlIHdvdWxkIGhhdmUKICAgIHRvbyBtdWNoIGltcGFjdCByaWdodCBub3cuCgogICAgVGhpcyBwYXRjaCBhZGRzIGRlYnVnIG91dHB1dCB0byB0aGUgNHh4IHBjaWUgZHJpdmVyIHRvby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmQ5NTI4OTI4MWVkMjk1OGViZjc2ZDJiNTVmODZiYmQ4ODU5MWZkMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAzIDIxOjE2OjMyIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IDR4eF9wY2llOiBGaXggcHJvYmxlbSB3aXRoIFNEUk4gYWNjZXNzIHVzaW5nIHBvcnQgbnVtYmVyIGFzIGlkeAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzMDQ4YmNiZjBiYWQyNjIzNzhjNWFmNjhmMmJmNjc3OGZiN2Q4MjlhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgT2N0IDMgMTU6MDE6MDIgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogUmVuYW1lIDQwNWdwX3BjaSB0byA0eHhfcGNpIHNpbmNlIGl0cyB1c2VkIG9uIGFsbCA0eHggcGxhdGZvcm1zCgogICAgVGhlc2UgZmlsZXMgd2VyZSBpbnRyb2R1Y2VkIHdpdGggdGhlIElCTSA0MDVHUCBidXQgYXJlIGN1cnJlbnRseSB1c2VkIG9uIGFsbAogICAgNHh4IFBQQyBwbGF0Zm9ybXMuIFNvIHRoZSBuYW1lIGRvZXNuJ3QgbWF0Y2ggdGhlIGNvbnRlbnQgYW55bW9yZS4gVGhpcyBwYXRjaAogICAgcmVuYW1lcyB0aGUgZmlsZXMgdG8gNHh4X3BjaS5jL2guCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDk0Mjc2ZWIwYTdhMzViOWU4YzA1M2Q1ODlhZTIyNWIwZjAxN2EyMzcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMyAxNDoxNDo1OCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgYSBjb21tZW50IGZvciA0MDVFWCBQQ0llIGVuZHBvaW50IGNvbmZpZ3VyYXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDNkMzQ0YmI2YTVmMDgyZWExMGVjOWQ3NTM1NThlYTdkZmQxYzYyNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAzIDEwOjM4OjA5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IE1ha2UgNDQwU1BlIFBDSWUgY29kZSBtb3JlIGdlbmVyaWMgdG8gdXNlIG9uIGRpZmZlcmVudCA0eHggUFBDcyAoMykKCiAgICAoMykgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIG1hY3JvcyBsaWtlIFNEUk5fUEVTRFJfRExQU0VUKHBvcnQpIHRvIGFjY2VzcwoJdGhlIFNEUiByZWdpc3RlcnMgb2YgdGhlIFBDSWUgcG9ydHMuIFRoaXMgbWFrZXMgdGhlIG92ZXJhbGwgZGVzaWduCgljbGVhcmVyLCBzaW5jZSBpdCByZW1vdmVkIGEgbG90IG9mIHN3aXRjaCBzdGF0ZW1lbnRzIHdoaWNoIGFyZSBub3QKCW5lZWRlZCBhbnltb3JlLgoKCUFsc28sIHRoZSBmdW5jdGlvbnMgcHBjNHh4X2luaXRfcGNpZV9yb290cG9ydCgpIGFuZAoJcHBjNHh4X2luaXRfcGNpZV9lbnRwb3J0KCkgYXJlIG1lcmdlZCBpbnRvIGEgc2luZ2xlIGZ1bmN0aW9uCglwcGM0eHhfaW5pdF9wY2llX3BvcnQoKSwgc2luY2UgbW9zdCBvZiB0aGUgY29kZSB3YXMgZHVwbGljYXRlZC4KCVRoaXMgbWFrZXMgbWFpbnRhaW5hbmNlIGFuZCBwb3J0aW5nIHRvIG90aGVyIDR4eCBwbGF0Zm9ybXMKCWVhc2llci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDI2ZjcxMTA2ODcxZjMxZDE3ZDBlYTBkYjlhNzU0N2ZmOTI5MzRiYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAzIDA3OjQ4OjA5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IE1ha2UgNDQwU1BlIFBDSWUgY29kZSBtb3JlIGdlbmVyaWMgdG8gdXNlIG9uIGRpZmZlcmVudCA0eHggUFBDcyAoMikKCiAgICBUaGlzIHBhdGNoIGlzIHRoZSBmaXJzdCBwYXRjaCBvZiBhIHNlcmllcyB0byBtYWtlIHRoZSA0NDBTUGUgUENJZSBjb2RlCiAgICB1c2FibGUgb24gZGlmZmVyZW50IDR4eCBQUEMgcGxhdGZvcm1zLiBJbiBwcmVwZXJhdGlvbiBmb3IgdGhlIG5ldyA0MDVFWAogICAgd2hpY2ggaXMgYWxzbyBlcXVpcHBlZCB3aXRoIFBDSWUgaW50ZXJmYWNlcy4KCiAgICAoMikgVGhpcyBwYXRjaCByZW5hbWVzIHRoZSBmdW5jdGlvbnMgZnJvbSA0NDBzcGVfIHRvIDR4eF8gd2l0aCBhCglsaXR0bGUgYWRkaXRpb25hbCBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGM3YzZkYTIzMDI4ZjE0NmQ5MTI1MTRiOTVhZWZhM2RhN2NmMzc2OTkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBPY3QgMyAwNzozNDoxMCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBNYWtlIDQ0MFNQZSBQQ0llIGNvZGUgbW9yZSBnZW5lcmljIHRvIHVzZSBvbiBkaWZmZXJlbnQgNHh4IFBQQ3MgKDEpCgogICAgVGhpcyBwYXRjaCBpcyB0aGUgZmlyc3QgcGF0Y2ggb2YgYSBzZXJpZXMgdG8gbWFrZSB0aGUgNDQwU1BlIFBDSWUgY29kZQogICAgdXNhYmxlIG9uIGRpZmZlcmVudCA0eHggUFBDIHBsYXRmb3Jtcy4gSW4gcHJlcGVyYXRpb24gZm9yIHRoZSBuZXcgNDA1RVgKICAgIHdoaWNoIGlzIGFsc28gZXF1aXBwZWQgd2l0aCBQQ0llIGludGVyZmFjZXMuCgogICAgKDEpIFRoaXMgcGF0Y2ggcmVuYW1lcyB0aGUgZmlsZXMgZnJvbSA0NDBzcGVfcGNpZSB0byA0eHhfcGNpZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyNDVhMzYyYWQzYzBjMWI4NGZjY2M5ZmVjN2I2MjNlYjE0ZjZlNTAyCkF1dGhvcjogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE9jdCAyNCAwMTozNzozNiAyMDA3ICswMjAwCgogICAgVFFNNTIwMDogQ2FsbCB1c2JfY3B1X2luaXQoKSBkdXJpbmcgYm9hcmQgaW5pdAoKICAgIHVzYl9jcHVfaW5pdCgpIGNvbmZpZ3VyZXMgR1BTIFVTQiBwaW5zLCBjbG9ja3MsIGV0Yy4gYW5kCiAgICBpcyByZXF1aXJlZCBmb3IgcHJvcGVyIG9wZXJhdGlvbiBvZiBrZXJuZWwgVVNCIHN1YnN5c3RlbS4KICAgIFRoaXMgc2V0dXAgd2FzIHByZXZpb3VzbHkgZG9uZSBpbiB0aGUga2VybmVsIGJ5IHRoZSBmaXh1cAogICAgY29kZSB3aGljaCBpcyBiZWluZyByZW1vdmVkLCB0aHVzIGxvdyBsZXZlbCBpbml0IG11c3QgYmUKICAgIGRvbmUgYnkgVS1ib290IG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCBiNWFmNzczZjhkOTI2NzdlMDZmMzI5NWI0NTU1N2M5ZDBhNDg3YzI0CkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAyNSAxNzo1MToyNyAyMDA3ICswODAwCgogICAgRml4IHRoZSBpc3N1ZSBvZiB1c2Jfa2JkIGRyaXZlciBtaXNzaW5nIHRoZSBzY2FuIGNvZGUgb2Yga2V5ICd6Jy4KCiAgICBUaGUgc2NhbiBjb2RlIG9mIHRoZSBrZXkgJ3onIGlzIDB4MWQsIHdoaWNoIHNob3VsZCBiZSBoYW5kbGVkLgoKICAgIFRoZSBjaGFuZ2UgaGFzIGJlIHRlc3RlZCBvbiBOT1ZBVEVLIFVTQiBrZXlib2FyZCBhbmQgVUxJIFBDSSBPSENJCiAgICBjb250cm9sbGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgoKY29tbWl0IDg1YWM5ODhlODZmOTQxNGZhNjQ1YjAxNDhkYzY2YzM1MjBhMWViODQKQXV0aG9yOiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBlbm5lZW5uZS5jb20+CkRhdGU6CU1vbiBPY3QgMTUgMTE6NTk6MTcgMjAwNyArMDIwMAoKICAgIFBYQSBVU0IgT0hDSTogInVzYiBzdG9wIiBpbXBsZW1lbnRhdGlvbi4KCiAgICBTb21lIFVTQiBrZXlzIG5lZWQgdG8gYmUgc3dpdGNoZWQgb2ZmIGJlZm9yZSBsb2FkaW5nIHRoZSBrZXJuZWwKICAgIG90aGVyd2lzZSB0aGV5IGNhbiByZW1haW4gaW4gYW4gdW5kZWZpbmVkIHN0YXR1cyB3aGljaCBwcmV2ZW50cyB0aGVtCiAgICB0byBiZSBjb3JyZWN0bHkgcmVjb2duaXplZCBieSB0aGUga2VybmVsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGxpbnV4Lml0PgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCAzMTU0ODI0OWRlY2YxOGE2Yjg3N2ExODQzNmI2MTM5ZGQ0ODNmZTRhCkF1dGhvcjogSnVzdGluIEZsYW1taWEgPGpmbGFtbWlhQHNhdmFudGF2LmNvbT4KRGF0ZToJTW9uIE9jdCAyOSAxNzo0MDozNSAyMDA3IC0wNDAwCgogICAgREhDUCBDbGllbnQgRml4CgogICAgVGhpcyBpcyBhIG11bHRpLXBhcnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC4KCiAgICBjb21taXQgZTZlNTA1ZWFlOTRlZDcyMWUxMjNlMTc3NDg5MjkxZmM0NTQ0YjdiOAogICAgQXV0aG9yOiBKdXN0aW4gRmxhbW1pYSA8amZsYW1taWFAc2F2YW50YXYuY29tPgogICAgRGF0ZTogICBNb24gT2N0IDI5IDE3OjE5OjAzIDIwMDcgLTA0MDAKCglGb3VuZCBhIGJ1ZyBpbiB0aGUgd2F5IHRoZSBESENQIFJlcXVlc3QgcGFja2V0IGlzIGJ1aWx0LCB3aGVyZSB0aGUgSVAgYWRkcmVzcwoJdGhhdCBpcyBvZmZlcmVkIGJ5IHRoZSBzZXJ2ZXIgaXMgYm91bmQgdG8gcHJlbWF0dXJlbHkuIFRoaXMgcGF0Y2ggaXMgYSBmaXggb2YKCXRoYXQgYnVnIHdoZXJlIHRoZSBJUCBhZGRyZXNzIG9mZmVyZWQgYnkgdGhlIERIQ1Agc2VydmVyIGlzIG5vdCB1c2VkIHVudGlsCglhZnRlciB0aGUgREhDUCBBQ0sgZnJvbSB0aGUgc2VydmVyIGlzIHJlY2VpdmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEp1c3RpbiBGbGFtbWlhIDxqZmxhbW1pYUBzYXZhbnRhdi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCBlOGVlOGYzYWRlMmEwNmMxODkzZGQ1ZTY4ZjIyMzA3MGQ2NTBjN2VkCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDI1IDE3OjE2OjIyIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZSA1NDQ1NTogRml4IGNvcnJlY3QgYm9vdCBsb2NhdGlvbiBmb3IgYXRtZWwgYW5kIGludGVsCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY4OGU4ZWI0MTRhYzExMWNjYTdjZTYwYmRmMzBlODA1YWI5YTdiY2IKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMjUgMTc6MTQ6MDAgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBGaXggYnVpbGQgZXJyb3Igd2hlbiBDT05GSUdfV0FUQ0hET0cgaXMgZGVmaW5lZAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNjdlMTJlNzA1YjIwNGNmZTkxNGUzZTNlNjkzZDY5YTQ0NWRjYWJmCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDI1IDE3OjEyOjM2IDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZSA1MzI5OiBBc3NpZ24gY29ycmVjdCBTRFJBTSBzaXplIGFuZCBmaXggY2FjaGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTVlOWYyYzIxMmE2NTYxMGIyZTU5YTVjMDBkMDExMzM4M2E0ZGEwYgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAyNSAxNzoxMDoyMyAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmUgNTI1MzogQXNzaWduIGNvcnJlY3QgU0RSQU0gc2l6ZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyYWNlZmE3MmVlMDAyNmY4NjJhYjY1NTk3Y2E2ODc0MjhmNjNhOTczCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDI1IDE3OjA5OjE3IDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZSA1MjgyOiBGaXggZXh0ZXJuYWwgZmxhc2ggYm9vdCBhbmQgcmV0dXJuIGRyYW1zaXplCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ3ODc5MWFlOTE0ZDRlN2M1ZWRjYTFjZGFkNzNiM2RjODFhNGViODIKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgT2N0IDI1IDE3OjIwOjAxIDIwMDcgKzAyMDAKCiAgICBUUU01MjAwOiBpbmNyZWFzZSBrZXJuZWxfYWRkcl9yIGFuZCBmZHRfYWRkcl9yIChoaW50ZWQgYnkgV29sZmdhbmcgRGVuaykuCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCAxYTBjZTIwYWE0Y2I0ZTMwNjhkYTA0ZTcyOTBlZTk5ODZmZDBiODM0CkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CVdlZCBPY3QgMjQgMDg6NDI6MjUgMjAwNyArMDIwMAoKICAgIFRRTTUyMDA6IGZpeCBzcHVyaW91cyBjaGFyYWN0ZXJzIG9uIHNlY29uZCBzZXJpYWwgaW50ZXJmYWNlCgogICAgV2l0aCB0aGlzIHBhdGNoIFBTQzMgaXMgY29uZmlndXJlZCBhcyBVQVJULiBUaGlzIGlzIGRvbmUsIGJlY2F1c2UgaWYKICAgIHRoZSBwaW5zIG9mIFBTQzMgYXJlIG5vdCBjb25maWd1cmVkIGF0IGFsbCAoLT4gYWxsIHBpbnMgYXJlIEdQSSksCiAgICBkdWUgdG8gY3Jvc3N0YWxrLCBzcHVyaW91cyBjaGFyYWN0ZXJzIG1heSBiZSBzZW5kIG92ZXIgdGhlIFJYMjMyXzJfVFhECiAgICBzaWduYWwgbGluZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBiZTRhODdmMTFlMjk3YTVjZWRlZGJmN2RkNzFjMDI0OGYzODc0YWNkCkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CVdlZCBPY3QgMjQgMDg6NDE6MjcgMjAwNyArMDIwMAoKICAgIFRRTTUyMDBTOiBmaXggY29tbWFuZHMgZm9yIFNUSzUyeHggYmFzZSBib2FyZCBiZWNhdXNlIG9mIG1pc3NpbmcgU001MDEgZ3JhZmljIGNvbnRyb2xsZXIKCiAgICBTb21lIGNvbW1hbmRzIGZvciB0aGUgU1RLNTJ4eCBiYXNlIGJvYXJkIHRyeSB0byBhY2Nlc3MgdGhlIFNNNTAxIGdyYWZpYwogICAgY29udHJvbGxlci4gQnV0IHRoZSBUUU01MjAwUyBoYXMgbm8gZ3JhZmljIGNvbnRyb2xsZXIgKG9ubHkgdGhlIFRRTTUyMDAKICAgIGFuZCB0aGUgVFFNNTIwMEIgaGF2ZSkuIFRoaXMgcGF0Y2ggZGVhY3RpdmF0ZXMgdGhlIGNvbW1hbmRzIGFjY2Vzc2luZwogICAgdGhlIFNNNTAxIGZvciB0aGUgVFFNNTIwMFMuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYjMxZjY0MzQzZWFkOTQ4MmNkNDM5YjFhZGJlNGMzNDAyNmE2NDFiMQpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglNb24gT2N0IDIyIDE2OjQ1OjUzIDIwMDcgKzAyMDAKCiAgICBUUU01MjAwOiBmaXggc3B1cmlvdXMgY2hhcmFjdGVycyBvbiBzZWNvbmQgc2VyaWFsIGludGVyZmFjZQoKICAgIFdpdGggdGhpcyBwYXRjaCBQU0MzIGlzIGNvbmZpZ3VyZWQgYXMgVUFSVC4gVGhpcyBpcyBkb25lLCBiZWNhdXNlIGlmCiAgICB0aGUgcGlucyBvZiBQU0MzIGFyZSBub3QgY29uZmlndXJlZCBhdCBhbGwgKC0+IGFsbCBwaW5zIGFyZSBHUEkpLAogICAgZHVlIHRvIGNyb3NzdGFsaywgc3B1cmlvdXMgY2hhcmFjdGVycyBtYXkgYmUgc2VuZCBvdmVyIHRoZSBSWDIzMl8yX1RYRAogICAgc2lnbmFsIGxpbmUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgMGZjMGY5MWIyMGZmYTgwMmY1YTY2NTM0Y2E1YzI4NDQ5MTA1ODNmNgpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglNb24gT2N0IDIyIDE2OjQwOjA2IDIwMDcgKzAyMDAKCiAgICBUUU01MjAwUzogZml4IGNvbW1hbmRzIGZvciBTVEs1Mnh4IGJhc2UgYm9hcmQgYmVjYXVzZSBvZiBtaXNzaW5nIFNNNTAxIGdyYWZpYyBjb250cm9sbGVyCgogICAgU29tZSBjb21tYW5kcyBmb3IgdGhlIFNUSzUyeHggYmFzZSBib2FyZCB0cnkgdG8gYWNjZXNzIHRoZSBTTTUwMSBncmFmaWMKICAgIGNvbnRyb2xsZXIuIEJ1dCB0aGUgVFFNNTIwMFMgaGFzIG5vIGdyYWZpYyBjb250cm9sbGVyIChvbmx5IHRoZSBUUU01MjAwCiAgICBhbmQgdGhlIFRRTTUyMDBCIGhhdmUpLiBUaGlzIHBhdGNoIGRlYWN0aXZhdGVzIHRoZSBjb21tYW5kcyBhY2Nlc3NpbmcKICAgIHRoZSBTTTUwMSBmb3IgdGhlIFRRTTUyMDBTLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IDdiMGE0MjIxOWYzMDI3N2Y3MWY0NDA1Y2JhZjhhMjY5ZjZkMmQyMjcKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglTdW4gT2N0IDIxIDA5OjE0OjI4IDIwMDcgKzAyMDAKCiAgICBNaXBzOiBGaXggc3RyaW5nIGZ1bmN0aW9ucyBkaWZmZXIgcHJvdG90eXBlIGRlY2xhcmF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCBjYjgyNTBmZTRiM2M0ZWQ1NDliMjcwZThhMjBiYzIyMDYwZTdlMWQyCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE9jdCAxOSAxNzo1MTo0MCAyMDA3IC0wNTAwCgogICAgZnNsX3BjaV9pbml0IGVuYWJsZSBDT01NQU5EX01FTU9SWSBpZiBpbmJvdW5kIHdpbmRvdwoKICAgIFBhdGNoIDE2ZTIzYzNmIHJlbW92ZWQgUENTUkJBUiBhbGxvY2F0aW9uLglCdXQgcGFzc2luZyB6ZXJvIHdpbmRvd3MKICAgIHRvIHBjaWF1dG9fc2V0dXBfZGV2aWNlIGhhcyB0aGUgc2lkZSBlZmZlY3Qgb2Ygbm90IGdldHRpbmcKICAgIENPTU1BTkRfTUVNT1JZIHNldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU5ZDBkNTI3OTkyNTY2ZWJlZjk4MjY5NjJmZjE3NDViMmYwODJiOTIKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgT2N0IDE5IDEwOjU1OjI0IDIwMDcgKzAyMDAKCiAgICBkZWx0YTogRml4IE9IQ0lfUkVHU19CQVNFIHVuZGVjbGFyZWQgYW5kIHdhaXRfbXMgaW1wbGljaXQgZGVjbGFyYXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IDljNDg4NGY1NGRhOTgyY2U5OTBjN2QxNzYwYWM4MWIwNzA0ZDNjNjQKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgT2N0IDE5IDA4OjEwOjE1IDIwMDcgKzAyMDAKCiAgICBmaXggd2FybmluZzogbm8gcmV0dXJuIHN0YXRlbWVudCBpbiBmdW5jdGlvbiByZXR1cm5pbmcgbm9uLXZvaWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGU3ODIyMGY2ZTUxNDIwNjc1N2FjZmUyNDcyOTdmYzlhMzI4YTg4MWYKQXV0aG9yOiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgpEYXRlOglGcmkgT2N0IDE5IDA2OjMzOjQ1IDIwMDcgKzAyMDAKCiAgICB4c2VuZ2luZTogRml4IG5vIHBhcnRpdGlvbiB0eXBlIHNwZWNpZmllZCwgdXNlIERPUyBhcyBkZWZhdWx0CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAxMGNkYjhkYmQ2N2E4MTg4MjNhYjllYzg4YjY4ZmMzNDg5MDNkYjU5CkF1dGhvcjogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KRGF0ZToJRnJpIE9jdCAxOSAwMDoyNDo1OSAyMDA3ICswMjAwCgogICAgbHViYm9jazogRml4IG5vIHBhcnRpdGlvbiB0eXBlIHNwZWNpZmllZCwgdXNlIERPUyBhcyBkZWZhdWx0CgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCA0MWI0ZDI4MmQzOGZhNzIzMWMzMTVjNWY2Y2ZmZjViZGQyNGUwMTkxCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyMyAxNjo1MDowMyAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlOiBrZWVwIGxpc3RzIHNvcnRlZDsgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNThiNzRiMDVjNjIxZTI4MzVlY2Y0ZTJkMzI0MzA0MmNmNDE4Njc3NwpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBPY3QgMTkgMDA6MDk6MDUgMjAwNyArMDIwMAoKICAgIEZpeCBtaXNzaW5nIGRyaXZlcnMgbWFrZWZpbGUgZW50cmllcyBkczE3MjIuYyBtd19lZXByb20uYwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgOTY0NTViZmViYzk4ODc4MzcwOTVjOTA1MWQyMTZmNTNjNjFiNWYxMApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CUZyaSBPY3QgMTkgMDA6MDc6MzkgMjAwNyArMDIwMAoKICAgIEZpeCB3YXJuaW5nIGRpZmZlciBpbiBzaWduZWRuZXNzIGluIGJvYXJkL2lubm9rb20vaW5ub2tvbS5jCgogICAgU2lnbmVkLW9mZi1ieTogSmVhbi1DaHJpc3RvcGhlIFBMQUdOSU9MLVZJTExBUkQgPHBsYWduaW9qQGpjcm9zb2Z0LmNvbT4KCmNvbW1pdCAyYTQ3NDFkOWExNGVjNDc1ZjUwZTk4NTZkMmMwYTY3ZThiNDI3MWJkCkF1dGhvcjogTWFyY2VsIFppc3dpbGVyIDxtYXJjZWxAemlzd2lsZXIuY29tPgpEYXRlOglGcmkgT2N0IDE5IDAwOjI1OjMzIDIwMDcgKzAyMDAKCiAgICBmaXggcHhhMjU1X2lkcCBib2FyZAoKICAgIFRoZSBweGEyNTVfaWRwIGJlaW5nIGFuIG9sZCB1bm1haW50YWluZWQgYm9hcmQgc2hvd2VkIHNldmVyYWwgaXNzdWVzOgogICAgMS4gQ09ORklHX0lOSVRfQ1JJVElDQUwgd2FzIHN0aWxsIGRlZmluZWQuCiAgICAyLiBOZWl0aGVyIENPTkZJR19NQUNfUEFSVElUSU9OIG5vciBDT05GSUdfRE9TX1BBUlRJVElPTiB3YXMgZGVmaW5lZC4KICAgIDMuIFN5bWJvbCBmbGFzaF9hZGRyIHdhcyB1bmRlY2xhcmVkLgogICAgNC4gVGhlIGJvYXJkcyBsb3dsZXZlbF9pbml0IGZ1bmN0aW9uIHdhcyBzdGlsbCBjYWxsZWQgbWVtc2V0dXAuCiAgICA1LiBUaGUgVEVYVF9CQVNFIHdhcyBzdGlsbCAweGEzMDAwMDAwIHJhdGhlciB0aGFuIDB4YTMwODAwMDAuCiAgICA2LiBVc2luZyAtbWFyY2g9YXJtdjUgaW5zdGVhZCBvZiAtbWFyY2g9YXJtdjV0ZSByZXN1bHRlZCBpbiBsb3RzIG9mCiAgICAndGFyZ2V0IENQVSBkb2VzIG5vdCBzdXBwb3J0IGludGVyd29ya2luZycgd2FybmluZ3Mgb24gcmVjZW50IGNvbXBpbGVycy4KICAgIDcuIFRoZSBQWEEncyBzZXJpYWwgZHJpdmVyIHJlZGVmaW5lZCBGRlVBUlQsIEJUVUFSVCBhbmQgU1RVQVJUIHVzZWQgYXMKICAgIGluZGV4ZXMgcmF0aGVyIHRoYW4gdGhlIHJlZ2lzdGVyIGRlZmluaXRpb25zIGZyb20gdGhlIHB4YS1yZWdzIGhlYWRlcgogICAgZmlsZS4gUmVuYW1lZCB0aGVtIHRvIEZGVUFSVF9JTkRFWCwgQlRVQVJUX0lOREVYIGFuZCBTVFVBUlRfSU5ERVggdG8KICAgIGF2b2lkIGFueSBhbWJpZ3VpdGllcy4KICAgIDguIFRoZXJlIHdlcmUgc2V2ZXJhbCByZWRlZmluaXRpb24gd2FybmluZ3MgY29uY2VybmluZyBJQ01SLCBPU01SMywKICAgIE9TQ1IsIE9XRVIsIE9JRVIsIFJDU1IgYW5kIENDQ1IgaW4gdGhlIFBYQSdzIGFzc2VtYmx5IHN0YXJ0IGZpbGUuCiAgICA5LiBUaGUgYm9hcmQgY29uZmlndXJhdGlvbiBmaWxlIHdhcyByYXRoZXIgb3V0ZGF0ZWQuCiAgICAxMC4gVGhlIHBhcnQgaGVhZGVyIGZpbGUgZGVmaW5lZCB0aGUgdmVuZG9yLCBwcm9kdWN0IGFuZCByZXZpc2lvbiBhcnJheXMKICAgIGFzIHVuc2lnbmVkIGNoYXJzIGluc3RlYWQgb2YganVzdCBjaGFycyBpbiB0aGUgYmxvY2tfZGV2X2Rlc2NfdAogICAgc3RydWN0dXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcmNlbCBaaXN3aWxlciA8bWFyY2VsQHppc3dpbGVyLmNvbT4KCmNvbW1pdCAyOThjZDRjYWZlODFmZjhhNmM4N2JlOGZiYzQ0MGEyMDcyMGQzZWQ2CkF1dGhvcjogUnVuZSBUb3JnZXJzZW4gPHJ1bmV0QGlubm92c3lzLmNvbT4KRGF0ZToJV2VkIE9jdCAxNyAxMTo1NjozMSAyMDA3IC0wNTAwCgogICAgTWFrZSBNUEM4MjY2QURTIGNvbW1hbmQgc2VsZWN0aW9uIG1vcmUgcm9idXN0CgogICAgRml4IE1QQzgyNjYgY29tbWFuZCBsaW5lIGRlZmluaXRpb24gc28gaXQgd29uJ3QgYnJlYWsgd2hlbiBuZXcgY29tbWFuZHMKICAgIGFyZSBhZGRlZCB0byB1LWJvb3QuCiAgICBTaWduZWQtb2ZmLWJ5IFJ1bmUgVG9yZ2Vyc2VuIDxydW5ldEBpbm5vdnN5cy5jb20+Cgpjb21taXQgZDNhZmExZWUxOTM0NWEzMWZkMWVhYWQzZTk4Yjk3ZDEzY2E0NzMxNQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBPY3QgMjMgMTM6MTQ6MTAgMjAwNyArMDIwMAoKICAgIE1vdGlvbi1QUk86IFVwZGF0ZSBjb25maWd1cmF0aW9uIHRvIGFjY29tb2RhdGUgbmV4dCBnZW5lcmF0aW9uIGJvYXJkLgoKICAgIE5ldyBib2FyZCBoYXMgZmFzdGVyIG9zY2lsbGF0b3IgYW5kIGEgZGlmZmVyZW50IEZsYXNoIGNoaXAuIFRoaXMgYWZmZWN0czoKICAgIC0gQ0ZHX01QQzVYWFhfQ0xLSU4KICAgIC0gU0RSQU0gdGltaW5ncwogICAgLSBGbGFzaCBDUyBjb25maWd1cmF0aW9uICh0aW1pbmdzKQogICAgLSBGbGFzaCBzZWN0b3Igc2l6ZSwgYW5kIHRodXMgTVREIHBhcnRpdGlvbiBsYXlvdXQKICAgIC0gbWFsbG9jKCkgYXJlbmEgc2l6ZSAoZHVlIHRvIGJpZ2dlciBGbGFzaCBzZWN0b3JzKQogICAgLSBzbWFsbGVyIG1lbW9yeSB0ZXN0IHJhbmdlIChkdWUgdG8gYmlnZ2VyIG1hbGxvYygpIGFyZW5hKQoKICAgIFRoaXMgcGF0Y2ggYWxzbyBlbmFibGVzIG1vcmUgZXh0ZW5zaXZlIG1lbW9yeSB0ZXN0aW5nIHZpYSAibXRlc3QiLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgZWZmNTAxOTA0ZGYyYmYxNzI0YTc1MDA2MjYyOGJhMmM1MWRiYjFmOApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBPY3QgMjMgMTE6MzY6MDcgMjAwNyArMDIwMAoKICAgIE1vdGlvbi1QUk86IEFkZCBzZXR0aW5nIG9mIFNEZWxheSByZWcuIHRvIFNEUkFNIGNvbnRyb2xsZXIgY29uZmlndXJhdGlvbi4KCiAgICBQZXIgQU4zMjIxIChNUEM1MjAwQiBTRFJBTSBJbml0aWFsaXphdGlvbiBhbmQgQ29uZmlndXJhdGlvbiksIHRoZSBTRGVsYXkKICAgIHJlZ2lzdGVyIG11c3QgYmUgd3JpdHRlbiBhIHZhbHVlIG9mIDB4MDAwMDAwMDQgYXMgdGhlIGZpcnN0IHN0ZXAgb2YgdGhlCiAgICBTRFJBTSBjb250b3JsbGVyIGNvbmZpZ3VyYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA3YTkzNDg3MjhlYmRhNjNjZGJhYWNmZmQ4MzA5OWFhNzFkOWQ0YzU0CkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIE9jdCAyMyAxMDoyMjoxNiAyMDA3ICswMTAwCgogICAgTW92ZSBQTDAxKiBzZXJpYWwgZHJpdmVycyB0byBkcml2ZXJzL3NlcmlhbCBhbmQgYWRqdXN0IE1ha2VmaWxlcy4KCmNvbW1pdCAyMGQ1MDBkNTMxYTZiOTcxY2U2Y2MxYmYxOTFjYjAwOTJjZGMwYWZjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgT2N0IDIzIDEwOjE3OjQyIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IGx3bW9uNTogU29tZSBmdXJ0aGVyIEdQSU8gY29uZmlnIGNoYW5nZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZGU5YTczOGZhYTdjMmY0NzI4NjExOWMzYmZlYmMzZGZiZmU3ZDg2ZApBdXRob3I6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgpEYXRlOglTdW4gT2N0IDIxIDIyOjEwOjEwIDIwMDcgKzA5MDAKCiAgICBbTUlQU10gRml4IFVOQ0FDSEVEX1NEUkFNCgogICAgUEhZU0FERFIgaXMgZm9yIHBoeXNpY2FsIGFkZHJlc3MsIEtTRUcxQUREUiBpcyBmb3IgdW5jYWNoZWQuCgogICAgU2lnbmVkLW9mZi1ieTogVmxhZCBMdW5ndSA8dmxhZEBjb21zeXMucm8+CiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+Cgpjb21taXQgMDAxMDFkZDdhMzJkMTJmNjk4MTUwMTIzZTQ3ZTRiMzQyMDI3OWY4NgpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJU3VuIE9jdCAyMSAyMTozMDo0MiAyMDA3ICswOTAwCgogICAgW01JUFNdIEFkZCBQSUMtcmVsYXRlZCBzd2l0Y2hlcyB0byBQTEFURk9STV97Q1BQLExEfUZMQUdTIGFuZCBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgoKY29tbWl0IGViNzAwNjM2ZGIwMTdkMzEwZWRhZWI1NTliMTNkODI1ODg1NjA2NzQKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CVN1biBPY3QgMjEgMTA6NTU6MzcgMjAwNyArMDkwMAoKICAgIFtNSVBTXSB1LWJvb3QubGRzOiBEZWZpbmUgX2dwIGluIGEgc3RhbmRhcmQgbWFubmVyCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgoKY29tbWl0IDIyMDY5MjE1ZWI3YWRmNWEzODg4YmY3Yzc3ODRlYTlkNzBhNzJjZDAKQXV0aG9yOiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+CkRhdGU6CVN1biBPY3QgMjEgMTA6NTU6MzYgMjAwNyArMDkwMAoKICAgIFtNSVBTXSBGaXggJGdwIHVzYWdlCgogICAgTm93IHdlIGxvYWQgJGdwIHdpdGggX0dMT0JBTF9PRkZTRVRfVEFCTEVfLCBidXQgdGhpcyBpcyBpbmNvcnJlY3QgdXNlLgogICAgQXMgYSBnZW5lcmFsIHByaW5jaXBsZSwgd2Ugc2hvdWxkIHVzZSBfZ3AgZm9yICRncC4KCiAgICBUaGFua3MgdG8gbGlua2VyIHNjcmlwdCdzIGhlbHAgd2UgZm9ydHVuYXRlbHkgaGF2ZSBfZ3Agd2hpY2ggZXF1YWxzIHRvCiAgICBfR0xPQkFMX09GRlNFVF9UQUJMRV8uIEJ1dCBvbmNlIF9ncCBnZXRzIG91dCBvZiBhbGlnbm1lbnQsIHdlIHdpbGwgbm90CiAgICBiZSBhYmxlIHRvIGFjY2VzcyB0byBHT1QgZW50aXJlcywgZ2xvYmFsIHZhcmlhYmxlcyBhbmQgcHJvY2VkdXJlIGVudHJ5CiAgICBwb2ludHMuIFRoZSByaWdodCB0aGluZyB0byBkbyBpcyB0byB1c2UgX2dwLgoKICAgIFRoaXMgcGF0Y2ggYWxzbyBpbnRyb2R1Y2UgYSBuZXcgc3ltYm9sIGAuZ3B3b3JkIF9HTE9CQUxfT0ZGU0VUX1RBQkxFXycKICAgIHdoaWNoIGhvbGRzIHRoZSBvZmZzZXQgZnJvbSBfZ3AuIFdoZW4gdXBkYXRpbmcgR09UIGVudHJpZXMsIHdlIHVzZSB0aGlzCiAgICBvZmZzZXQgYW5kIF9ncCB0byBjYWxjdWxhdGUgdGhlIGZpbmFsIF9HTE9CQUxfT0ZGU0VUX1RBQkxFXy4KCiAgICBUaGlzIHBhdGNoIGlzIG9yaWdpbmFsbHkgc3VibWl0dGVkIGJ5IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPiwgdGhlbgogICAgSSBtYWRlIHNvbWUgY2hhbmdlIHRvIGxlYXZlIG92ZXIgbnVtX2dvdF9lbnRyaWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KICAgIENjOiBWbGFkIEx1bmd1IDx2bGFkQGNvbXN5cy5ybz4KCmNvbW1pdCBjYmYyMzIzYjViODI4NWVhMDFhY2JhN2JiYjkwNWEzMTYyZDliMDIxCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglTdW4gT2N0IDIxIDEwOjU1OjM2IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gdS1ib290LmxkczogRml4IF9fZ290X3N0YXJ0IGFuZCBfX2dvdF9lbmQKCiAgICBFbnN1cmUgdGhhdCBfX2dvdF9zdGFydCBwb2ludHMgdG8gdG9wIG9mIHRoZSBgLmdvdCcsIGFuZCBfX2dvdF9lbmQgcG9pbnRzCiAgICB0byBib3R0b20gYXMgd2VsbCwgc28gdGhhdCB3ZSBuZXZlciBmYWlsIHRvIGNvdW50IG51bV9nb3RfZW50cmllcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+Cgpjb21taXQgZTVmMzI1ZmVjNWI0OGFlNzA1Yzg5NTIyOTIzYmE1YTJlMzdjZDVjNwpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJU3VuIE9jdCAyMSAxMDo1NTozNiAyMDA3ICswOTAwCgogICAgW01JUFNdIHUtYm9vdC5sZHM6IFJlbW92ZSBkdXBsaWNhdGVkIC5zZGF0YSBzZWN0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgoKY29tbWl0IDA1YmY0OTE5YzFjZTQ5Y2RlZGFkYWNkNTY0ZDA3ODZhOGVkNzk2YTEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gT2N0IDIxIDAxOjAxOjE3IDIwMDcgKzAyMDAKCiAgICBNaW5vciBjb2Rpbmcgc3R5bGUgY2xlYW51cDsgdXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZmYyODVjYTA3ZWRhMWVhNGE4OTA5ODQ4Y2MxY2M2MDRlYzhmZWM5YwpBdXRob3I6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgpEYXRlOglUaHUgT2N0IDQgMjA6NDc6MTAgMjAwNyArMDMwMAoKICAgIEZpeCBORTIwMDAgZHJpdmVyOgoKICAgIEZpeGVkIHR5cG8gaW4gbmUyMDAwLmgsIHRoaW5rbyByZSBuMmtfaW5iKCkgdXNhZ2UsIGRvbid0IHRyeQogICAgdG8gZG8gYW55dGhpbmcgaW4gZXRoX3N0b3AoKSBpZiBldGhfaW5pdCgpIHdhcyBub3QgY2FsbGVkLgogICAgU2ltcGxpZmllZCBSWCBwYXRoIGluIG9yZGVyIHRvIGF2b2lkIHRpbWVvdXRzIG9uIHJlYWxseSByZWFsbHkKICAgIGZhc3QgTkUyMDAwIGNhcmRzIChyZWFkOiBxZW11IHdpdGggaW50ZXJuYWwgdGZ0cCksIE5ldExvb3AoKSBpcwogICAgY2xldmVyIGVub3VnaCB0byBjb3BlIHdpdGggMSBwYWNrZXQgcGVyIGV0aF9yeCgpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFZsYWQgTHVuZ3UgPHZsYWRAY29tc3lzLnJvPgoKY29tbWl0IGRmOTA5NjhiNDhmYjM0ZmE5MDcyZmFiMTUwZGIyYWM4OTY3OGY1MzcKQXV0aG9yOiB1cndpdGhzdWdob3NoQGdtYWlsLmNvbSA8dXJ3aXRoc3VnaG9zaEBnbWFpbC5jb20+CkRhdGU6CU1vbiBTZXAgMjQgMTM6MzI6MTMgMjAwNyAtMDQwMAoKICAgIFNldHRpbmcgTVNSW0RFXSBpbiBkb19yZXNldAoKICAgIEhlbGxvLAogICAgICAgVGhpcyBwYXRjaCBlbnN1cmVzIHRoZSBzb2Z0IHJlc2V0IG9mIHRoZSBib2FyZCBmb3IgdGhlIDg1eHggYm9hcmRzCiAgICAgICBieSBzZXR0aW5nIHRoZSBNU1JbREVdIGluIHRoZSBkb19yZXNldCBmdW5jdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdWdob3NoIEdhbnUgPHVyd2l0aHN1Z2hvc2hAZ21haWwuY29tPgoKY29tbWl0IDFlNzAxZTcwMTMwNGIzYzNhMzc2OGNhODNkZDJhYjdiOWU4OGM3N2QKQXV0aG9yOiB1cndpdGhzdWdob3NoQGdtYWlsLmNvbSA8dXJ3aXRoc3VnaG9zaEBnbWFpbC5jb20+CkRhdGU6CU1vbiBTZXAgMjQgMTM6MzY6MDEgMjAwNyAtMDQwMAoKICAgIE1TUiBvdmVyd3JpdGUgZml4CgogICAgSGVsbG8sCiAgICAgIFRoaXMgcGF0Y2ggZml4ZXMgdGhlIE1TUiBvdmVyd3JpdGUgaW4gdGhlIHN0YXJ0LlMgd2hlbiBtb3Zpbmcgb3V0IG9mCiAgICAgIHRoZSBsYXN0IDRLIHBhZ2UuCgogICAgU2lnbmVkLW9mZi1ieTogU3VnaG9zaCBHYW51IDx1cndpdGhzdWdob3NoQGdtYWlsLmNvbT4KCmNvbW1pdCA1YzdlYTY0YmI3NGE4NTBhMmIyMzAzZjg1M2E4MjcwNjk1YWQ4NjAyCkF1dGhvcjogRGFuIFdpbHNvbiA8ZHdpbHNvbkBmdWxjcnVtbWljcm8uY29tPgpEYXRlOglGcmkgT2N0IDE5IDExOjMzOjQ4IDIwMDcgLTA1MDAKCiAgICB0c2VjIGRyaXZlciBzaG91bGQgY2xlYXIgUkhBTFQgb24gc3RhcnR1cAoKICAgIFRoaXMgd2FzIGNhdXNpbmcgcHJvYmxlbXMgZm9yIHNvbWUgcGVvcGxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsYWluIEdyYXZlbCA8YWdyYXZlbEBmdWxjcnVtbWljcm8uY29tPgogICAgU2lnbmVkLW9mZi1ieTogRGFuIFdpbHNvbiA8ZHdpbHNvbkBmdWxjcnVtbWljcm8uY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc2MDBkNDdiOGY2YTEwMDE5ZTUzN2RjOWE2MmFhMTQ5OGRmNThkMjUKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUaHUgT2N0IDExIDAwOjI5OjE4IDIwMDcgLTA1MDAKCiAgICBJbXByb3ZlIGhhbmRsaW5nIG9mIFBDSSBpbnRlcnJ1cHQgZGV2aWNlIHRyZWUgZml4dXAgb24gTVBDODV4eCBDRFMKCiAgICBPbiB0aGUgTVBDODV4eCBDRFMgd2UgaGF2ZSB0d28gaXNzdWVzOgoKICAgIDEuIFRoZSBkZXZpY2UgdHJlZSBmaXh1cCBjb2RlIGRpZCBub3QgY2hlY2sgdG8gc2VlIGlmIHRoZSBwcm9wZXJ0eSB3ZSBhcmUKICAgIHRyeWluZyB0byB1cGRhdGUgaXMgYWN0dWFsbHkgZm91bmQuICBJdHMgcG9zc2libGUgdGhhdCBpdCB3b3VsZCB1cGRhdGUKICAgIHJhbmRvbSBtZW1vcnkgc3RhcnRpbmcgYXQgMC4KCiAgICAyLiBOZXdlciBMaW51eCBrZXJuZWwncyBoYXZlIG1vdmVkIHRoZSBsb2NhdGlvbiBvZiB0aGUgUENJIG5vZGVzIHRvIGJlCiAgICBzaWJpbGluZ3Mgb2YgdGhlIHNvYyBub2RlIGFuZCBub3QgY2hpbGRyZW4uICBUaGUgZXhwbGljaXQgUEFUSCB0byB0aGUgUENJCiAgICBub2RlIHdvdWxkIG5vdCBiZSBmb3VuZCBmb3IgdGhlc2UgZGV2aWNlIHRyZWVzLiAgQWRkIHRoZSBhYmlsaXR5IHRvIGhhbmRsZQogICAgYm90aCBwYXRocy4gIEluIHRoZSBmdXR1cmUgd2Ugc2hvdWxkbid0IGhhbmRsZSBzdWNoIGZpeHVwcyBieSBleHBsaWNpdCBwYXRoLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgYTMwNjNlZWM3NzU3MTliN2U5MTAyM2JiZWMzZjY0YjMxMTg3OTFkZgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBPY3QgMTEgMDA6MTg6NDggMjAwNyAtMDUwMAoKICAgIFNldCBPRl9TVERPVVRfUEFUSCB0byBtYXRjaCB0aGUgZGVmYXVsdCBjb25zb2xlIG9uIE1QQzg1NjggTURTCgogICAgT24gdGhlIE1QQzg1NjggTURTIHdlIHVzZSB0dHlTMCwgVUFSVDAsIGV0Yy4gYXMgdGhlIHN0YW5kYXJkIGNvbmZpZ3VyZWQKICAgIGNvbnNvbGUuICBNYWtlIGl0IHNvIHdlIG1hdGNoIHRoYXQgY29uZmlnIHdoYXQgd2UgdGVsbCBMaW51eCBhcyB0aGUgZWFybHkKICAgIFNURE9VVCBjb25zb2xlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZTFjZTNjYjYxN2JiMDZmOTFmODJmOTg5MTUzOTExNzVhZGRmM2U4MgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVR1ZSBPY3QgMiAxMToxMjoyNyAyMDA3IC0wNTAwCgogICAgUmVtb3ZlIG1hZ2ljIG51bWJlcnMgZnJvbSBjYWNoZSByZWxhdGVkIG9wZXJhdGlvbnMgZm9yIG1wYzg1eHgKCiAgICBUaGUgbXBjODV4eCBzdGFydCBjb2RlIHVzZXMgc29tZSBtYWdpYyBudW1iZXJzIHRoYXQgd2UgYWN0dWFsbHkKICAgIGhhdmUgI2RlZmluZXMgZm9yIGluIDxjb25maWcuaD4gc28gdXNlIHRob3NlIGluc3RlYWQuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA1NDQxZjYxYTNkOGI3MDM0ZjE5ZmMxMzYxMTgzZTkzNjE5OGU2ZGJiCkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CUZyaSBPY3QgMTkgMTY6NDc6MjYgMjAwNyArMDIwMAoKICAgIEZpeCB0d28gdHlwb3MuCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgMjgxZGY0NTdjMWFhNTBkMjc1MjE2NWQwYzVjMzI4MmQ0MDI3Yjk3NApBdXRob3I6IFRvbnkgTGkgPHRvbnkubGlAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAxOCAxNzo0NzoxOSAyMDA3ICswODAwCgogICAgbXBjODN4eDogQWRkIGNvbmZpZ3VyZSBlbnRyeSBmb3IgTVBDODN4eCBBVE0gc3VwcG9ydAoKICAgIEFkZCBNUEM4MzYwRU1EU19BVE1fY29uZmlnIGFuZCBNUEM4MzJYRU1EU19BVE1fY29uZmlnIGludG8KICAgIE1ha2ZpbGUgYW5kIE1BS0VBTEwKCiAgICBTaWduZWQtb2ZmLWJ5OiBUb255IExpIDx0b255LmxpQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQyNjQ2NTU0ZjUyOWE5NTc3NTE1ZWNlYjBlYzVlY2VlZTE4MjQ0YmEKQXV0aG9yOiBUb255IExpIDx0b255LmxpQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMTggMTc6NDQ6MzggMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IHBxLW1kcy1waWIuYyB0eXBvIGVycm9yCgogICAgQ29ycmVjdCB0byB2YWw4IGZyb20gdmFsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRvbnkgTGkgPHRvbnkubGlAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgM2UxMWFlODBmZWMxZWUxMjE5NDk0MDk1NTQzMTE4NmFiZjYwMDljMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE9jdCAxNyAxNTo0MDoxOSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgNjY3LzEzMyAoQ1BVL1BMQikgZnJlcXVlbmN5IHNldHVwIHRvIFNlcXVvaWEgYm9vdHN0cmFwIGNvbW1hbmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgM2M4OWQ3NTQwOWViMjY2MzlkMzZkZmExMWQ0ZWUzZDhiOTYyZGMzYwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMTYgMTU6Mjc6NDMgMjAwNyAtMDUwMAoKICAgIEluaXRpYWwgbXBjODYxMGhwY2QgTWFrZWZpbGUgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IE1haGVzaCBKYWRlIDxtYWhlc2guamFkZUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTU1M2RmODZkM2EzMTljM2ExYTdjZGU3ZTRlZGQ2ZWViNWFhNjRjNwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMTYgMTU6MjY6NTEgMjAwNyAtMDUwMAoKICAgIEluaXRpYWwgbXBjODYxMGhwY2QgY3B1LywgUkVBRE1FIGFuZCBpbmNsdWRlLyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTWFoZXNoIEphZGUgPG1haGVzaC5qYWRlQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzZGQyZGI1M2NlYjBkZmY4MGYyNWMyYTA3ZjgzZjI5YjkwN2I0MDNlCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAxNiAxMzo1NDowMSAyMDA3IC0wNTAwCgogICAgSW5pdGlhbCBtcGM4NjEwaHBjZCBib2FyZCBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTWFoZXNoIEphZGUgPG1haGVzaC5qYWRlQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3ZWU2YmExYTA1NmU0MDYxYWI0Y2ZkZTMwMTI3ZTMzMmU3OTU3YWZkCkF1dGhvcjogcnVuZXRAaW5ub3ZzeXMuY29tIDxydW5ldEBpbm5vdnN5cy5jb20+CkRhdGU6CVR1ZSBPY3QgMTYgMTQ6NTA6NDAgMjAwNyAtMDUwMAoKICAgIE1ha2UgTVBDODI2NkFEUyBib2FyZCBjb21waWxlIGFnYWluLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJ1bmV0IFRvcmdlcnNlbiA8cnVuZXRAaW5ub3ZzeXMuY29tPgoKY29tbWl0IDI0OTExNjdjMjQ1ZDhlYmU2ZjJkYmQ4YzQyODdhYWEwZDE0ZmU5M2EKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDI3IDEyOjQxOjAzIDIwMDcgLTA1MDAKCiAgICA4Nnh4OiBBbGxvdyBmb3IgZmV3ZXIgRERSIHNsb3RzIHBlciBtZW1vcnkgY29udHJvbGxlci4KCiAgICBBcyBhIGRpcmVjdCBjb3JyZWxhdGlvbiBleGlzdHMgYmV0d2VlbiBERFIgRElNTSBzbG90cwogICAgYW5kIFNQRCBFRVBST00gYWRkcmVzc2VzIHVzZWQgdG8gY29uZmlndXJlIHRoZW0sIHVzZQogICAgdGhlIGluZGl2aWR1YWxseSBkZWZpbmVkIFNQRF9FRVBST01fQUREUkVTUyogdmFsdWVzIHRvCiAgICBkZXRlcm1pbmUgaWYgYSBERFIgRElNTSBzbG90IHNob3VsZCBoYXZlIGl0cyBTUEQKICAgIGNvbmZpZ3VyYXRpb24gcmVhZCBvciBub3QuCgogICAgRWZmZWN0aXZlbHksIHRoaXMgbm93IGFsbG93cyBmb3IgMSBvciAyIERJTU0gc2xvdHMKICAgIHBlciBtZW1vcnkgY29udHJvbGxlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRkNGE5NDVlMTg5YTJmMzg0YzY2NDMyMzE2ZGEyNzg4YTBhYzE2MDcKQXV0aG9yOiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBlbm5lZW5uZS5jb20+CkRhdGU6CU1vbiBPY3QgMTUgMTE6NTk6MTcgMjAwNyArMDIwMAoKICAgIFBYQSBVU0IgT0hDSTogInVzYiBzdG9wIiBpbXBsZW1lbnRhdGlvbi4KCiAgICBTb21lIFVTQiBrZXlzIG5lZWQgdG8gYmUgc3dpdGNoZWQgb2ZmIGJlZm9yZSBsb2FkaW5nIHRoZSBrZXJuZWwKICAgIG90aGVyd2lzZSB0aGV5IGNhbiByZW1haW4gaW4gYW4gdW5kZWZpbmVkIHN0YXR1cyB3aGljaCBwcmV2ZW50cyB0aGVtCiAgICB0byBiZSBjb3JyZWN0bHkgcmVjb2duaXplZCBieSB0aGUga2VybmVsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGxpbnV4Lml0PgoKY29tbWl0IGUyZTkzNDQyZTU1OGNmMTUwMGU5Mjg2MWY5OTcxM2IyZjA0NWVhMjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBPY3QgMTUgMTE6Mzk6MDAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4IGJ1ZyBpbiBJMkMgYm9vdHN0cmFwIHZhbHVlcyBmb3IgU2VxdW9pYS9SYWluaWVyCgogICAgVGhlIEkyQyBib290c3RyYXAgdmFsdWVzIHRoYXQgY2FuIGJlIHNldHVwIHZpYSB0aGUgImJvb3RzdHJhcCIgY29tbWFuZCwKICAgIHdlcmUgc2V0dXAgaW5jb3JyZWN0IHJlZ2FyZGluZyB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUgaW50ZXJuYWwgc3luYyBQQ0kKICAgIGNsb2NrLiBUaGUgdmFsdWVzIGZvciBQTEIgY2xvY2sgPT0gMTMzTUh6IHdlcmUgc2xpZ2hseSBpbmNvcnJlY3QgYW5kIHRoZQogICAgdmFsdWVzIGZvciBQTEIgY2xvY2sgPT0gMTY2TUh6IHdlcmUgdG90YWxseSBpbmNvcnJlY3QuIFRoaXMgY291bGQKICAgIGxlYWQgdG8gYSBoYW5ndXAgdXBvbiBib290aW5nIHdoaWxlIFBDSSBjb25maWd1cmF0aW9uIHNjYW4uCgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGlzc3VlIGFuZCBjb25maWd1cmVzIHZhbGlkIFBDSSBkaXZpc29yIHZhbHVlcwogICAgZm9yIHRoZSBzeW5jIFBDSSBjbG9jaywgd2l0aCByZXNwZWN0IHRvIHRoZSBwcm92aWRlZCBleHRlcm5hbCBhc3luYwogICAgUENJIGZyZXF1ZW5jeS4KCiAgICBIZXJlIHRoZSB2YWx1ZXMgb2YgdGhlIGZvcm11bGEgaW4gdGhlIGNoYXB0ZXIgMTQuMiAiUENJIGNsb2NraW5nIgogICAgZnJvbSB0aGUgNDQwRVB4IHVzZXJzIG1hbnVhbDoKCiAgICBBc3luY1BDSUNMSyAtIDFNSHogPD0gU3luY1BDSUNsayA8PSAoMiAqIEFzeW5jUENJQ2xrKSAtIDFNSHoKCiAgICAzM01IeiBhc3luYyBQQ0kgZnJlcXVlbmN5OgogICAgUExCID0gMTMzOgogICAgPT4JICAgIDMyIDw9IDQ0LjMgPD0gNjUJICAgIChkaXYgPSAzKQoKICAgIFBMQiA9IDE2NjoKICAgID0+CSAgICAzMiA8PSA1NS4zIDw9IDY1CSAgICAoZGl2ID0gMykKCiAgICA2Nk1IeiBhc3luYyBQQ0kgZnJlcXVlbmN5OgogICAgUExCID0gMTMzOgogICAgPT4JICAgIDY1IDw9IDY2LjUgPD0gMTMyCSAgICAoZGl2ID0gMikKCiAgICBQTEIgPSAxNjY6CiAgICA9PgkgICAgNjUgPD0gODMgPD0gMTMyCSAgICAoZGl2ID0gMikKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNWE1OTU4YjdkZTcwYWU5OWYwZTdjYmQ1Yzk3ZWMxMzQ2ZTA1MTU4NwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE9jdCAxNSAxMToyOTozMyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBGaXggaW5jb3JyZWN0IDMzLzY2TUh6IFBDSSBjbG9jayBsb2ctbWVzc2FnZSBvbiBTZXF1b2lhICYgWW9zZW1pdGUKCiAgICBUaGUgQkNTUiBzdGF0dXMgYml0IGZvciB0aGUgNjZNSHogUENJIG9wZXJhdGlvbiB3YXMgY29ycmVjdGx5CiAgICBhZGRyZXNzZWQgKE1TQi9MU0IgcHJvYmxlbSkuIE5vdyB0aGUgY29ycmVjdCBjdXJyZW50bHkgc2V0dXAKICAgIFBDSSBmcmVxdWVuY3kgaXMgZGlzcGxheWVkIHVwb24gYm9vdHVwLgoKICAgIFRoaXMgcGF0Y2ggYWxzbyBmaXhlcyB0aGlzIHByb2JsZW0gb24gUmFpbmllciAmIFllbGxvd3N0b25lLCBzaW5jZSB0aGVzZQogICAgYm9hcmRzIHVzZSB0aGUgc2FtZSBzb3VjZSBjb2RlIGFzIFNlcXVvaWEgJiBZb3NlbWl0ZSBkby4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZGEzYWFkNTVjYmRlODBhYjZlMzAxYWFmYTgyYTJjNDExYWE1M2VmZgpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglXZWQgU2VwIDI2IDE3OjU1OjU2IDIwMDcgKzAyMDAKCiAgICBUUU04NjBNOiBhZGp1c3QgZm9yIGRvdWJsZWQgZmxhc2ggc2VjdG9yIHNpemUuCgogICAgQWRqdXN0IGZsYXNoIG1hcCB0byBzdXBwb3J0IHRoZSBuZXcgUzI5R0x4eE4gKE4tVHlwZSkgRmxhc2hlcyB3aXRoCiAgICBkb3VibGVkIHNlY3RvciBzaXplLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IDlkMjkyNTBlMmU2MmY0YmYyMGM3YTIwYjQxNzNkODRjNDhmMTFmNWQKQXV0aG9yOiBKZW5zIEdlaHJsZWluIDxqZW5zLmdlaHJsZWluQHRxcy5kZT4KRGF0ZToJV2VkIFNlcCAyNiAxNzo1NTo1NCAyMDA3ICswMjAwCgogICAgVFFNOHh4OiBGaXggQ0FOIHRpbWluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCBkNDNlNDg5YmFmMDJhZmFlNDkwNzc3OTFmYjIyMzMyZDI0MGQ4NjU2CkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CVRodSBTZXAgMjcgMTQ6NTQ6MzYgMjAwNyArMDIwMAoKICAgIFRRTTg2Nk06IGZpeCBTRFJBTSByZWZyZXNoCgogICAgQXQgMTMzIE1IeiB0aGUgY3VycmVudCBTRFJBTSByZWZyZXNoIHJhdGUgaXMgdG9vIGZhc3QKICAgIChtZWFzdXJlZCA0ICogMS4xNyB1cykuCiAgICBDRkdfTUFNUl9QVEEgY2hhbmdlcyBmcm9tIDM5IHRvIDk3LiBUaGlzIHJlc3VsdAogICAgaW4gYSByZWZyZXNoIHJhdGUgb2YgNCAqIDcuOCB1cyBhdCB0aGUgZGVmYXVsdCBjbG9jawogICAgNTAgTUh6LiBBdCAxMzMgTUh6IHRoZSB2YWx1ZSB3aWxsIGJlIHRoZW4gNCAqIDIuOSB1cy4KICAgIFRoaXMgaXMgYSBjb21wcm9taXNlIHVudGlsIGEgbmV3IG1ldGhvZCBpcyBmb3VuZCB0bwogICAgYWRqdXN0IHRoZSByZWZyZXNoIHJhdGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+Cgpjb21taXQgOWVmNTdiYmVlMWM2N2NjMDFkYTIwMjZjMjQyYzQ2OTJkYjMyYmUzNgpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglXZWQgU2VwIDI2IDE3OjU1OjU1IDIwMDcgKzAyMDAKCiAgICBUUU04NjZNOiBhZGp1c3QgZm9yIGRvdWJsZWQgZmxhc2ggc2VjdG9yIHNpemUuCgogICAgQWRqdXN0IGZsYXNoIG1hcCB0byBzdXBwb3J0IHRoZSBuZXcgUzI5R0x4eE4gKE4tVHlwZSkgRmxhc2hlcyB3aXRoCiAgICBkb3VibGVkIHNlY3RvciBzaXplLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IGY4YmY5MDQ2MWQ5YmFkMmU2ZmVkMzFmY2ViYWYyMzVmNjBkZDY3NjMKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVN1biBPY3QgMTQgMTY6MTI6MjkgMjAwNyArMDIwMAoKICAgIFtGSVhdIFhVUFYyUCBjaGFuZ2UgY29tbWFuZCBoYW5kbGluZwogICAgYW5kIHJlbW92ZSBjb2RlIHZpb2xhdGlvbgoKY29tbWl0IDYzNjQwMDE5ODIyOGQ5Njk4M2MwNjY1N2IxN2Y3NjBmNTk4OTk1OGUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gT2N0IDE0IDAwOjEzOjE5IDIwMDcgKzAyMDAKCiAgICBQcmVwYXJlIGZvciAxLjMuMC1yYzMgcmVsZWFzZQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNjhmMTRmNzdjYTVmZTVmOWNjMDI1YzhjYWUxMDE2NzFmNjI4MzA5ZgpBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVNhdCBTZXAgMjkgMTM6NDE6MzcgMjAwNyArMDIwMAoKICAgIEZpeCB3YXJuaW5nIGRpZmZlciBpbiBzaWduZWRuZXNzIGluIGNwdS9weGEvbW1jLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWFuLUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCA8cGxhZ25pb2pAamNyb3NvZnQuY29tPgoKY29tbWl0IGZjMTllMzZmNzQxZThiYzcyN2MwYTMzMDE3MGIzYjVkYjkwMzk5ZWYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDEzIDIzOjUxOjE0IDIwMDcgKzAyMDAKCiAgICBGaXggd2FybmluZyBkaWZmZXIgaW4gc2lnbmVkbmVzcyBpbiBib2FyZC9tcGwvdmNtYTkvdmNtYTkuYwoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGRlNzRiOWVlYWNjY2FmMGE0MmU1ZWNjOWFlNzlhODhmN2EzMTEyOTYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDEzIDIxOjE1OjM5IDIwMDcgKzAyMDAKCiAgICBDb2RpbmcgU3R5bGUgY2xlYW51cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGUxODkzODE1YjA5OTk0MTBkN2EzMjc1ODk2MTFjN2IzOGU5NTI5OWUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgT2N0IDEyIDE1OjQ5OjM5IDIwMDcgKzAyMDAKCiAgICBHUDMgU1NBOiBlbmFibGUgUlRDCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4MDAyMDEyMDQxZjFmZjlmOTk3YTU3MjdhYmU1MDE1ZjcwY2QyZTQ2CkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBPY3QgOSAxMzo1ODoyNCAyMDA3ICswMjAwCgogICAgW2FkczUxMjFdIEVFUFJPTSBzdXBwb3J0IGFkZGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDdiNjI0YWQyNTRiOTdlNWEyNWRjYTIzMDRhMzk4YjY0YWVlZGFmZmUKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU2F0IE9jdCA2IDE4OjU1OjM1IDIwMDcgKzAyMDAKCiAgICBBVlIzMjogSW5pdGlhbGl6ZSBiaV9mbGFzaCogaW4gYm9hcmRfaW5pdF9yCgogICAgVGhlIEFUU1RLMTAwMC1zcGVjaWZpYyBmbGFzaCBkcml2ZXIgaW50aWFsaXplcyBiaV9mbGFzaHN0YXJ0LAogICAgYmlfZmxhc2hzaXplIGFuZCBiaV9mbGFzaG9mZnNldCwgYnV0IG90aGVyIGZsYXNoIGRyaXZlcnMsIGxpa2UgdGhlIENGSQogICAgZHJpdmVyLCBkb24ndC4KCiAgICBJbml0aWFsaXplIHRoZXNlIGluIGJvYXJkX2luaXRfciBpbnN0ZWFkIHNvIHRoYXQgdGhpbmdzIHdpbGwgc3RpbGwgYmUKICAgIHNldCB1cCBjb3JyZWN0bHkgd2hlbiB3ZSBzd2l0Y2ggdG8gdGhlIENGSSBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMmIyYTU4N2Q2ZDMwNzYzODdkMjJhYzc0MGY0NDA0NGJmNDZlMmNiOApBdXRob3I6IE1hcmlhbiBCYWxha293aWN6IDxtOEBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBPY3QgNSAxMDo0MDo1NCAyMDA3ICswMjAwCgogICAgdHFtNTIwMDogRml4IENPTkZJR19DTURfUENJIHR5cG8gaW4gYm9hcmQgY29uZmlnIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCA5Mjg2OTE5NWVmODIxMDc1OGQyMTc2MjMwYzBhMzY4OTdhZmQ1MGVkCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIE9jdCA1IDA5OjQ2OjA2IDIwMDcgKzAyMDAKCiAgICBDTTUyMDA6IEZpeCBtaXNzaW5nIG51bGwtdGVybWluYXRpb24gaW4gaG9zdG5hbWUgbWFuaXB1bGF0aW9uIGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDlhZGQ5ODg0YjFmZGRjMzRjYTE4NmUwMGEyZjg2OGNjZDVkMDJkODcKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJVHVlIE9jdCAyIDE5OjA5OjAxIDIwMDcgKzAyMDAKCiAgICBGaXggbWVtdGVzdCBicmVha2FnZQoKICAgIENGR19NRU1URVNUX1NUQVJUIHVzZXMgd2VpcmQgbWFnaWMgaW52b2x2aW5nIGdkLCB3aGljaCBmYWlscyB0bwogICAgY29tcGlsZS4gVXNlIGhhcmRjb2RlZCB2YWx1ZXMgaW5zdGVhZCAod2UgYWN0dWFsbHkga25vdyBob3cgbXVjaCBSQU0KICAgIHdlIGhhdmUgb24gYm9hcmQuKQoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDczODgxNWMwY2M0NGFhMzI5MDk3Zjg2OGRjMWVmYzQ5ZWRlOWM1YmEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMiAxMTo0NDo0NiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBDb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4N2MxODMzYTM5ZTk0NGRiNjYzODUyODZmZDVlMjhmOWIzZmNkZDUwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgT2N0IDIgMTE6NDQ6MTkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogbHdtb241OiBSZW1vdmUgd2F0Y2hkb2cgZm9yIG5vdywgc2luY2Ugbm90IGZ1bGx5IHRlc3RlZCB5ZXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMmRiNjQ3ODQwNjFiZmMzNGY0YmE3MGVmMWQyZmJlNzEzM2I1NTY3MApBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglNb24gT2N0IDEgMDk6NTE6NTAgMjAwNyArMDIwMAoKICAgIFByb2dyYW0gRVBMRCB0byBmb3JjZSBmdWxsIGR1cGxleCBtb2RlIGZvciBQSFkuCgogICAgRVBMRCBmb3JjZXMgbW9kZXMgb2YgUEhZIG9wZXJhdGlvbi4gQnkgZGVmYXVsdCBmdWxsIGR1cGxleCBpcyB0dXJuZWQgb2ZmLgogICAgVGhpcyBmaXggdHVybnMgaXQgb24uCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+Cgpjb21taXQgNzg1YzEzNDc3Yjc3ZGNkMmU2YzUxMjhmZmZjZGI0ZTE5NDNmNDgxOApBdXRob3I6IFRpbW8gS2V0b2xhIDx0aW1vLmtldG9sYUBleGVydHVzLmZpPgpEYXRlOglNb24gU2VwIDI0IDE0OjUwOjMyIDIwMDcgKzAzMDAKCiAgICBCdWdmaXg6IFVzZSBvbmx5IG9uZSBQVEQgZm9yIG9uZSBlbmRwb2ludAoKICAgIE9yaWdpbmFsIGlzcDExNngtaGNkIGNvZGUgcHJlcGFyZWQgbXVsdGlwbGUgUFREcyBmb3IgbG9uZ2VyIHRoYW4gMTYKICAgIGJ5dGUgdHJhbnNmZXJzIGZvciBvbmUgZW5kcG9pbnQuIFRoYXQgaXMgdW5uZWNlc3NhcnkgYmVjYXVzZSB0aGUKICAgIElTUDExNnggaXMgYWJsZSB0byBzcGxpdCBsb25nIGRhdGEgZnJvbSBvbmUgUFREIGludG8gbXVsdGlwbGUKICAgIHRyYW5zYWN0aW9ucyBiYXNlZCBvbiB0aGUgYnVmZmVyIHNpemUgb2YgdGhlIGVuZHBvaW50LiBJdCBhbHNvIGNhdXNlZAogICAgc2VyaW91cyBwcm9ibGVtcyBpZiB0aGUgZW5kcG9pbnQgTkFLZWQgc29tZSBvZiB0aGUgdHJhbnNhY3Rpb25zLiBJbgogICAgdGhhdCBjYXNlIElTUDExNnggd291bGRuJ3Qgbm90aWNlIHRoYXQgdGhlIG90aGVyIFBURHMgd2VyZSBmb3IgdGhlIHNhbWUKICAgIGVuZHBvaW50IGFuZCB3b3VsZCB0cnkgdGhlIG90aGVyIFBURHMgcG9zc2libHkgb3V0IG9mIG9yZGVyLiBUaGF0IHdvdWxkCiAgICBicmVhayB0aGUgd2hvbGUgdHJhbnNmZXIuCgogICAgVGhpcyBwYXRjaCBtYWtlcyBpc3AxMTZ4X3N1Ym1pdF9qb2IgdG8gdXNlIG9uZSBQVEQgZm9yIG9uZSB0cmFuc2Zlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW1vIEtldG9sYSA8dGltby5rZXRvbGFAZXhlcnR1cy5maT4KICAgIFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+Cgpjb21taXQgODZlYzg2YzA0MzI2YzM5MTMxNzhhNzY3OWFhOTEwZGUwNzFkYTc1ZApBdXRob3I6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+CkRhdGU6CVRodSBTZXAgMjcgMjM6Mjc6NDcgMjAwNyArMDIwMAoKICAgIEZpeCBtaXNzaW5nIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSIG9uIENPTkZJR19MUEMyMjkyIGluIHNlcmlhbAoKICAgIFNpZ25lZC1vZmYtYnk6IEplYW4tQ2hyaXN0b3BoZSBQTEFHTklPTC1WSUxMQVJEIDxwbGFnbmlvakBqY3Jvc29mdC5jb20+Cgpjb21taXQgM2U5NTRiZWI2MTRiNWIxOTBkN2Y0ZjRjM2I2NDE0MzdhMDEzMmUzNQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIFNlcCAxMSAxNDoxMjo1NSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBsd21vbjU6IENoYW5nZSBHUElPIDU4IHRvIGRlZmF1bHQgdG8gbG93ICh3YXRjaGRvZyB0ZXN0KQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxNDg3YWRiZGNmOTU5NGJiMmViNjg2MzI1YTZmOTU0MGRhZDFiNzBhCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIFNlcCAyNiAxNjozNTo1NCAyMDA3IC0wNTAwCgogICAgODV4eCBpbyBvdXQgZnVuY3Rpb25zIG5lZWQgc3luYyBhZnRlciB3cml0ZS4KCiAgICBUaGlzIGZpeGVzIHRoZSBtYzE0NjgxOCBydGNfcmVhZC93cml0ZSBmdW5jdGlvbnMgZm9yIDg1eHguCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZDM4ZWZmYzZlMzU5ZTZiMWIwYzc4ZDY2ZThiYzFhNGRjMTVhMmFlCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgU2VwIDI1IDE1OjQ4OjA1IDIwMDcgLTA2MDAKCiAgICBGcGdhOiBmaXggaW5jb3JyZWN0IHRlc3Qgb2YgQ0ZHX0ZQR0FfWElMSU5YIG1hY3JvCgogICAgQ0ZHX0ZQR0FfWElMSU5YIGlzIGEgYml0IHZhbHVlIHVzZWQgdG8gdGVzdCBhZ2FpbnN0IHRoZSB2YWx1ZSBpbgogICAgQ09ORklHX0ZQR0EuICBUZXN0aW5nIGZvciBhIHZhbHVlIHdpbGwgYWx3YXlzIHJldHVybiBUUlVFLglJIGRvbid0CiAgICB0aGluayB0aGF0IGlzIHRoZSBpbnRlbnRpb24gaW4gdGhpcyBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA4NTM2NDNkOGNmMmNhODBjYjJlMjVjNTNhZDVkYzU4MGFiYWZlMTY2CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gU2VwIDI0IDAwOjQxOjMwIDIwMDcgKzAyMDAKCiAgICBbRklYXSBjaGFuZ2UgY29tbWFuZCBoYW5kbGluZyBhbmQgcmVtb3ZpbmcgY29kZSB2aW9sYXRpb24KCmNvbW1pdCBmMjQwMzU2NTA3MDM4ZTVjZTU1ZThhMjRjYjI2MDdlOWVhZTZkMTBjCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gU2VwIDI0IDAwOjM2OjA2IDIwMDcgKzAyMDAKCiAgICBbRklYXSBjaGFuZ2Ugc2V0cyBvZiBjb21tYW5kcwogICAgYmVjYXVzZSBjaGFuZ2luZyBvZiBjb21tYW5kIGhhbmRsaW5nIGJyaW5ncwogICAgY29tcGlsYXRpb24gcHJvYmxlbXMKCmNvbW1pdCBjYjFiYzYzYjc1YTIzMjU3MWViNjlhYTJjOGFhOTE5MzIxNjU1ODQ1CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gU2VwIDI0IDAwOjMwOjQyIDIwMDcgKzAyMDAKCiAgICBbRklYXSBFbWFpbCByZXBhcmF0aW9uICYgQ29weXJpZ2h0CiAgICBCb3RoIGNvZGVzIGFyZSB3cml0dGVuIGJ5IG15c2VsZiB3aXRob3V0IGFueQogICAgc3VwcG9ydCBmcm9tIENUVQoKY29tbWl0IDA3MzFjYmFlNmMyZmVhYjkzYjI0NGQ4M2ZkNmE0M2Y1Y2M5YmY4NTIKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBTZXAgMjQgMDA6MjU6MTEgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gQ2hhbmdlIG1hY3JvIG5hbWUgZm9yIFVhcnRMaXRlCiAgICBiZWNhdXNlIFBvd2VyUEMgNDA1IGNhbiB1c2UgVWFydExpdGUgYXMgY29uc29sZQoKY29tbWl0IDFjMTEwMGQyZmNmNDZiOWQxMWRjZjc4ZDZlNWFlYTc1ZTJlOGI3MTYKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBTZXAgMjQgMDA6MjE6MTkgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gQWRkIHN1cHBvcnQgZm9yIGRlc2lnbiB3aXRob3V0IGludGVycnVwdCBjb250cm9sbGVyCiAgICBQb2xsaW5nIHRpbWVyCgpjb21taXQgMDczMTkzM2VjOGVjNDVkMDJiYTg5YjUyZGY2NzNkNTI2ODczY2RkZQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIFNlcCAyNCAwMDoxOTo0OCAyMDA3ICswMjAwCgogICAgW0ZJWF0gcmVzb2x2ZSBwcm9ibGVtIHdpdGggY3B1IHdpdGhvdXQgYmFycmVsIHNoaWZ0ZXIKCmNvbW1pdCBkYjE0ZDc3OTk1Y2U1MTViNzI4YjE3OGI2M2Y4MmJhYmU2MGUzZDU2CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gU2VwIDI0IDAwOjE4OjQ2IDIwMDcgKzAyMDAKCiAgICBbRklYXSByZXBhaXIgZW1haWwgYWRkcmVzcwoKY29tbWl0IDQ4MWQ0MzI4NjE4ODA0YWRkMWY4MThhNmM5NjI5NjEyMWNkMDUyOGUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBTZXAgMjQgMDA6MTc6NDIgMjAwNyArMDIwMAoKICAgIFtGSVhdIHJlcGFpciBNRlNMIGNvbW1hbmRzCgpjb21taXQgYjkwYzA0NWYwMzVjM2NjOWI1ZDJlZGFlZDYwNDhkZmI3NGU0MDc2MwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIFNlcCAyNCAwMDowODozNyAyMDA3ICswMjAwCgogICAgc3luY2hyb25peml0aW9uIHdpdGggbWFpbmxpbmUKCmNvbW1pdCBlZGEzZTFlNjYxOWFkMGJlZTk0YWU0YjE2Yzk5ZDg4ZTc3ZTJhZjEzCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglTdW4gU2VwIDIzIDAyOjQyOjM4IDIwMDcgKzA5MDAKCiAgICBzaDogQWRkIHN1cHBvcnQgY29tbWFuZCBvZiBpZGUgd2l0aCBzaAoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCBkOTFlYTQ1ZDE1Y2Y4ZTA5ODc0NTZiZDIxMWZmYmI2NTA4MjRiNmYxCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglTdW4gU2VwIDIzIDAyOjM4OjQyIDIwMDcgKzA5MDAKCiAgICBzaDogVXBkYXRlIE1ha2VmaWxlCgogICAgQWRkIHN1cHBvcnQgTVM3NzIyU0UwMSB0byBNYWtlZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgNmMwYmJkY2NkMzc5ZjVjODcwMmFmOWUwNzY1Mjk0YzJmYjc0NzJhNgpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJU3VuIFNlcCAyMyAwMjozMToxMyAyMDA3ICswOTAwCgogICAgc2g6IEFkZCBzdXBwb3J0IFJlbmVzYXMgc2g3NzIyIHByb2Nlc3NvciBhbmQgSGl0YWNoaSBNUzc3MjJTRTAxIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDA0NzM3NWJmYTRjMzA1MmZhNTBhNzQ4ZGE3ZmY4OWU5ZGFkM2IzNjQKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+CkRhdGU6CVN1biBTZXAgMjMgMDI6MTk6MjQgMjAwNyArMDkwMAoKICAgIHNoOiBVcGRhdGUgTVM3NzUwU0UwMSBwbGF0Zm9ybQoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA1MTZhZDc2MGRiMzU1Mzc2NjI2N2FkYTAxYjdkNWQ3MjdmYWE0YmJkCkF1dGhvcjogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgpEYXRlOglTdW4gU2VwIDIzIDAyOjE3OjA4IDIwMDcgKzA5MDAKCiAgICBzaDogUmVtb3ZlIGNvbW1lbnQgb3V0IGNvZGUgZnJvbSBpbmNsdWRlL2FzbS1zaC9jcHVfc2g0LmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAbmlnYXVyaS5vcmc+Cgpjb21taXQgYjAyYmFkMTI4NjY5ZTU2N2ZjZTg3ZDhkZjgyM2IwNmEwMTQ0YjhkYgpBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KRGF0ZToJU3VuIFNlcCAyMyAwMjoxMjozMCAyMDA3ICswOTAwCgogICAgc2g6IFVwZGF0ZSBjb3JlIGNvZGUgb2YgU3VwZXJILgoKICAgIFNpZ25lZC1vZmYtYnk6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUBuaWdhdXJpLm9yZz4KCmNvbW1pdCA2NmRjYWQzYTlhNTNlMDc2NmQ5MGUwMDg0MTIzYmQ4NTI5NTIyZmIwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IFNlcCAyMCAwMDowNDoxNCAyMDA3ICswMjAwCgogICAgdjEuMy4wLXJjMgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMTM1ZTE5YmMyNzczZWJjYTQ4N2U5YTgzNzFmNjdlMWJhMjAyMzEzYQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBTZXAgMTggMjE6MzY6MzUgMjAwNyArMDIwMAoKICAgIEF2b2lkIGNvbXBpbGVyIHdhcm5pbmcuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4YTc4M2E2NTg1MWJjNzQyMWFiNjlmNDQyMjYxMjE1ZTIxYjg4OTFhCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgU2VwIDE4IDEyOjI0OjU3IDIwMDcgLTA2MDAKCiAgICBCdWdmaXg6IHJlbW92ZSBlbWJlZGRlZCBudWxsIChcMCkgZnJvbSBDRkdfQk9PVEZJTEUgbWFjcm8gaW4gVFFNODU0MF9jb25maWcKCiAgICAvYmluL2Jhc2ggYW5kIC9iaW4vZGFzaCAod2hpY2ggL2Jpbi9zaCBpcyBsaW5rZWQgdG8gb24gdWJ1bnR1KSBoYW5kbGUgZW1iZWRkZWQKICAgIG51bGxzIGluIGEgc3RyaW5nIGRpZmZlcmVudGx5LiAgRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgc3RhdGVtZW50OgoJZWNobyAidGhpcyBpcyBhIHN0cmluZ1wwIiA+IGFmaWxlCiAgICBXaWxsIHByb2R1Y2UgdGhlIGZvbGxvd2luZyB3aXRoIC9iaW4vYmFzaDoKCSJ0aGlzIGlzIGEgc3RyaW5nXDAiCiAgICBCdXQgd2l0aCAvYmluL2Rhc2gsIHdpbGwgcHJvZHVjZToKCSJ0aGlzIGlzIGEgc3RyaW5nCgogICAgQnVnIGZpeGVkIGJ5IG1vdmluZyB0aGUgZW1iZWRkZWQgbnVsbCBvdXQgb2YgdGhlIG1ha2VmaWxlIGFuZCBpbnRvIHRoZQogICAgY29uZmlnIGhlYWRlci4gIEFsc28gcmVuYW1lZCB0aGUgbWFjcm8gdG8gYXZvaWQgdXNhZ2UgY29saXNpb24gd2l0aCB0aGUgc2FtZQogICAgbWFjcm8gdXNlZCBieSBvdGhlciBib2FyZCBwb3J0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZjhkM2NhN2I2ZmEzMjJhYzU3ZThlODMxZjA3ZGJlZWEwMzlhOWYzNQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBTZXAgMTggMTc6NDA6MjcgMjAwNyArMDIwMAoKICAgIE1DQzIwMDogZml4IGJ1aWxkIHdhcm5pbmcKCiAgICBUaGUgTUNDMjAwIGJvYXJkIGNvbmZpZyBmaWxlIGluY2x1ZGVzIHZlcnNpb24uaCBmb3Igc29tZSBjdXN0b21lci0KICAgIHNwZWNpZmljIHNldHRpbmcsIHdoaWNoIGNhdXNlcyB3YXJuaW5ncyB3aXRoICJtYWtlIGRlcGVuZCI7IGJ1aWxkCiAgICB2ZXJzaW9uLmggYmVmb3JlIGRlcGVuZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGJkODYyMjBmNThiOTlkNjg5NjE5OGMzODVmZGExMzJmMGM5ODA5MTUKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUdWUgU2VwIDE4IDEzOjA3OjU0IDIwMDcgKzAxMDAKCiAgICBNb3ZlIGNvbG91cmVkIGxlZCBBUEkgdG8gc3RhdHVzX2xlZC5oCiAgICBJbXByb3ZlIGluZGVudGF0aW9uIGluIGRyaXZlcnMvYXQ0NS5jCgpjb21taXQgZTgwZTU4NWIwMGZiYmFiN2FkMWJmNzE2MTk3NDFmMmM1YjAyOWFiNwpBdXRob3I6IEVpcmlrIEFhbm9uc2VuIDxlYWFAd3BybWVkaWNhbC5jb20+CkRhdGU6CVR1ZSBTZXAgMTggMDg6NDc6MjAgMjAwNyArMDIwMAoKICAgIFVwZGF0ZSBhdHN0azEwMDIgYm9vdGFyZ3MuCgogICAgVXBkYXRlcyB0byBhdHN0azEwMDIgVS1Cb290IGhlYWRlciBmaWxlOgogICAgLSBDaGFuZ2VkIGJvb3RhcmdzOgoJKiBTZXQgdGhlIGJvb3RhcmdzIGZvciBhdDEwMDIgdG8gcG9pbnQgdG8gdGhlIFNELWNhcmQgcGFydGl0aW9uIGluc3RlYWQKCSogLi4uIG9mIHRoZSBib290IGZsYXNoLgoJKiBSZW1vdmluZyB0aGUgcm9vdGZzdHlwZSBzaW5jZSB0aGF0IGFyZ3VtZW50IGFyZSBub3QgbmVlZGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVpcmlrIEFhbm9uc2VuIDxlYWFAd3BybWVkaWNhbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBhNGYzYWFiNmRmYmVkNmMyOTM2N2M2ODhiZmI4YTQ3ZWVmNjJjMjI1CkF1dGhvcjogRWlyaWsgQWFub25zZW4gPGVhYUB3cHJtZWRpY2FsLmNvbT4KRGF0ZToJV2VkIFNlcCAxMiAxMzozMjozNyAyMDA3ICswMjAwCgogICAgQWRkIHNvbWUgY29tbWVudHMgdG8gY2xvY2tzIGluIGF0c3RrMTAwMi5oCgogICAgVGhpcyBwYXRjaCBhcHBsaWVzIHNvbWUgY2xhcmlmeWluZyBjb21tZW50cyB0byBob3cgdGhlIGRpZmZlcmVudAogICAgY2xvY2tzIGFyZSBzZXR1cCBhY2NvcmRpbmcgdG8gYXRzdGsxMDAyLmggU29tZSBvZiB0aGUgcHJldmlvdXMKICAgIGNvbW1lbnRzIHdoZXJlIHN0YXRpbmcgd3JvbmdmdWwgaW5mb3JtYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgOTcyMTNmMzI0MTZlYWQ4ODVkZWFmZWE4Njc3NGU5MTJmZmQ2MGFkMApBdXRob3I6IERhdmlkIFNhYWRhIDxEYXZpZC5TYWFkYUBlY2l0ZWxlLmNvbT4KRGF0ZToJTW9uIFNlcCAxNyAxNzowNDo0NyAyMDA3ICswMjAwCgogICAgRGVzY3JpcHRpb246IEFkZCBORUMncyBQQ0kgT0hDSSBtb2R1bGUgSUQgdG8gdGhlIFVTQiBPSENJIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFNhYWRhIDxkYXZpZC5zYWFkYUBlY2l0ZWxlLmNvbT4KCmNvbW1pdCAzMDM2M2U5OGZhNDcwZmJlY2VhNWU4YmMwZjE0NDMzNTI3NTRmMzAzCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gU2VwIDE3IDA4OjIwOjQ3IDIwMDcgKzAyMDAKCiAgICBTbWFsbCB3aGl0ZXNwYWNlIGNsZWFudXAgb2YgT25lTkFORCBwYXRjaAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkN2U4Y2UxMDFhNGE0NWVkNmVkNDU3MzlmYzJkZTVmODdiMTNmN2YxCkF1dGhvcjogS3l1bmdtaW4gUGFyayA8a21wYXJrQGluZnJhZGVhZC5vcmc+CkRhdGU6CU1vbiBTZXAgMTAgMTc6MTU6MTQgMjAwNyArMDkwMAoKICAgIE9uZU5BTkQgc3VwcG9ydCAodGFrZSAjMikKCiAgICBbUEFUQ0ggMy8zXSBPbmVOQU5EIHN1cHBvcnQgKHRha2UgIzIpCgogICAgT25lTkFORCBzdXBwb3J0IGF0IFUtQm9vdAoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgMTdhYTI4MDA0NTdkZjBjMDZiNDE1MTZmNDZmMTI2NzEyYzE5NjIxOQpBdXRob3I6IEt5dW5nbWluIFBhcmsgPGttcGFya0BpbmZyYWRlYWQub3JnPgpEYXRlOglNb24gU2VwIDEwIDE3OjE0OjM0IDIwMDcgKzA5MDAKCiAgICBPbmVOQU5EIHN1cHBvcnQgKHRha2UgIzIpCgogICAgW1BBVENIIDIvM10gT25lTkFORCBzdXBwb3J0ICh0YWtlICMyKQoKICAgIE9uZU5BTkQgc3VwcG9ydCBhdCBVLUJvb3QKCiAgICBTaWduZWQtb2ZmLWJ5OiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgoKY29tbWl0IDkxNjUyN2Y0ODA5YTdiY2Q4MTFmMWYxZGFmMzRhZjE4NGUzMWRkOGMKQXV0aG9yOiBLeXVuZ21pbiBQYXJrIDxrbXBhcmtAaW5mcmFkZWFkLm9yZz4KRGF0ZToJTW9uIFNlcCAxMCAxNzoxMzo0OSAyMDA3ICswOTAwCgogICAgT25lTkFORCBzdXBwb3J0ICh0YWtlICMyKQoKICAgIFtQQVRDSCAxLzNdIE9uZU5BTkQgc3VwcG9ydCAodGFrZSAjMikKCiAgICBPbmVOQU5EIHN1cHBvcnQgYXQgVS1Cb290CgogICAgU2lnbmVkLW9mZi1ieTogS3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KCmNvbW1pdCBiNDljOTBkZjZlN2NmY2ZiOGI4NjJiOGJiZjg0NDhkZmY1ZWVkOWE1CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTdW4gU2VwIDE2IDIwOjUxOjU3IDIwMDcgKzAyMDAKCiAgICBbRklYXSByZW1vdmUgZmlsZXMgZm9ybSByZXBvc2l0b3J5Cgpjb21taXQgNjdjMzEwMzZhY2FhYWE5OTJmYzM0NmNjODlkYjA5MDlhN2U3MzNjNApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBTZXAgMTYgMTc6MTA6MDQgMjAwNyArMDIwMAoKICAgIFRRTTh4eFtMTV06IEZpeCBicm9rZW4gZW52aXJvbm1lbnQgYWxpZ25tZW50LgoKICAgIFdpdGggcmVjZW50IHRvb2xjaGFpbnMsIHRoZSBlbnZpcm9ubWVudCBzZWN0b3JzIHdlcmUgbm8gbG9uZ2VyIGFsaWduZWQgdG8KICAgIHNlY3RvciBib3VuZGFyaWVzLiBUaGUgcmVhc29uIHdhcyBhIGNvbWJpbmF0aW9uIG9mIHR3byBidWdzOgoKICAgIDEpIGNvbW1vbi9lbnZpcm9ubWVudC5jIGFzc3VtZWQgdGhhdCBDT05GSUdfVFFNOHh4TCB3b3VsZCBiZSBkZWZpbmVkCiAgICAgICBmb3IgYWxsIFRRTTh4eEwgYW5kIFRRTTh4eE0gYm9hcmRzLiBCdXQgImluY2x1ZGUvY29tbW9uLmgiLCB3aGVyZQogICAgICAgdGhpcyBnZXRzIGRlZmluZWQsIGlzIG5vdCBpbmNsdWRlZCBoZXJlIChhbmQgY2Fubm90IGJlIGluY2x1ZGVkCiAgICAgICB3aXRob3V0IGNhdXNpbmcgbG90cyBvZiBwcm9ibGVtcykuCgogICAgICAgQWRkZWQgYSBuZXcgI2RlZmluZSBDRkdfVVNFX1BQQ0VOViBmb3IgYWxsIGJvYXJkcyB3aGljaCByZWFsbHkKICAgICAgIHdhbnQgdG8gcHV0IHRoZSBlbnZpcm9ubWVudCBpcyBhICIucHBjZW52IiBzZWN0aW9uLgoKICAgIDIpIFRoZSBsaW5rZXIgc2NyaXB0cyBqdXN0IGluY2x1ZGUgZW52aXJvbm1lbnQubywgc2lsZW50bHkgYXNzdW1pbmcKICAgICAgIHRoYXQgdGhlIG9iamVjdHMgaW4gdGhhdCBmaWxlIGFyZSByZWFsbHkgaW4gdGhlIG9yZGVyIGluIHdoaWNoCiAgICAgICB0aGV5IGFyZSBjb2RlZCBpbiB0aGUgQyBmaWxlLCBpLiBlLiAiZW52aXJvbm1lbnQiIGZpcnN0LCB0aGVuCiAgICAgICAicmVkdW5kYW5kX2Vudmlyb25tZW50IiwgYW5kICJlbnZfc2l6ZSIgbGFzdC4gSG93ZXZlciwgY3VycmVudAogICAgICAgdG9vbGNoYWlucyAoR0NDLTQueCkgcmVvcmRlciB0aGUgb2JqZWN0cywgY2F1c2luZyB0aGUgZW52aXJvbm1lbnQKICAgICAgIGRhdGEgbm90IHRvIHN0YXJ0IG9uIGEgZmxhc2ggc2VjdG9yIGJvdW5kYXJ5OgoKICAgICAgIEluc3RlYWQgb2Y6CQkJCQl3ZSBnb3Q6CgoJNDAwMDgwMDAgVCBlbnZpcm9ubWVudAkJCTQwMDA4MDAwIFQgZW52X3NpemUKCTQwMDBjMDAwIFQgcmVkdW5kYW5kX2Vudmlyb25tZW50CTQwMDA4MDA0IFQgcmVkdW5kYW5kX2Vudmlyb25tZW50Cgk0MDAxMDAwMCBUIGVudl9zaXplCQkJNDAwMGMwMDQgVCBlbnZpcm9ubWVudAoKICAgICAgIE5vdGU6IHRoaXMgcGF0Y2ggZml4ZXMganVzdCB0aGUgZmlyc3QgcGFydCwgYW5kIGN1cmVzIHRoZSBhbGlnbm1lbnQKICAgICAgIHByb2JsZW0gYnkgbWFraW5nIHN1cmUgdGhhdCAiZW52X3NpemUiIGdldHMgcGxhY2VkIGNvcnJlY3RseS4gSG93ZXZlciwKICAgICAgIHdlIHN0aWxsIGhhdmUgYSBwb3RlbnRpYWwgaXNzdWUgYmVjYXVzZSBwcmltYXJ5IGFuZCByZWR1bmRhbnQKICAgICAgIGVudmlyb25tZW50IHNlY3RvcnMgYXJlIGFjdHVhbGx5IHN3YXBwZWQsIGkuIGUuIHdlIGhhdmUgbm93OgoKCTQwMDA4MDAwIFQgcmVkdW5kYW5kX2Vudmlyb25tZW50Cgk0MDAwYzAwMCBUIGVudmlyb25tZW50Cgk0MDAxMDAwMCBUIGVudl9zaXplCgogICAgICAgVGhpcyBzaGFsbCBiZSBmaXhlZCBpbiB0aGUgbmV4dCB2ZXJzaW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZWI2ZGE4MDUwNzk3YzIwNGM5ZDAxMDU0ODQyNDE4NmM3Y2UzMmZjMQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBTZXAgMTYgMDI6Mzk6MzUgMjAwNyArMDIwMAoKICAgIFRRTTh4eC9GUFM4eHg6IGFkanVzdCBmbGFzaCBwYXJ0aXRpb25zIGZvciAyLjYgQVJDSD1wb3dlcnBjIGtlcm5lbHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGNkMmQxNjAyYzU0Y2M2OTU3YmRlZjM4NzIyNzJhNGIyNjQ4OTM5NjAKQXV0aG9yOiB1cndpdGhzdWdob3NoQGdtYWlsLmNvbSA8dXJ3aXRoc3VnaG9zaEBnbWFpbC5jb20+CkRhdGU6CU1vbiBTZXAgMTAgMTQ6NTQ6NTYgMjAwNyAtMDQwMAoKICAgIFR5cG8gZml4IGluIHRzZWMuYwoKICAgIEZpeHVwIGZvciB0aGUgYnJlYWsgc3RhdGVtZW50IGluIHdyb25nIHBsYWNlLgoKICAgIFtQYXRjaCBieSB1cndpdGhzdWdob3NoQGdtYWlsLmNvbV0KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OglXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDViZDdmZTlhZWI3NjkwNjM3MWY0MGI4ZmQwNzYxM2YxMDkyMmUzZTcKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIFNlcCAxMSAxNzowNDowMCAyMDA3ICswMjAwCgogICAgRml4IGRvX2RpdigpIHVzYWdlIGluIG5hbmQgcHJvY2VzcyBvdXRwdXQKCiAgICBGaXggdXNhZ2Ugb2YgZG9fZGl2KCkgaW4gbmFuZCBlcmFzZXxyZWFkfHdyaXRlIHByb2Nlc3Mgb3V0cHV0LgoKICAgIFRoZSBsYXN0IHBhdGNoIHRvIG5hbmRfdXRpbC5jIGludHJvZHVjZWQgZG9fZGl2KCkgaW5zdGVhZCBvZiBsaWJnY2MncwogICAgaW1wbGVtZW50YXRpb24uIEJ1dCBkb19kaXYoKSByZXR1cm5zIHRoZSBxdW90aWVudCBpbiBpdHMgZmlyc3QKICAgIG1hY3JvIHBhcmFtZXRlciBhbmQgbm90IGFzIHJlc3VsdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBjNzUwZDJlNjY5MmEwMDBhODJmMjlkZTdiZjI0ZTNkYzIxMjM5MTYxCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVdlZCBTZXAgMTIgMTI6MzY6NTMgMjAwNyArMDIwMAoKICAgIE5BTkQ6IEFkZCBDRkdfTkFORF9RVUlFVCBvcHRpb24KCiAgICBUaGlzIGNvbmZpZyBvcHRpb24gc2V0cyB0aGUgZGVmYXVsdCBmb3IgdGhlIHByb2dyZXNzIGluZm9ybWF0aW9uCiAgICBvdXRwdXQgYmVoYXZpb3IgdGhhdCBjYW4gYWxzbyBiZSBjb25maWd1cmVkIHRocm91Z2ggdGhlICdxdWlldCcKICAgIGVudmlyb25tZW50IHZhcmlhYmxlLgoKICAgIFRoZSBsZWdhY3kgTkFORCBjb2RlIGRvZXMgbm90IHByaW50IHRoZSBjdXJyZW50IHByb2dyZXNzIGluZm8KICAgIG9uIHRoZSBjb25zb2xlLiBTbyB0aGlzIG9wdGlvbiBpcyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IKICAgIHVuaXRzIHRoYXQgYXJlIGluIHRoZSBmaWVsZCBhbmQgd2hlcmUgc2V0dGluZyB0aGUgcXVpZXQgdmFyaWFibGUKICAgIGlzIG5vdCBhbiBvcHRpb24uIFdpdGggQ0ZHX05BTkRfUVVJRVQgc2V0IHRvICcxJyB0aGUgY29uc29sZQogICAgcHJvZ3Jlc3MgaW5mbyBpcyB0dXJuZWQgb2ZmLiBUaGlzIGNhbiBzdGlsbCBiZSBvdmVyd3JpdHRlbgogICAgdGhyb3VnaCB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgZGNiODg2MzAyOTBkMmJjZDgwMzM4NmRkNGMyYmU3MzE0Mjk5NGM0ZgpBdXRob3I6IExpZXcgVHNpIENodW5nLXI1YWFocCA8VHNpLWNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IFNlcCAxMyAxNjowNjowNSAyMDA3IC0wNzAwCgogICAgQ29sZEZpcmU6IGZpeCBidWlsZCBlcnJvciBiZWNhc3VlIG9mIGJhZCB0eXBlIG9mIG1paV9pbml0KCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzE0ZDViNmNlNTJhNGVkMTlkZDI5NWQxMzY0ZTI0NmM1ZTYwNTAxNwpBdXRob3I6IExpZXcgVHNpIENodW5nLXI1YWFocCA8VHNpLWNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IFNlcCAxMyAxNjowNDowNSAyMDA3IC0wNzAwCgogICAgQ29sZEZpcmU6IEZpeCBidWlsZCBlcnJvciBjYXVzZWQgYnkgcGl4aXMuYwoKICAgIE1vdmVkIHRoZSAjaW5jbHVkZSA8YXNtL2NhY2hlLmg+IGluc2lkZSB0aGUgI2lmZGVmIENPTkZJR19GU0xfUElYSVMuCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGUyMTY1OWUzMDY2MGExMzc3YzQyYWYxMzVhNjExNGVmZTM5ODAxZDkKQXV0aG9yOiBTYW0gU3BhcmtzIDxTU3BhcmtzQHR3YWNzLmNvbT4KRGF0ZToJRnJpIFNlcCAxNCAxMToxNDo0MiAyMDA3IC0wNjAwCgogICAgVXBkYXRlIE1QQzgzNDlJVFgqX2NvbmZpZyB0byBwbGFjZSBjb25maWcudG1wIGluIHJpZ2h0IHBsYWNlLgoKICAgIE1QQzgzNElUWCpfY29uZmlnIGRvZXMgbm90IHN0b3JlIGNvbmZpZy50bXAgYXQgdGhlIGNvcnJlY3QgbG9jYXRhdGlvbiwKICAgIGNhdXNpbmcgTVBDODM0OUlUWEdQIHRvIGhhdmUgdGhlIHdyb25nIFRFWFRfQkFTRS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTYW0gU3BhcmtzIDxTU3BhcmtzQHR3YWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAxMjE4YWJmMWI1ODE3YTM5YTgyMzk5YjRiOTI4YjAwNzUwNTc1YmRhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU2F0IFNlcCAxNSAyMDo0ODo0MSAyMDA3ICswMjAwCgogICAgRml4IGNhc2VzIHdoZXJlIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSIHdhcyBub3QgZGVjbGFyZWQgYXMgZ2xvYmFsCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2NmIzZjI0ZDY2NWJlNjc4YTlkYmIxMjViMWU4NDE4NTQwMGY2M2I1CkF1dGhvcjogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KRGF0ZToJU2F0IFNlcCAxNSAxMTo1NTo0MiAyMDA3ICswMjAwCgogICAgTWFrZSBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUiBnbG9iYWwgZm9yIERhVmluY2kKCiAgICBBcyBkaXNjdXNzZWQgaW4gWzFdLCBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUiBoYXMgdG8gYmUgZ2xvYmFsIGFuZCBub3QKICAgIGZ1bmN0aW9uIGxvY2FsLgoKICAgIFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ21haWwuY29tPgoKICAgIFsxXSBodHRwOi8vYXJ0aWNsZS5nbWFuZS5vcmcvZ21hbmUuY29tcC5ib290LWxvYWRlcnMudS1ib290LzMxODA1Cgpjb21taXQgOTkxYjA4OWQxY2U1YWQ5NDU3MjVlMzY1N2E4ZjEwNmRmYTAyYTM4ZQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU2F0IFNlcCAxNSAwMDowMzozNSAyMDA3ICswMjAwCgogICAgU3luY2hyb25pemUgd2l0aCBVLUJPT1QgbWFpbmxpbmUKCmNvbW1pdCBkN2ZlZTMyYjdlNjFmZTExYzY0ZTM3MWNkZTc5ZmFhNDc2OGU4MzUwCkF1dGhvcjogU2FtIFNwYXJrcyA8U1NwYXJrc0B0d2Fjcy5jb20+CkRhdGU6CUZyaSBTZXAgMTQgMTE6MTQ6NDIgMjAwNyAtMDYwMAoKICAgIFVwZGF0ZSBNUEM4MzQ5SVRYKl9jb25maWcgdG8gcGxhY2UgY29uZmlnLnRtcCBpbiByaWdodCBwbGFjZS4KCiAgICBNUEM4MzRJVFgqX2NvbmZpZyBkb2VzIG5vdCBzdG9yZSBjb25maWcudG1wIGF0IHRoZSBjb3JyZWN0IGxvY2F0YXRpb24sCiAgICBjYXVzaW5nIE1QQzgzNDlJVFhHUCB0byBoYXZlIHRoZSB3cm9uZyBURVhUX0JBU0UuCgogICAgU2lnbmVkLW9mZi1ieTogU2FtIFNwYXJrcyA8U1NwYXJrc0B0d2Fjcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZlN2I3YjZlYTFiNmQwNGRiZTk2MjQyZWI2YTBjMWM2NjRjOThlOGMKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgU2VwIDEzIDE4OjIxOjQ4IDIwMDcgKzAyMDAKCiAgICBjbTUyMDA6IEZpeCBhIHR5cG8gaW50cm9kdWNlZCBieSBhZmFhYzg2ZmUyOTQ4YWM4NGNkOWExMmJiZWQ4ODNiM2M2ODNlN2Q5CgogICAgU2lnbmVkLW9mZi1ieTogTWFyaWFuIEJhbGFrb3dpY3ogPG04QHNlbWloYWxmLmNvbT4KCmNvbW1pdCBlMWY2MDFiNTcyZGI1ZGU5YWE4MWEwYjc3YzY4YTg2OTk0ZmUyNGM0CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVGh1IFNlcCAxMyAxNjozMzo1OSAyMDA3ICswMjAwCgogICAgdHFtNTIwMDogUmVzdG9yZSBjdXN0b21hcnkgZW52LiB2YXJpYWJsZSBib290IGNvbW1hbmRzIGZvciBwb3dlcnBjIGtlcm5lbHMKCiAgICAtIHVwZGF0ZSBkZWZhdWx0IGRlZmluaXRpb25zIG9mIGtlcm5lbF9hZGRyIGFuZCBmZHRfYWRkciBlbnYuIHZhcmlhYmxlcwogICAgLSBtYWtlIGFyY2gvcG93ZXJwYyBib290aW5nIHRoZSBkZWZhdWx0IHNjZW5hcmlvCiAgICAtIHVwZGF0ZSBNVEQgcGFydGl0aW9uIGxheW91dCB0byBtYXRjaCB0aGUgYWJvdmUKCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGYzNDAyNGQ0YTMyOGU2ZWRkOTA2NDU2ZGE5OGQyYzUzNzE1NWM0ZjcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgU2VwIDEyIDAwOjQ4OjU3IDIwMDcgKzAyMDAKCiAgICBGaXggbWVtb3J5IGNvcnJ1cHRpb24gcHJvYmxlbSBvbiBTVFggR1AzIFNTQSBCb2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGQ5NGM3OWU0NzAxMWFmNWU4ZGQxMGVkNjE2M2MwOWI0Y2ZjNzQzY2MKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUdWUgU2VwIDExIDE1OjM1OjAxIDIwMDcgKzAxMDAKCiAgICBGaW5hbCB0aWR5Cgpjb21taXQgMzhhZDgyZGEwYzExODBlY2RlYjIxMmE4ZjQyNDVlOTQ1YmNjNTQ2ZQpBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgU2VwIDExIDE1OjQyOjExIDIwMDcgKzAyMDAKCiAgICBbR1AzU1NBXSBBZGQgZGVmaW5lIENPTkZJR19NUEM4NVhYX1BDSTIgaW4gY29uZmlnIGZpbGUgdG8gYWxsb3cgdS1ib290IHRvCiAgICBzY2FuIG9uIHNlY29uZCBwY2kgYnVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDZjMmY0ZjM4OGU4MTgxNjU1ZWE4YjY5MzQzZWEwMGI2OGFhNmU4ZDAKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIFNlcCAxMSAxMjo1Nzo1MiAyMDA3ICswMjAwCgogICAgW3BwYzR4eF0gSW5kaXZpZHVhbCBoYW5kbGluZyBvZiBzZHJhbS5jIGZvciBiYW1ib29fbmFuZCBidWlsZAoKICAgIEJhbWJvbyBoYXMgYSBmaWxlIHNkcmFtLmMgd2hpY2ggbmVlZHMgc3BlY2lhbCB0cmVhdG1lbnQgd2hlbiBidWlsZGluZyBpbgogICAgc2VwYXJhdGUgZGlyZWN0b3J5LiBJdCBoYXMgdG8gYmUgbGlua2VkIHRvIGJ1aWxkIGRpcmVjdG9yeSBvdGhlcndpc2UgaXQgaXMKICAgIG5vdCBzZWVuLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGQ0NTk2Mzg1NGVmZjM5ZDU3NTEyNGQ4NTk0MTliYjQ5NTNjZTJjODcKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVR1ZSBTZXAgMTEgMDA6Mzc6MDQgMjAwNyArMDIwMAoKICAgIFtGSVhdIE1pY3JvYmxhemUgTUw0MDEgLSByZXBhcmUgRkxBU0ggaGFuZGxpbmcKCmNvbW1pdCAzOGMxZWY3MjhkMTk5NTA0MTRhOGFiMWNjZmM1Mzc2Nzg0OGZhMzQ2CkF1dGhvcjogU2VhbiBNQ0dPT0dBTiA8c2Vhbi5tY2dvb2dhbkBzdC5jb20+CkRhdGU6CU1vbiBTZXAgMTAgMTY6NTU6NTkgMjAwNyArMDEwMAoKICAgIEFsbG9jYXRlIENQVSBBcmNoaXRlY3R1cmUgQ29kZSBmb3IgU1RNaWNyb2VsZWN0cm9uaWNzJyBTVDIwMC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZWFuIE1jR29vZ2FuIDxTZWFuLk1jR29vZ2FuQHN0LmNvbT4KICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKY29tbWl0IDc1NGJhYzQ4MTU2Zjg5NThkOGY2YTUzYTUxZWRhODhhYjU3NTg5MjkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gU2VwIDEwIDIwOjQyOjMxIDIwMDcgKzAyMDAKCiAgICBVcGRhdGUgdmVyc2lvbiB0byBtYXRjaCBjdXJyZW50IHN0YXRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgN2E4ODhkNmIzYzMyYTEyNmRiYjUwNGVmMTQ2YmI0YzI2NTc0Y2E3YgpBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglNb24gU2VwIDEwIDE3OjM5OjA4IDIwMDcgKzAyMDAKCiAgICBbTVBDNTEyeF0gU3RyZWFtbGluZSBmcmFtZSBoYW5kbGluZyBpbiB0aGUgRkVDIGRyaXZlcgoKICAgIC0gY29udmVydCBmcmFtZSBzaXplIHNldHRpbmdzIHRvIGJlIGRlcml2ZWQgZnJvbSBhIHNpbmdsZSBiYXNlCiAgICAtIHNldCBmcmFtZSBzaXplIHRvIHRoZSByZWNvbW1lbmRlZCBkZWZhdWx0IHZhbHVlCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+Cgpjb21taXQgZTI1MWUwMGQwZGI0YjM2ZDFkMmI3ZTM4ZmVjNDNhNzI5NmI1MjlhMgpBdXRob3I6IEt5dW5nbWluIFBhcmsgPGttcGFya0BpbmZyYWRlYWQub3JnPgpEYXRlOglNb24gU2VwIDEwIDExOjM0OjAwIDIwMDcgKzA5MDAKCiAgICBSZW1vdmUgY29tcGlsZXIgd2FybmluZzogdGFyZ2V0IENQVSBkb2VzIG5vdCBzdXBwb3J0IGludGVyd29ya2luZwoKICAgIFNpZ25lZC1vZmYtYnk6IEt5dW5nbWluIFBhcmsgPGt5dW5nbWluLnBhcmtAc2Ftc3VuZy5jb20+Cgpjb21taXQgMWQ5ZTMxZTA0OTExYTZiYjdjYzY2ZGQ5MTEzMmM2OTkxMDFjMzJlMgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBTZXAgOSAyMToyMTozMyAyMDA3ICswMjAwCgogICAgRml4IGNvbXBpbGUgZXJyb3IgaW4gc3BjMTkyMCBjb25maWcuCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YvxjaGVyIDxta0BkZW54LmRlPgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBhN2Q3ZWNhNzkxYTM3ZjQ1MmM5ZGExMGZlZjRiMzFkZDdhYTlhNjIyCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglGcmkgU2VwIDcgMDk6MjU6MDcgMjAwNyAtMDYwMAoKICAgIEJ1Z2ZpeDogbWFrZSBib290bStsaWJmZHQgY29tcGlsZSBvbiBib2FyZHMgd2l0aCBubyBmbGFzaAoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA2ZWZjMWZjMGI2M2U1NWY5NGM1YmM2MWQ4ZGQyM2M5MThlM2JjNzc4CkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBTZXAgNyAxODozNTozNyAyMDA3ICswMjAwCgogICAgW1BQQzQ0MFNQZV0gUENJZSBlbnZpcm9ubWVudCBzZXR0aW5ncyBmb3IgS2F0bWFpIGFuZCBZdWNjYQoKICAgIC0gJ3BjaWNvbmZpZ2hvc3QnIGlzIHNldCBieSBkZWZhdWx0IGluIG9yZGVyIHRvIGJlIGFibGUgdG8gc2NhbiBicmlkZ2VzCiAgICBiZWhpbmQgdGhlIHByaW1hcnkgaG9zdC9QQ0llCgogICAgLSAncGNpc2NhbmRlbGF5JyBlbnYgdmFyaWFibGUgaXMgcmVjb2duaXplZCB0byBhbGxvdyBmb3IgdXNlci1jb250cm9sbGVkCiAgICBkZWxheSBiZWZvcmUgdGhlIFBDSWUgYnVzIGVudW1lcmF0aW9uOyBzb21lIHBlcmlwaGVyYWwgZGV2aWNlcyByZXF1aXJlIGEKICAgIHNpZ25pZmljYW50IGRlbGF5IGJlZm9yZSB0aGV5IGNhbiBiZSBzY2FubmVkIChlLmcuIExTSTg0MDhFKTsgd2l0aG91dCB0aGUKICAgIGRlbGF5IHRoZXkgYXJlIG5vdCBkZXRlY3RlZAoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDdmMTkxMzkzODk4NGVmNmM2YTQ2Y2I1M2UwMDM3MTkxOTZkOWM1ZGUKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIFNlcCA3IDE4OjIwOjIzIDIwMDcgKzAyMDAKCiAgICBbUFBDNDQwU1BlXSBJbXByb3ZlIFBDSWUgY29uZmlndXJhdGlvbiBzcGFjZSBhY2Nlc3MKCiAgICAtIGNvcnJlY3QgY29uZmlndXJhdGlvbiBzcGFjZSBtYXBwaW5nCiAgICAtIGNvcnJlY3QgYnVzIG51bWJlcmluZwogICAgLSBiZXR0ZXIgYWNjZXNzIHRvIGNvbmZpZyBzcGFjZQoKICAgIFByaW9yIHRvIHRoaXMgcGF0Y2gsIHRoZSA0NDBTUGUgaG9zdC9QQ0llIGJyaWRnZSB3YXMgYWJsZSB0byBjb25maWd1cmUgb25seSB0aGUKICAgIGZpcnN0IGRldmljZSBvbiB0aGUgZmlyc3QgYnVzLiBXZSBub3cgYWxsb3cgdG8gY29uZmlndXJlIHVwIHRvIDE2IGJ1c2VzOwogICAgYWxzbywgc2Nhbm5pbmcgZm9yIGRldmljZXMgYmVoaW5kIHRoZSBQQ0llLVBDSWUgYnJpZGdlIGlzIHN1cHBvcnRlZCwgc28KICAgIHBlcmlwaGVyYWwgZGV2aWNlcyBmYXJ0aGVyIGluIGhpZXJhcmNoeSBjYW4gYmUgaWRlbnRpZmllZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KCmNvbW1pdCAxNWVlNDczNGU0ZTA4MDAzZDczZDllYWQzY2E4MGUyYTA2NzJlNDI3CkF1dGhvcjogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CkRhdGU6CUZyaSBTZXAgNyAxNzo0NjoxOCAyMDA3ICswMjAwCgogICAgW1BQQzQ0MFNQZV0gQ29udmVydCBtYWNoaW5lIGNoZWNrIGV4Y2VwdGlvbnMgaGFuZGxpbmcKCiAgICBDb252ZXJ0IHVzaW5nIGZpeHVwIG1lY2hhbmlzbSB0byBzdXBwcmVzc2luZyBNQ0sgZm9yIHRoZSBkdXJhdGlvbiBvZiBjb25maWcKICAgIHJlYWQvd3JpdGUgdHJhbnNhY3Rpb246IHdoaWxlIGZpeHVwcyB3b3JrIGZpbmUgd2l0aCB0aGUgY2FzZSBvZiBhIHByZWNpc2UKICAgIGV4Y2VwdGlvbiwgd2UgaWRlbnRpZmllZCBhIG1ham9yIGRyYXdiYWNrIHdpdGggdGhpcyBhcHByb2FjaCB3aGVuIHRoZXJlJ3MKICAgIGFuIGltcHJlY2lzZSBjYXNlLiBJbiB0aGlzIHNjZW5hcmlvIHRoZXJlIGlzIHRoZSBmb2xsb3dpbmcgcmFjZSBjb25kaXRpb246CiAgICB0aGUgZml4dXAgaXMgKGJ5IGRlc2lnbikgc2V0IHRvIGNhdGNoIHRoZSBpbnN0cnVjdGlvbiBmb2xsb3dpbmcgdGhlIG9uZQogICAgYWN0dWFsbHkgY2F1c2luZyB0aGUgZXhjZXB0aW9uOyBpZiBhbiBpbnRlcnJ1cHQgKGUuZy4gZGVjcmVtZW50ZXIpIGhhcHBlbnMKICAgIGJldHdlZW4gdGhvc2UgdHdvIGluc3RydWN0aW9ucywgdGhlIElTUiBjb2RlIGlzIGV4ZWN1dGVkIGJlZm9yZSB0aGUgZml4dXAKICAgIGhhbmRsZXIgdGhlIG1hY2hpbmUgY2hlY2sgaXMgbm8gbG9uZ2VyIHByb3RlY3RlZCBieSB0aGUgZml4dXAgaGFuZGxlciBhcyBpdAogICAgYXBwZWFycyBhcyB3aXRoaW4gdGhlIElTUiBjb2RlLiBJbiBjb25zZXF1ZW5jZSB0aGUgZml4dXAgYXBwcm9hY2ggaXMgYmVpbmcKICAgIHBoYXNlZCBvdXQgYW5kIHJlcGxhY2VkIHdpdGggZXhwbGljaXQgc3VwcHJlc3Npbmcgb2YgTUNLIGR1cmluZyBhIFBDSWUKICAgIGNvbmZpZyByZWFkL3dyaXRlIGN5Y2xlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGZmNzY0MGM5ZWFkODgwNmI1ZDgyN2YyYjI5ZjljYjI2MzJhZGQ3MjkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgU2VwIDcgMTc6NDM6MzYgMjAwNyArMDIwMAoKICAgIEZpeCB0eXBvIGluIE1BS0VBTEwgc2NyaXB0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMDhlMmU1ZmNkMmUwNjY3MGI2MmUxNjgwYTM5MzRjMGU1NWM3MjgxMApBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgU2VwIDcgMTc6MDk6MjEgMjAwNyArMDIwMAoKICAgIFtNUEM1MTJ4XSBQcm9wZXIgaGFuZGxpbmcgb2YgbGFyZ2VyIGZyYW1lcyBpbiB0aGUgRkVDIGRyaXZlcgoKICAgIFdoZW4gZnJhbWUgbGFyZ2VyIHRoYW4gbG9jYWwgUlggYnVmZmVyIGlzIHJlY2VpdmVkLCBpdCBpcyBzcGxpdCBhbmQgaGFuZGxlZAogICAgYnkgdHdvIGJ1ZmZlciBkZXNjcmlwdG9ycy4gUHJpb3IgdG8gdGhpcyBwYXRjaCB0aGUgRkVDIGRyaXZlciBkaXNjYXJkZWQKICAgIGNvbnRlbnRzIG9mIGEgYnVmZmVyIGRlc2NyaXB0b3Igd2l0aG91dCB0aGUgJ0xBU1QnIGJpdCBzZXQsIHNvIHRoZSBmaXJzdAogICAgcGFydCBvZiB0aGUgZnJhbWUgd2FzIGxvc3QgaW4gY2FzZSBvZiBsYXJnZXIgZnJhbWVzLiBUaGlzIGZpeCBhbGxvd3MgdG8KICAgIHNhZmVseSBjb21iaW5lIHRoZSB0d28gcGllY2VzIGludG8gdGhlIHdob2xlIGZyYW1lLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDhkMTc5NzlkMDM1OTQ5MmE4MjJhMGE0MDlkMjZlM2EzNTQ5YjRjZDQKQXV0aG9yOiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgU2VwIDcgMTc6MDU6MzYgMjAwNyArMDIwMAoKICAgIFtNUEM1MTJ4XSBDb3JyZWN0IGZpeHVwIHJlbG9jYXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgoKY29tbWl0IGE4OWNiYmQyN2E2MGU2NzQwNzcyMDAwZmQwNjg4ZmZiYTFjMjU3NmEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgU2VwIDcgMDE6MjE6MjUgMjAwNyArMDIwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0csIG1pbm9yIGNvZGluZyBzdHlsZSBjbGVhbnVwLgoKY29tbWl0IDVlNTgwM2UxMTlkZTNiZWJkNzZmYzlhNTdiYWFjMGI1YWVjY2M4YTMKQXV0aG9yOiBzdGVmYW5vIGJhYmljIDxzYmFiaWNAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAzMCAyMzowMTo0OSAyMDA3ICswMjAwCgogICAgUFhBMjcwOiBBZGRlZCBzdXBwb3J0IGZvciBUcml6ZXBzSVYgYm9hcmQuCgogICAgVGhpcyBwYXRjaCBhZGQgc3VwcG9ydCBmb3IgdGhlIFRyaXplcHMgSVYgbW9kdWxlICg1MjBNaHopLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gQmFiaWMgPHNiYWJpY0BkZW54LmRlPgoKY29tbWl0IDgwMTcyYzYxODFjOTEyZmJiMzRlYTNiYTBjMjJiMjMyYjQxOWI0N2YKQXV0aG9yOiBzdGVmYW5vIGJhYmljIDxzYmFiaWNAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAzMCAyMjo1NzowNCAyMDA3ICswMjAwCgogICAgUFhBMjcwOiBBZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgc2VyaWFsIHBvcnRzLgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBtdWx0aXBsZSBzZXJpYWwgcG9ydHMgdG8gdGhlIFBYQSB0YXJnZXQuCiAgICBGRlVBUlQsIEJUVUFSVCBhbmQgU1RVQVJUIGFyZSBzdXBwb3J0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFubyBCYWJpYyA8c2JhYmljQGRlbnguZGU+Cgpjb21taXQgMjhiYjNmNzJjNjg3YWM2YjJlYjA3NmIwMWRkMjFhNWZkNjU3ZDQ1ZQpBdXRob3I6IHN0ZWZhbm8gYmFiaWMgPHNiYWJpY0BkZW54LmRlPgpEYXRlOglUaHUgQXVnIDMwIDIyOjQ4OjQ3IDIwMDcgKzAyMDAKCiAgICBQWEEyNzA6IGZpeCBjb21waWxlIGlzc3VlIChpbnZhbGlkIGx2YWx1ZSkKCiAgICBDb2RlIGlzIGJyb2tlbiBmb3IgUFhBMjcwIGR1ZSB0byAiaW52YWxpZCBsdmFsdWUgaW4gYXNzaWdubWVudCIuCgogICAgVGhpcyBwYXRjaCBmaXggaXQgaW4gcHhhLXJlZ3MuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbm8gQmFiaWMgPHNiYWJpY0BkZW54LmRlPgoKY29tbWl0IDFkMmNhNDQ2ZTFhNzMxZGY0MjAyMDZkMDRmZTI3OGMyN2VhNmI4ZTgKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDMwIDE4OjE5OjA1IDIwMDcgKzA4MDAKCiAgICBBZGQgQlVJTERfRElSIHN1cHBvcnQgZm9yIGJpb3MgZW11bGF0b3IuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNGQ4YTU1MTQ1NDQyZjEzNjk4MjYzNDg2MjM0MWEzZTAyMDAyYmRhCkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglGcmkgQXVnIDMxIDE0OjQxOjUxIDIwMDcgKzA5MDAKCiAgICBbTUlQU10gUmVtb3ZlIGlubGluZSBhc20gc3RyaW5nIGZ1bmN0aW9ucwoKICAgIFN0b3AgdXNpbmcgaW5saW5lIHN0cmluZyBmdW5jdGlvbnMgb24gTUlQUyBhcyBvdGhlciBBUkNIcyBkbyBzbywKICAgIHNpbmNlIHRoZSBvcHRpbWl6ZWQgaW5saW5lIGFzbSB2ZXJzaW9ucyBhcmUgbm90IHNtYWxsLgoKICAgIFRoaXMgY2hhbmdlIGlzIHRyaWdnZXJlZCBieSBhIGZvbGxvd2luZyBNSVBTIGJ1aWxkIGVycm9yOgogICAgY29tbW9uL2xpYmNvbW1vbi5hKGV4cG9ydHMubykoLnRleHQrMHhkYyk6IEluIGZ1bmN0aW9uIGBqdW1wdGFibGVfaW5pdCc6CiAgICBjb21tb24vZXhwb3J0cy5jOjMyOiB1bmRlZmluZWQgcmVmZXJlbmNlIHRvIGBzdHJjbXAnCiAgICBtYWtlOiAqKiogW3UtYm9vdF0gRXJyb3IgMQoKICAgIFNpZ25lZC1vZmYtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KCmNvbW1pdCA4ZWEyYzRlNTQ4MzNkZWFlYmMyNGMzY2E2YjdmMjEzNTNjMjViMGY1CkF1dGhvcjogU2hpbnlhIEt1cmliYXlhc2hpIDxzaGlueWEua3VyaWJheWFzaGlAbmVjZWwuY29tPgpEYXRlOglGcmkgQXVnIDMxIDE0OjQxOjQ1IDIwMDcgKzA5MDAKCiAgICBbTUlQU10gVXBkYXRlIGFzbSBzdHJpbmcgaGVhZGVyCgogICAgVGhpcyBwYXRjaGVzIGNvbnRhaW5zIHNldmVyYWwgYnVnZml4ZXMgYW5kIGNsZWFudXBzIGluIHRoZSBsYXRlc3QgdXBzdHJlYW06CgogICAgIC0gRG9uJ3QgaW5jbHVkZSBsaW51eC9jb25maWcuaAogICAgIC0gUmVtb3ZlIGJ1Z2d5IGlubGluZSB2ZXJzaW9uIG9mIG1lbXNjYW4uCiAgICAgLSBNZXJnZSB3aXRoIExpbnV4IDIuNi4xMS1yYzMuCiAgICAgLSBGaXggdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBzdHJjcHkgaW4gYmluZm10X21pc2MgY2F1c2VkIGJ5IGdjYyAzLjQuCiAgICAgLSBHb29kYnllIG1pcHM2NC4JMzE3MDQgbGluZXMgb2YgY29kZSBiaXRlIHRoZSBkdXN0LgogICAgIC0gUmVwbGFjZSBleHRlcm4gaW5saW5lIHdpdGggc3RhdGljIGlubGluZS4KICAgICAtIEZpeCByZXR1cm4gdmFsdWUgb2Ygc3RybmNweS4KICAgICAtIFJlbW92ZSBhIGJ1bmNoIG1vcmUgIiQxIiBjbG9iYmVycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+Cgpjb21taXQgNWI3MjlmYjNiZDk4ZjQ5ODU1ZDZiZmM2NTdjM2ZiYWU5NWYyYWRjMgpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBTZXAgNCAxNzozMToyMiAyMDA3ICswMjAwCgogICAgRml4IGRvX2Jvb3RtX2xpbnV4KCkgc28gdGhhdCBtdWx0aS1maWxlIGltYWdlcyB3aXRoIEZEVCBibG9iIGJvb3QuCgogICAgRml4IGluY29ycmVjdCBibG9iIGFkZHJlc3MgY2FsY3VsYXRpb24gaW4gZG9fYm9vdG1fbGludXgoKSB0aGF0IHByZXZlbnRzCiAgICBib290aW5nIHRoZSBrZXJuZWwgZnJvbSBhIG11bHRpLWZpbGUgaW1hZ2UgKGtlcm5lbCArIGluaXRyZCArIGJsb2IpLgoKICAgIEFsc28sIG1ha2UgbWlub3IgdXBkYXRlcyB0byB0aGUgVS1Cb290J3Mgb3V0cHV0IGFuZCB0byB0aGUgY29kaW5nIHN0eWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgMDQxYTI1NTRhZDYxOWU4MGRjZTUyMGMxYTMzMjEwYWZmY2I2YTNmMgpBdXRob3I6IEdhcnkgSmVubmVqb2huIDxnYXJ5Lmplbm5lam9obkBmcmVlbmV0LmRlPgpEYXRlOglGcmkgQXVnIDMxIDE0OjI5OjA0IDIwMDcgKzAyMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgU2lsNjgwIElERSBjb250cm9sbGVyLgoKICAgIG8gYWRkIGRyaXZlcnMvc2lsNjgwLmMgdG8gc3VwcG9ydCB0aGUgU2lsNjgwIElERS1jb250cm9sbGVyLgogICAgbyBkcml2ZXJzL01ha2VmaWxlOiBhZGQgc2lsNjgwLm8uCgogICAgU2lnbmVkLW9mZi1ieTogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQGRlbnguZGU+Cgpjb21taXQgZTc5MDIxMjIzYmMzMzlkZjY1NWUzNjA2NDVhNTJjNDU3YTc0YjA2NwpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVGh1IFNlcCA2IDA5OjQ3OjQwIDIwMDcgLTA2MDAKCiAgICBib290bS9mZHQ6IE9ubHkgcHJvY2VzcyB0aGUgZmR0IGlmIGFuIGZkdCBhZGRyZXNzIHdhcyBwcm92aWRlZAoKICAgIEJvYXJkcyB3aXRoIENPTkZJR19PRl9MSUJGRFQgZW5hYmxlZCBhcmUgbm90IGFibGUgdG8gYm9vdCBvbGQtc3R5bGUKICAgIGtlcm5lbHMgdXNpbmcgdGhlIGJvYXJkIGluZm8gc3RydWN0dXJlIChpbnN0ZWFkIG9mIHBhc3NpbmcgYSBkZXZpY2UgdHJlZSkKICAgIFRoaXMgY2hhbmdlIGFsbG93cyB0aGUgb2xkIHN0eWxlIGJvb3RpbmcgdG8gYmUgdXNlZCBpZiB0aGUgZmR0IGFyZ3VtZW50CiAgICB3YXMgbm90IHBhc3NlZCB0byAnYm9vdG0nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KICAgIEFja2VkLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNmMjgxN2E4NGMyZTliZWEyYzVkZmMwODRiY2UyZjJkMjU2M2FjNDMKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVRodSBTZXAgNiAwOTo0NjoyMyAyMDA3IC0wNjAwCgogICAgTWlncmF0ZSA1eHh4IGJvYXJkcyBmcm9tIENPTkZJR19PRl9GTEFUX1RSRUUgdG8gQ09ORklHX09GX0xJQkZEVAoKICAgIEFmZmVjdHMgYm9hcmRzOiBpY2VjdWJlIChsaXRlNTIwMCksIGp1cGl0ZXIsIG1vdGlvbnBybywgdHFtNTIwMAoKICAgIFRlc3RlZCBvbjogbGl0ZTUyMDBiCgogICAgTm90ZTogdGhlIGZpeHVwIGZ1bmN0aW9ucyBoYXZlIG5vdCBiZWVuIG1vdmVkIHRvIGEgY29tbW9uIHBsYWNlLiAgVGhpcwogICAgcGF0Y2ggaXMgdGFyZ2V0ZWQgZm9yIGltbWVkaWF0ZSBtZXJnaW5nIGFzIGluIHNvbHZlcyBhIGJ1aWxkIGlzc3VlLCBidXQKICAgIHRoZSBmaW5hbCBuYW1lL2xvY2F0aW9uIG9mIHRoZSBmaXh1cHMgaXMgc3RpbGwgc3ViamVjdCB0byBkZWJhdGUuICBJCiAgICBwcm9wb3NlIHRvIG1lcmdlIHRoaXMgbm93LCBhbmQgbW92ZSB0aGUgZml4dXBzIGluIHRoZSBuZXh0IG1lcmdlIHdpbmRvdwogICAgdG8gYmUgdXNhYmxlIGJ5IGFsbCB0YXJnZXRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA0MWJiNzZlOTQxOTI5ZjU0YTczMjA2ZmIxMzJmN2E0YzI3NTU0M2EzCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUaHUgU2VwIDYgMDk6NDY6MTcgMjAwNyAtMDYwMAoKICAgIGxpYmZkdDogYWRkIGNvbnZlbmllbmNlIGZ1bmN0aW9uIGZkdF9maW5kX2FuZF9zZXRwcm9wKCkKCiAgICBHaXZlbiB0aGUgcGF0aCB0byBhIG5vZGUsIGZkdF9maW5kX2FuZF9zZXRwcm9wKCkgYWxsb3dzIGEgcHJvcGVydHkgdmFsdWUKICAgIHRvIGJlIHNldCBkaXJlY3RseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgODA3NjdhNmNlYWQ5OTkwZDllNzdlNjJiZTk0Nzg0M2MyYzcyZjQ2OQpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVdlZCBTZXAgNSAxNjowNDo0MSAyMDA3ICswMTAwCgogICAgQ2hhbmdlZCBBUEkgbmFtZSB0byBjb2xvdXJlZF9sZWQuaAogICAgUmVtb3ZlZCBjb2RlIHVzaW5nIGRlcHJlY2F0ZWQgaWZkZWYgQ09ORklHX0JPT1RCSU5GVU5DCiAgICBUaWRpZWQgb3RoZXIgY3B1L2FybTkyMHQvc3RhcnQuUyBjb2RlCgpjb21taXQgNTZhOTI3MDUyMWJhYWEwMGUxMjYzOWE5NzgzMDJhNjdmNjFlZjA2MApBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBBdWcgMzAgMTY6MTg6MTggMjAwNyAtMDUwMAoKICAgIEZpeCBVTEkgUlRDIHN1cHBvcnQgb24gTVBDODU0NCBEUwoKICAgIFRoZSBSVEMgb24gdGhlIE0xNTc1IFVMSSBjaGlwc2V0IHJlcXVpcmVzIGEgZHVtbXkgcmVhZCBiZWZvcmUKICAgIHdlIGFyZSBhYmxlIHRvIHRhbGsgdG8gdGhlIFJUQy4gIFdlIGFjY29tcGxpc2ggdGhpcyBieSBhZGRpbmcgYQogICAgc2Vjb25kIG1lbW9yeSByZWdpb24gdG8gdGhlIFBIQiB0aGUgVUxJIGlzIG9uIGFuZCByZWFkIGZyb20gaXQuCgogICAgVGhlIHNlY29uZCByZWdpb24gaXMgYWRkZWQgdG8gbWFpbnRhaW4gY29tcGF0aWFiaWx0eSB3aXRoIExpbnV4J3MKICAgIHZpZXcgb2YgdGhlIFBDSSBtZW1vcnkgbWFwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZjc1ZTg5ZTliNTcxNGRiMmIwZTgwMDc0MDcxZGZiZGQ2ZjU5NDg4YQpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMzAgMDE6NTg6NDggMjAwNyAtMDUwMAoKICAgIGZ0X2JvYXJkX3NldHVwIHVwZGF0ZSA4NXh4Lzg2eHggb2YgcGNpL3BjaWUgYnVzLXJhbmdlIHByb3BlcnR5LgoKICAgIHBjaWUgaXMgbm93IGRpZmZlcmVudGlhdGVkIGZyb20gcGNpLiAgQWRkIDg2NDEgYnVzLXJhbmdlIHVwZGF0ZXMuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5ZjVjM2QzNzIwZTc3N2E1NzJkY2RjOGFmMjAwOGI0NGM3MjQzODg1CkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIFNlcCA0IDE2OjE4OjM4IDIwMDcgKzAxMDAKCiAgICBBZGQgY29sb3VyZWQgbGVkIGludGVyZmFjZSBmb3IgQVJNIGJvYXJkcy4KICAgIFVzZSBpdCBpbiBjcHUvYXJtOTIwdC9zdGFydC5TIHRvIGluZGljYXRlIFUtQm9vdCBjb2RlIGhhcyBiZWVuIGVudGVyZWQuCgpjb21taXQgNzQ2MmZlMGQ1YTlkNDBjZGUwODNmYjFhM2NkNzM5MTE5OTZiNWVjYgpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBTZXAgNCAxNDo0OToyOCAyMDA3ICswMTAwCgogICAgTW92ZSBpbmNsdWRlL2xlZC5oIHRvIGJvYXJkL2F0OTFybTkyMDBkawoKY29tbWl0IDZlNGJmOWIyNGU1N2MxNWFiYzY1NDJlNjg1ZDA2MzgwYmM2NGFmMjcKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUdWUgU2VwIDQgMTQ6MjU6NTEgMjAwNyArMDEwMAoKICAgIFJhbiBMaW5kZW50IG9uIGRyaXZlcnMvYXQ0NS5jCgpjb21taXQgNTU3YWI4OWQyOTRmMDhkZDUzMmYyMWQxOTg2MWI0MDA5MzIwMGEzMwpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBTZXAgNCAxNDoyMzo1MCAyMDA3ICswMTAwCgogICAgUmVuYW1lIENPTkZJR19DTURfTVVYIHRvIENPTkZJR19DTURfQVQ5MV9TUElNVVgKCmNvbW1pdCA4MWI3M2RlYzE2ZmQxMjI3MzY5YTE5MWU3MjVlMTAwNDRhOWQ1NmI4CkF1dGhvcjogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQGRlbnguZGU+CkRhdGU6CUZyaSBBdWcgMzEgMTU6MjE6NDYgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogKFJlLSlFbmFibGUgQ09ORklHX1BDSV9QTlAgb24gQU1DQyA0NDBFUHggU2VxdW9pYQoKICAgIFRoZSA0NDBFUHggaGFzIGEgcHJvYmxlbSB3aGVuIHRoZSBQQ0lfQ0FDSEVfTElORV9TSVpFIHJlZ2lzdGVyIGlzCiAgICBzZXQgdG8gbm9uLXplcm8sIGJlY2F1c2UgaXQgZG9lc24ndCBzdXBwb3J0IE1STSAobWVtb3J5LXJlYWQtCiAgICBtdWx0aXBsZSkgY29ycmVjdGx5LiBXZSBub3cgYWRkZWQgdGhlIHBvc3NpYmlsaXR5IHRvIGNvbmZpZ3VyZQogICAgdGhpcyByZWdpc3RlciBpbiB0aGUgYm9hcmQgY29uZmlnIGZpbGUsIHNvIHRoYXQgdGhlIGRlZmF1bHQgdmFsdWUKICAgIG9mIDggY2FuIGJlIG92ZXJyaWRkZW4uCgogICAgSGVyZSB0aGUgZGV0YWlscyBvZiB0aGlzIHBhdGNoOgoKICAgIG8gZHJpdmVyc19wY2lfYXV0by5jOiBpbnRyb2R1Y2UgQ0ZHX1BDSV9DQUNIRV9MSU5FX1NJWkUgdG8gYWxsb3cKICAgICAgYm9hcmQtc3BlY2lmaWMgc2V0dGluZ3MuIEFzIGFuIGV4YW1wbGUgdGhlIHNlcXVvaWEgYm9hcmQgcmVxdWlyZXMgMC4KICAgICAgSWRlYSBmcm9tIFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4uCiAgICBvIGJvYXJkL2FtY2Mvc2VxdW9pYS9pbml0LlM6IGFkZCBhIFRMQiBtYXBwaW5nIGF0IDB4RTgwMDAwMDAgZm9yIHRoZQogICAgICBQQ0kgSU8tc3BhY2UuIE9idGFpbmVkIGZyb20gU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPi4KICAgIG8gaW5jbHVkZS9jb25maWdzL3NlcXVvaWEuaDogdHVybiBDT05GSUdfUENJX1BOUCBiYWNrIG9uIGFuZCBzZXQKICAgICAgQ0ZHX1BDSV9DQUNIRV9MSU5FX1NJWkUgdG8gMC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHYXJ5IEplbm5lam9obiA8Z2FyeWpAZGVueC5kZT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2MDE3NDc0NmM2NjhiMzA5Mzc4YTkxNDg4ZGRlZDg5OGU5NTUzZWFlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIEF1ZyAzMSAxMDowMTo1MSAyMDA3ICswMjAwCgogICAgRml4IFRGVFAgT0FDSyBjb2RlIGZvciBzaG9ydCBwYWNrZXRzLgoKICAgIFRoZSBvbGQgY29kZSBoYWQgYSBsb29wIGxpbWl0IG92ZXJmbG93IGJ1ZyB3aGljaCBjYXVzZWQgYSBzZW1pLQogICAgaW5maW5pdGUgbG9vcCBmb3Igc21hbGwgcGFja2V0cywgYmVjYXVzZSBpbiAiaTxsZW4tOCIsICJpIiB3YXMgc2lnbmVkLAogICAgYnV0ICJsZW4iIHdhcyB1bnNpZ25lZCwgYW5kICJsZW4tOCIgYmVjYW1lIGEgaHVnZSBudW1iZXIgZm9yIHNtYWxsCiAgICB2YWx1ZXMgb2YgImxlbiIuCgogICAgVGhpcyBpcyBhIHdvcmthcm91bmQgd2hpY2ggcmVwbGFjZXMgYnJva2VuIGNvbW1pdCA4ZjFiYzI4NC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDY5NmRkMTMwN2NkOGU3M2ExMGU5YmIzYzUxNzMxYmZkNmY4MzdiZWUKQXV0aG9yOiBIYW5zLUNocmlzdGlhbiBFZ3R2ZWR0IDxoY2VndHZlZHRAYXRtZWwuY29tPgpEYXRlOglUaHUgQXVnIDMwIDE1OjAzOjA1IDIwMDcgKzAyMDAKCiAgICBSZWR1Y2UgQk9PVERFTEFZIHZhcmlhYmxlIHRvIDEgc2Vjb25kIGJ5IGRlZmF1bHQgZm9yIFNUSzEwMDIKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYW5zLUNocmlzdGlhbiBFZ3R2ZWR0IDxoY2VndHZlZHRAYXRtZWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgYzg4YjZlMWNiZjlhOGFlMmEzNGZiNjAyZjc4YTFiZjRlNjY5MmI2YQpBdXRob3I6IEhhbnMtQ2hyaXN0aWFuIEVndHZlZHQgPGhjZWd0dmVkdEBhdG1lbC5jb20+CkRhdGU6CVRodSBBdWcgMzAgMTU6MDM6MDQgMjAwNyArMDIwMAoKICAgIFJlbW92ZSBkb3VibGUgcXVvdGF0aW9uIG1hcmtzIGFyb3VuZCBNQUMgYWRkcmVzcyBmb3IgU1RLMTAwMgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhbnMtQ2hyaXN0aWFuIEVndHZlZHQgPGhjZWd0dmVkdEBhdG1lbC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBmZjEzYWM4YzdiYmViYjIzOGUzMzk1OTJkZTc2NWM1NDZkYmExMDczCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVGh1IEF1ZyAzMCAxNDo0MjoxNSAyMDA3ICswMjAwCgogICAgQmFja291dCBjb21taXQgOGYxYmMyODQgYXMgaXQgY2F1c2VzIFRGVFAgdG8gZmFpbC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDE5MDBmYmYyNTVhY2JhOGI5NGZiNDQyYTE2NDA4ZWE4NWExZDQ2YTYKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDMwIDAyOjI2OjE3IDIwMDcgLTA1MDAKCiAgICBSZXZlcnQgIkZpeCBNUEM4NTQ0RFMgUENJZTMgc2NzaS4iCgogICAgVGhpcyByZXZlcnRzIGNvbW1pdCA5NDY4ZTY4MC4KICAgIENvbW1pdCAxNmUyM2MzZjVkYSByZW1vdmluZyBhbGxvY2F0aW9uIG9mIFBDU1JCQVIgaXMgc3VmZmljaWVudC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhmMWJjMjg0MDhkZWQyMTM0MThkOWJjMDc4MGM3ZDhmYjhhMDM3NzQKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVdlZCBBdWcgMjkgMTg6MjY6MjQgMjAwNyAtMDYwMAoKICAgIHRmdHA6IGRvbid0IGltcGxpY2l0eSB0cnVzdCB0aGUgZm9ybWF0IG9mIHJlY2V2aWVkIHBhY2tldHMKCiAgICBUaGUgVEZUUCBPQUNLIGNvZGUgdHJ1c3RzIHRoYXQgdGhlIGluY29taW5nIHBhY2tldCBpcyBmb3JtYXRlZCBhcwogICAgQVNDSUkgdGV4dCBhbmQgY2FuIGJlIHByb2Nlc3NlZCBieSBzdHJpbmcgZnVuY3Rpb25zLiBJdCBhbHNvIGhhcyBhCiAgICBsb29wIGxpbWl0IG92ZXJmbG93IGJ1ZyB3aGVyZSBpZiB0aGUgcGFja2V0IGxlbmd0aCBpcyBsZXNzIHRoYW4gOCwgaXQKICAgIGVuZHMgdXAgbG9vcGluZyBvdmVyICphbGwqIG9mIG1lbW9yeSB0byBmaW5kIHRoZSAnYmxrc2l6ZScgc3RyaW5nLgoKICAgIFRoaXMgcGF0Y2ggc29sdmVzIHRoZSBwcm9ibGVtIGJ5IGZvcmNpbmcgdGhlIHBhY2tldCB0byBiZSBudWxsCiAgICB0ZXJtaW5hdGVkIGFuZCB1c2luZyBzdHJzdHIoKSB0byBzZWFyY2ggZm9yIHRoZSBzdWIgc3RyaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAwNDYyNTc2NGNjOTNjZThhNjE2MjVhYzE5ZDdmZTJhMmNlZWU4MTQzCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgQXVnIDI5IDE2OjMxOjE4IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IENoYW5nZSBsd21vbjUgZGVmYXVsdCBlbnZpcm9ubWVudCB0byBzdXBwb3J0IExpbnV4IFJUQwoKICAgIFRoZSBMaW51eCBQQ0Y4NTYzIFJUQyBkcml2ZXIgZG9lc24ndCBkbyBhdXRvcHJvYmluZywgc28gd2UgbmVlZAogICAgdG8gc3VwcGx5IHRoZSBSVEMgSTJDIGFkZHJlc3MgYXMgYm9vdGxpbmUgcGFyYW1ldGVyLiBUaGlzIHBhdGNoCiAgICBhZGRzIHN1cHBvcnQgZm9yIHRoaXMgcnRjIHByb2JpbmcgcGFyYW1ldGVyIHRvIHRoZSBib290YXJnczoKCiAgICAicnRjLXBjZjg1NjMucHJvYmU9MCwweDUxIgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyNjAyYTVjNDBhZTM3YWI5NjVhNGUyNDA4NTRmZGFmZmI1MTMyOGE0CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAyOSAwOTowNjowNSAyMDA3IC0wNTAwCgogICAgc2JjODY0MTogcmVtb3ZlIHVudXNlZCBPRl9GTEFUX1RSRUVfTUFYX1NJWkUKCiAgICB0aGlzIGhhZCBzbGlwcGVkIHRocm91Z2ggdGhlIGNyYWNrcywgc2luY2UgdGhlIHNiYyBib2FyZCB3YXMgYWRkZWQKICAgIGFmdGVyIEkgd3JvdGUgdGhlIG9yaWdpbmFsIHBhdGNoIHRvIHJlbW92ZSBhbGwgdGhlc2Ugc3ltYm9scywgYW5kCiAgICBiZWZvcmUgaXQgd2FzIG1lcmdlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM1YmRlZDNjODhlNDhhZTY0OGE3NWQzNTdkYzgxYTgyNTVmYTgxZjEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXVnIDI5IDE0OjA1OjMwIDIwMDcgKzAyMDAKCiAgICBBZGQgbWlpX2luaXQoKSBwcm90b3R5cGUKCiAgICB0byBnZXQgcmlkIG9mIGEgKmxvdCogb2YgY29tcGlsZXIgd2FybmluZ3MuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyZDFmMjNhYTFlNzRlNGE4ZjhmZmE2N2YyNDZlYjk4YzUyMmRmZDdmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEF1ZyAyOSAxMzozNTowMyAyMDA3ICswMjAwCgogICAgRGlzYWJsZSBuZXR3b3JrIHN1cHBvcnQgb24gY21pX21wYzV4eCBib2FyZAoKICAgIC4uYmVjYXVzZSBpdCBjYXVzZWQgY29tcGlsZXIgZXJyb3JzIGFuZCB0aGVyZSBzZWVtcyB0byBiZSBubwogICAgYm9hcmQgbWFpbnRhaW5lciB0byB0YWtlIGNhcmUgb2YgdGhpcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDk0NjhlNjgwNGI3ZTI1YjBmNmY1MmU1M2Y0N2JjZTMxNzU0MDBhMTYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglNb24gQXVnIDIwIDA5OjQ0OjAwIDIwMDcgLTA1MDAKCiAgICBGaXggTVBDODU0NERTIFBDSWUzIHNjc2kuCgogICAgPGVkLnN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKICAgIFRoZSBwcm9ibGVtIGlzIHBjaWF1dG9fc2V0dXBfZGV2aWNlKCkgZ2V0dGluZyBjYWxsZWQgZnJvbSBmc2xfcGNpX2luaXQuYwogICAgaXMgYWxsb2NhdGluZyBtZW1vcnkgc3BhY2UgaXQgZG9lc24ndCBuZWVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8ZWQuc3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGJmNGFiYjhhNGU5OTU1NTU2YjEyMGExYWFmYTMwYzAzZTc0MDMyYQpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjEgMDk6Mzg6NTkgMjAwNyAtMDUwMAoKICAgIDg1NDhjZHMgZml4ZXMKCiAgICBSZXN0b3JlIENPTkZJR19FWFRSQV9FTlZfU0VUVElOR1MgZGVmaW5pdGlvbiB3aGljaCBjb250YWlucyB0aGUKICAgIGNvcnJlY3QgY29uc29sZWRldiBuZWVkZWQgZm9yIGxpbnV4IGJvb3QuCiAgICBTdGFuZGFyZGl6ZSBvbiBmZHR7ZmlsZSxhZGRyfSB2YXIgdG8gaG9sZCBkdGIgZmlsZSBuYW1lLgoKICAgIFNldCBQQ0kgaW5ib3VuZCBtZW1vcnkgcmVnaW9uIGZyb20gQ0ZHX01FTU9SWV97QlVTLFBIWVN9LgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2ExYWM0MTlmYTBkMmQyM2RkZDA4YmQ2MWQxNjg5NmE5ZjMzYzkzMwpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMjMgMTU6MjA6NTQgMjAwNyAtMDQwMAoKICAgIEVuYWJsZSBMMiBjYWNoZSBmb3IgTVBDODU2OE1EUyBib2FyZAoKICAgIFRoZSBMMiBjYWNoZSBzaXplIGlzIDUxMktCIGZvciA4NTY4LCBwcmludCBvdXQgdGhlIGNvcnJlY3QgaW5mb3JtYWl0b24uCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5NGM0N2ZkYWYxNGNiMjlmYTNmYjRkNGRhMmVmZGQ5NmM4MDNiNDZiCkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAyMiAxNzo1NDo0OSAyMDA3ICswODAwCgogICAgUmVtb3ZlIHRoZSBiaW9zIGVtdWxhdG9yIGJpbmFyeSBmaWxlcyBmcm9tIE1BSSBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzYwOGQ3NWY5Yzg3YzllYjViM2E0MzIxOWQwNTA2ZDNlOTc5YTEzZgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjEgMTc6MDA6MTcgMjAwNyAtMDUwMAoKICAgIHN1cHBvcnQgYm9hcmQgdmVuZG9yLWNvbW1vbiBtYWtlZmlsZXMKCiAgICBpZiBhIGJvYXJkLyQoVkVORE9SKS9jb21tb24vTWFrZWZpbGUgZXhpc3RzLCBidWlsZCBpdC4KCiAgICBhbHNvIGFkZCB0aGUgZmlyc3Qgc3VjaCBjYXNlLCBib2FyZC9mcmVlc2NhbGUvY29tbW9uL01ha2VmaWxlLCB0bwogICAgaGFuZGxlIGJ1aWxkaW5nIGJvYXJkLXNoYXJlZCBFRVBST00sIFBJWElTLCBhbmQgTURTLVBJQiBjb2RlLCBhcwogICAgZGljdGF0ZWQgYnkgYm9hcmQgY29uZmlndXJhdGlvbi4KCiAgICB0aHVzbHkgZ2V0IHJpZCBvZiBhbHRlcm5hdGUgYnVpbGQgZGlyIGVycm9ycyBzdWNoIGFzOgoKICAgIEZBVEFMOiBjYW4ndCBjcmVhdGUgL3dvcmsvd2QvdG1wL3UtYm9vdC1wcGMvYm9hcmQvZnJlZXNjYWxlL21wYzgzNjBlbWRzLy4uL2NvbW1vbi9wcS1tZHMtcGliLm86IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKCiAgICBieSBwdXR0aW5nIHRoZSBjb21tb24vIG1rZGlyIGNvbW1hbmQgaW4gaXRzIHByb3BlciBwbGFjZSAodGhlIGNvbW1vbgogICAgTWFrZWZpbGUpLiBDb21tb24gYml0cyBmcm9tIGV4aXN0aW5nIGluZGl2aWR1YWwgYm9hcmQgTWFrZWZpbGVzIGhhdmUKICAgIGJlZW4gcmVtb3ZlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVmOGYyMDc1MjcxMmRjMWNkYmQ4NmY0N2UzYmQ2ZTM1ZjgxYzgzZmQKQXV0aG9yOiBzdGVmYW5vIGJhYmljIDxzYmFiaWNAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAyMSAxNTo1MjozMyAyMDA3ICswMjAwCgogICAgRml4OiBURlRQIGlzIG5vdCB3b3JraW5nIG9uIGxpdHRsZSBlbmRpYW4gc3lzdGVtcwoKICAgIFRGVFAgZG9lcyBub3Qgd29yayBhbnltb3JlIGFmdGVyIG11bHRpY2FzdCB0ZnRwCiAgICBwYXRjaCB3YXMgYXBwbGllZCBvbiBsaXR0bGUgZW5kaWFuIHN5c3RlbXMuCiAgICBUaGlzIHBhdGNoIGZpeCBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIEJhYmljIDxzYmFiaWNAZGVueC5kZT4KCmNvbW1pdCA1ZjQ3MDk0ODU3MDUyNmU5MTg2ZjA1M2EzMDAzZGE3NzE5NjA0ZTkwCkF1dGhvcjogc3RlZmFubyBiYWJpYyA8c2JhYmljQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMjEgMTU6NTA6MzMgMjAwNyArMDIwMAoKICAgIEZpeCBNQUMgYWRkcmVzcyBzZXR0aW5nIGluIERNOTAwMCBkcml2ZXIuCgogICAgVGhlIGxvZ2ljIHRvIGNoZWNrIGlmIHRoZXJlIGlzIGEgY29ycmVjdCBNQUMgYWRkcmVzcyBpbiB0aGUgRE05MDAwCiAgICBFRVBST00sIGFkZGVkIGluIHRoZSBsYXN0IHBhdGNoLCBpcyB3cm9uZy4gTm93IHRoZSBNQUMgYWRkcmVzcyBpcwogICAgYWx3YXlzIHRha2VuIGZyb20gdGhlIGVudmlyb25tZW50LCBldmVuIGlmIGEgc3VpdGFibGUgTUFDIGlzIHByZXNlbnQKICAgIGluIHRoZSBFRVBST00uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFubyBCYWJpYyA8c2JhYmljQGRlbnguZGU+Cgpjb21taXQgNGE4NTI3ZWYwODZlYzdjODlmNDA2NzRlZjAyNGFlNmY5ODhhNjE0YQpBdXRob3I6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgpEYXRlOglUdWUgQXVnIDIxIDEyOjQwOjM0IDIwMDcgKzAyMDAKCiAgICBNUEM1eHh4OiBmaXggc29tZSBjb21waWxlciB3YXJuaW5ncyBpbiBVU0IgY29kZQoKICAgIEZpeCB0aGUgZm9sbG93aW5nIHdhcm5pbmdzOgogICAgLSB1c2IuYzp4eDogd2FybmluZzogZnVuY3Rpb24gZGVjbGFyYXRpb24gaXNuJ3QgYSBwcm90b3R5cGUKICAgIC0gdXNiX29oY2kuYzp4eHg6IHdhcm5pbmc6IHBhc3NpbmcgYXJndW1lbnQgMSBvZiAnX19mc3dhYjMyJyBtYWtlcyBpbnRlZ2VyCiAgICAgIGZyb20gcG9pbnRlciB3aWh0b3V0IGEgY2FzdAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmFzZUB0cXMuZGU+Cgpjb21taXQgMTZlMjNjM2Y1ZGFiNjkzN2Y1MTA5MzY1NDE2ODA4YzdmMTVjMTIyYgpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBdWcgMjAgMjM6NTU6MzMgMjAwNyAtMDUwMAoKICAgIGZzbF9wY2lfaW5pdCAtIFJlbW92ZSBzZWxmIFBDU1JCQVIgYWxsb2NhdGlvbgoKICAgIENQVSBwaHlzaWNhbCBhZGRyZXNzIHNwYWNlIHdhcyBiZWluZyB3YXN0ZWQgYnkgYWxsb2NhdGluZyBhCiAgICBQQ1NSQkFSIFBDSSBpbmJvdW5kIHJlZ2lvbiB0byBpdCdzIG1lbW9yeSBzcGFjZS4KCiAgICBBcyBhIHJ1bGUsIFBDU1JCQVIgc2hvdWxkIGJlIGxlZnQgYWxvbmUgc2luY2UgaXQgZG9lcyBub3QgYWZmZWN0CiAgICB0cmFuc2FjdGlvbnMgZnJvbSBzZWxmIGFuZCBvdGhlciBtYXN0ZXJzIG1heSBoYXZlIGNoYW5nZWQgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxlZC5zd2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZTcwMGNlMDNhMjNiYjE5MjExNDliYzc3MDA4YWNlNzEwM2Q1Mjg5CkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CU1vbiBBdWcgMjAgMTM6NTY6NDcgMjAwNyArMDIwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5nIGluIGluY2x1ZGUvczNjMjQxMC5oCgogICAgVGhpcyBwYXRjaCBmaXhlcyB0aGUgInR5cGUgcXVhbGlmaWVycyBpZ25vcmVkIG9uIGZ1Y3Rpb24gcmV0dXJuIHRweWUiCiAgICB3YXJuaW5nIGZvciBpbmNsdWRlL3MzYzI0MTAuaAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hcnRpbiBLcmF1c2UgPG1hcnRpbi5rcmF1c2VAdHFzLmRlPgoKY29tbWl0IDliYjhiMjA5ZWQyMDU4YTU3NTZlY2JlYjU0NGMwNjdlNDRhNDJhZWEKQXV0aG9yOiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdvb2dsZW1haWwuY29tPgpEYXRlOglNb24gQXVnIDIwIDA3OjA5OjA1IDIwMDcgKzAyMDAKCiAgICBGaXggY29tcGlsYXRpb24gZXJyb3IgZm9yIG9tYXAyNDIwaDRfY29uZmlnLgoKICAgIG9tYXAyNDIwaDQgc3dpdGNoZWQgdG8gY2ZpLCBzbyByZW1vdmUgb2xkIChhbHJlYWR5IGRpc2FibGVkKSBmbGFzaC5jCiAgICBhbmQgZmxhc2hfcHJvYmUoKSBjYWxscyBpbiBlbnZfZmxhc2guYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEaXJrIEJlaG1lIDxkaXJrLmJlaG1lQGdtYWlsLmNvbT4KCmNvbW1pdCAzYmIzNDJmYzg1ZDc5ZGJiNmI4YzIwMzllN2NkY2RkYzgyYjhkOTBmCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEF1ZyAxMCAxNDozNDoxNCAyMDA3IC0wNTAwCgogICAgZmR0OiByZW1vdmUgdW51c2VkIE9GX0ZMQVRfVFJFRV9NQVhfU0laRSByZWZlcmVuY2VzCgogICAgYW5kIG1ha2Ugc29tZSBtaW5vciBjb3JyZWN0aW9ucyB0byB0aGUgRkRUIHBhcnQgb2YgdGhlIFJFQURNRS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZhZjJlZWIxZTk5YzJkY2M1ODRkNGM1YWI3ZmNhZTMwYTMyNWY0ZGUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXVnIDI5IDAxOjMyOjA1IDIwMDcgKzAyMDAKCiAgICBNaW5vciBjb2Rpbmcgc3R5bGUgY2xlYW51cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGE4NjE1NThjNjVmNjVmMWNmMTMwMmYzYTM1ZTlkYjc2ODZiOWUxYTMKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMjggMTc6NDA6MzMgMjAwNyArMDIwMAoKICAgIFtVQzEwMV0gRml4OiBpZiBubyBDRiBpbiB0aGUgYm9hcmQsIFUtQm9vdCByZXNldHMgc29tZXRpbWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGY5ODk4NGNiMTk0YmIzNGRiZTFkYjk0MjlkM2I1MTEzM2FmMzBkMDcKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMjggMTc6Mzk6MTQgMjAwNyArMDIwMAoKICAgIElERToJLSBtYWtlIGlkZV9pbmIgKCkgYW5kIGlkZV9vdXRiICgpICJ3ZWFrIiwgc28gYm9hcmRzIGNhbgoJICAgICAgZGVmaW5lIHRoZXJlIG93biBJL08gZnVuY3Rpb25zLgoJICAgICAgKE5lZWRlZCBmb3IgdGhlIHBjczQ0MGVwIGJvYXJkKS4KCSAgICAtIFRoZSBkZWZhdWx0IEkvTyBGdW5jdGlvbnMgYXJlIGFnYWluIDggQml0IGFjY2Vzc2VzLgoJICAgIC0gQWRkZWQgQ09ORklHX0NNRF9JREUgZm9yIHRoZSBwY3M0NDBlcCBCb2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCAyYzA1ZmQxMjU3NDQ5ODFlNWYyODI4ZDI0ZTY2Y2NjMjBhNzdkMjVkCkF1dGhvcjogU2VtaWggSGF6YXIgPHNlbWloLmhhemFyQGluZGVmaWEuY29tPgpEYXRlOglNb24gQXVnIDIwIDE5OjAwOjAxIDIwMDcgKzAzMDAKCiAgICBBVlIzMjogQ2hhbmdlIHByb3RvdHlwZSBvZiBtZW1zZXQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTZW1paCBIYXphciA8c2VtaWguaGF6YXJAaW5kZWZpYS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA5YzAyZGVmYzI5YjU3OTQ1YjYwMDcxNGNmNjFkZGZkMDJiMDJmYjE0CkF1dGhvcjogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgpEYXRlOglTYXQgQXVnIDI1IDA1OjA3OjE2IDIwMDcgKzAyMDAKCiAgICBQT1NUOiBsaW1pdCBtZW1vcnkgdGVzdCBhcmVhIHRvIG5vdCB0b3VjaCBnbG9iYWwgZGF0YSBhbnltb3JlCgogICAgQXMgZXhwZXJpZW5jZWQgb24gbHdtb241LCBvbiBzb21lIGJvYXJkcyB0aGUgUE9TVCBtZW1vcnkgdGVzdCBjYW4KICAgIGNvcnJ1cHQgdGhlIGdsb2JhbCBkYXRhIGJ1ZmZlciAoYmQpLiBUaGlzIHBhdGNoIGZpeGVzIHRoaXMgaXNzdWUKICAgIGJ5IGNoZWNraW5nIGFuZCBsaW1pdGluZyB0aGlzIGFyZWEuCgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc1ZTFhODRkNDgzZTM2YmUxMGUyMDZlNTM5YjAyOGM0ODg5ZTExNTgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBBdWcgMjQgMTU6NDE6NDIgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIFJUQyBQT1NUIHRlc3QgdG8gbHdtb241IGJvYXJkIGNvbmZpZ3VyYXRpb24KCiAgICBTaW5jZSB0aGlzIFJUQyBQT1NUIHRlc3QgaXMgdGFraW5nIHF1aXRlIGEgd2hpbGUgdG8gY29tcGxldGUKICAgIGl0J3Mgb25seSBpbml0aWF0ZWQgdXBvbiBzcGVjaWFsIGtleXByZXNzIHNhbWUgYXMgdGhlIGNvbXBsZXRlCiAgICBtZW1vcnkgUE9TVC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDdiZmE2MjAwMzdhNmQyMjEwMTU5Mzg3NTcxYmRmOTNhYTMyYzE2MgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEF1ZyAyNCAxNToxOToxMCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBDaGFuZ2UgR1BJTyBzaWduYWwgZm9yIHdhdGNoZG9nIHRyaWdnZXJpbmcgb24gbHdtb241CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGMyNWRkOGZjMjVlOWNhMzY5NWRiOTk2YTI1N2Q5YmE0ZGFiNDE0ZGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMjMgMTE6MDI6MzcgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIHN1cHBvcnQgZm9yIDJuZCBJMkMgRUVQUk9NIG9uIGx3bW9uNSBib2FyZAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgMm5kIEVFUFJPTSAoQVQyNEMxMjgpIG9uIHRoZSBsd21vbjUKICAgIGJvYXJkLiBOb3cgdGhlICJlZXByb20iIGNvbW1hbmQgY2FuIGJlIHVzZWQgdG8gcmVhZC93cml0ZSBmcm9tL3RvIHRoaXMKICAgIGRldmljZS4gQWRkaXRpb25hbGx5IGEgbmV3IGNvbW1hbmQgd2FzIGFkZGVkICJlZXByb213cCIgdG8gZW4tL2Rpc2FibGUKICAgIHRoZSB3cml0ZS1wcm90ZWN0IG9mIHRoaXMgMm5kIEVFUFJPTS4KCiAgICBUaGUgMXN0IEVFUFJPTSBpcyBub3QgYWZmZWN0ZWQgYnkgdGhpcyB3cml0ZS1wcm90ZWN0IGNvbW1hbmQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGM2NGZiMzBlNGM1OTc2MDA3ZDU2ZmMxNzg5YzdhMDY2NjA4MmI1MzYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBBdWcgMjIgMDg6NTY6MDkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogUmVtb3ZlIHVudXNlZCBvcHRpb24gQ0ZHX0lOSVRfUkFNX09DTQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzYWQ2Mzg3ODczN2E1YTJiMWU2MDgyNWJmMGE3ZDYwMWQ3YTY5NWU3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDIxIDE2OjI3OjU3IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBtYXRyaXgga2JkIHN1cHBvcnQgdG8gbHdtb241IGJvYXJkICg0NDBFUHggYmFzZWQpCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBtYXRyaXgga2V5Ym9hcmQgb24gdGhlIGx3bW9uNSBib2FyZC4KICAgIFNpbmNlIHRoZSBpbXBsZW1lbnRhdGlvbiBpbiB0aGUgZHNQQ0kgaXMga2luZCBvZiBjb21wYXRpYmxlIHdpdGggdGhlCiAgICAib2xkIiBsd21vbiBib2FyZCwgbW9zdCBvZiB0aGUgY29kZSBpcyBjb3BpZWQgZnJvbSB0aGUgbHdtb24KICAgIGJvYXJkIGRpcmVjdG9yeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgM2U2NmMwNzgwMDM2MDdhN2QxZDIxNGMxNWE1ZjI2MmJjMWI0MDMyZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBdWcgMTkgMTA6Mjc6MzQgMjAwNyArMDIwMAoKICAgIEZpeCBzb21lIGJ1aWxkIGVycm9ycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDA1Njc1NzM1ZWY3N2RjMjNiNWUwZWI3ODJiYWQxZmY0NzdiNTVlODYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgQXVnIDE4IDIyOjAwOjM4IDIwMDcgKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HLgoKY29tbWl0IDc5ZjI0MGY3ZWNjMDUwNmI0M2FjNTBkMWVhNDA1ZmY2NTQwZDRkNTcKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDE2IDIyOjUyOjM5IDIwMDcgLTA1MDAKCiAgICBsaWJfcHBjOiBtYWtlIGJvYXJkX2FkZF9yYW1faW5mbyB3ZWFrCgogICAgcGxhdGZvcm1zIHdpc2hpbmcgdG8gZGlzcGxheSBSQU0gZGlhZ25vc3RpY3MgaW4gYWRkaXRpb24gdG8gc2l6ZSwKICAgIGNhbiBkbyBzbywgb24gb25lIGxpbmUsIGluIHRoZWlyIG93biBib2FyZF9hZGRfcmFtX2luZm8oKQogICAgaW1wbGVtZW50YXRpb24uCgogICAgdGhpcyBjb25zZXF1ZW50bHkgZWxpbWluYXRlcyBDT05GSUdfQUREX1JBTV9JTkZPLgoKICAgIFRoYW5rcyB0byBTdGVmYW4gZm9yIHRoZSBoaW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODE1YjViZDViMTg1Njk5MTdjM2UwNGI5NzU3NTExZTZlZDIzYjlmNgpBdXRob3I6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KRGF0ZToJRnJpIEF1ZyAxNyAxMjo0Mzo0NCAyMDA3ICswOTAwCgogICAgUENJX1JFQURfVklBX0RXT1JEX09QOiBGaXggKnZhbCB1bmluaXRpYWxpemVkIGJ1ZwoKICAgIFRoaXMgcGF0Y2ggaGFzIGJlZW4gc2VudCBvbjoKICAgIC0gNiBKdW4gMjAwNwoKICAgIE1hbnkgdXNlcnMgb2YgUENJIGNvbmZpZyByZWFkIHJvdXRpbmVzIHRlbmQgdG8gaWdub3JlIHRoZSBmdW5jdGlvbgogICAgcmV0IHZhbHVlLCBhbmQgYXJlIG9ubHkgY29uY2VybmVkIGFib3V0IHRoZSBjb250ZW50cyBvZiAqdmFsLiBCYXNlZAogICAgb24gdGhpcywgcGNpX2hvc2VfcmVhZF9jb25maWdfe2J5dGUsd29yZH1fdmlhX2R3b3JkIHNob3VsZCBpbml0aWFsaXplCiAgICB0aGUgKnZhbCBvbiBkd29yZCByZWFkIGVycm9yLgoKICAgIFdpdGhvdXQgdGhpcyBmaXgsIGZvciBleGFtcGxlLCB3ZSdsbCBnbyBvbiBzY2FubmluZyBidXMgd2l0aCB2ZW5kb3Igb3IKICAgIGhlYWRlcl90eXBlIHVuaW5pdGlhbGl6ZWQuIFRoaXMgYnJpbmdzIG1hbnkgdW5uZWNlc3NhcnkgY29uZmlnIHRyaWFscy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTaGlueWEgS3VyaWJheWFzaGkgPHNoaW55YS5rdXJpYmF5YXNoaUBuZWNlbC5jb20+Cgpjb21taXQgMjY2NjdiN2ZhMDVhOGJmMmZjNjVmYjlmMzIzMGIwMmIxYTEwYzM2NwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IEF1ZyAxOCAxNDozNzo1MiAyMDA3ICswMjAwCgogICAgQ29sZEZpcmU6IEZpeCBzb21lIHJlbWFpbmluZyBwcm9ibGVtcyB3aXRoIENGR19DTURfCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDgyODBmNmExYzQzMjQ3NjE2YjY4MjI0Njc1MTg4ZTVjY2QxMjQ2NTAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBBdWcgMTggMTQ6MzM6MDIgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDRhNDQyZDMxODZiMzE4OTNiNGY3N2M2ZTgyZjYzYzQ1MTdhNTIyNGIKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMTYgMTk6MjM6NTAgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBBZGQgTTUyMzVFVkIgUGxhdGZvcm0gZm9yIE1DRjUyM3gKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGNjMWNkNTk0MTgyN2EwNGNmNWM1MWEwN2ZjYzQyZTg5NDU4OTRhYQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBdWcgMTcgMDk6MzA6MDAgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IGZpeCB0eXBvIGluIEREUjIgcHJvZ3JhbW1pbmcKCiAgICBpbnRyb2R1Y2VkIGluIHRoZSBpbXBsZW1lbnQgYm9hcmRfYWRkX3JhbV9pbmZvIHBhdGNoIGFzIEkgd2FzIGNsZWFuaW5nIG91dCB0aGUKICAgIG1hZ2ljIG51bWJlcnMuICBzb3JyeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU1OGZlOTU3ODRkMjUxNGZjOWMyMTAyOGRjNTlmMmIzMTlhMzVkODAKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDE2IDIyOjUzOjA5IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBtb3ZlIGZyZWVzY2FsZSBib2FyZHMgdG8gYm9hcmRzL2ZyZWVzY2FsZQoKICAgIGluY2x1ZGVzIGJ1aWxkIGZpeGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWFhNGFkOGQ4ZTdlOTQ2ODIxOTk5MGM3ODc1ZDVmZGM5ZTk2MmY0NwpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMTYgMjI6NTI6NTkgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IHN1cHByZXNzIHVudXNlZCB2YXJpYWJsZSAndmFsOCcgd2FybmluZwoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmJlYTQ2Zjc2Zjc2N2I5MTkwNzBiNDgyOWJmMzRjODZiZDIyMzI0OApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMTYgMjI6NTI6NDggMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IGltcGxlbWVudCBib2FyZF9hZGRfcmFtX2luZm8KCiAgICBhZGQgYm9hcmRfYWRkX3JhbV9pbmZvLCB0byBtYWtlIG1lbW9yeSBkaWFnbm9zdGljIG91dHB1dCBtb3JlCiAgICBjb25zaXN0ZW50LiB1LWJvb3QgYmFubmVyIG91dHB1dCBub3cgbG9va3MgbGlrZToKCiAgICBEUkFNOiAgMjU2IE1CIChERFIxLCA2NC1iaXQsIEVDQyBvbikKCiAgICBhbmQgZm9yIGJvYXJkcyB3aXRoIFNEUkFNIG9uIHRoZSBsb2NhbCBidXMsIGEgbGluZSBzdWNoIGFzIHRoaXMgaXMKICAgIGFkZGVkOgoKICAgIFNEUkFNOiA2NCBNQiAobG9jYWwgYnVzKQoKICAgIGFsc28gcmVwbGFjZWQgc29tZSBtYWdpYyBudW1iZXJzIHdpdGggdGhlaXIgZXF1aXZhbGVudCBkZWZpbmUgbmFtZXMuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxNDc3ODU4NWQxMzg5ZDg2ZDU4NDZlZmVjMjllNWZjZTg5MjY4MGNlCkF1dGhvcjogVG9ueSBMaSA8dG9ueS5saUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXVnIDE3IDEwOjM1OjU5IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBTcGxpdCBQSUIgaW5pdCBjb2RlIGZyb20gcGNpLmMgYW5kIGFkZCBRb2MzIEFUTSBjYXJkIHN1cHBvcnQKCiAgICBUaGUgcGF0Y2ggc3BsaXQgdGhlIFBJQiBpbml0IGNvZGUgZnJvbSBwY2kuYyB0byBhIHNpbmdsZSBmaWxlIGJvYXJkL2ZyZWVzY2FsZS9jb21tb24vcHEtbWRzLXBpYi5jCiAgICBBbmQgYWRkIFFvYzMgQVRNIGNhcmQgc3VwcG9ydCBmb3IgTVBDODM2MEVNRFMgYW5kIE1QQzgzMlhFTURTIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnkgVG9ueSBMaSA8dG9ueS5saUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhhZTE1OGNkODdhNGEyNTcyMmIyNzgzNTI2MWI2ZmYwZmEyYWE2YTcKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMTYgMTU6MDU6MTEgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBBZGQgTTU0NDU1RVZCIGZvciBNQ0Y1NDQ1eAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhMTQzNmE4NDI2NTRhOGQzOTI3ZDA4MmE4YWU5ZWUwYTEwZGE2MmQ3CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDE2IDEzOjIwOjUwIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogQWRkIE01MjUzRVZCRSBwbGF0Zm9ybSBmb3IgTUNGNTJ4MgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhNjA1YWFjZDgzMjQwOTQxOTk0MDI4MTZjYzZkOTEyNGFiYTU3YjhkCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDE2IDA1OjA0OjMxIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogQWRkIE01MjQ5RVZCIHBsYXRmb3JtIGZvciBNQ0Y1MngyCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGYyOGUxYmQ5ZGFhNmRlNWViMzNhZTQ4MjJiZGE2YjAwOGNjYjRlOWUKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMjA6MzI6MDYgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBVcGRhdGUgRnJlZXNjYWxlIE1DRjUyeDIgcGxhdGZvcm1zCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg3MDQ3MGRiZjZmNGJiOTg2NGUwZDk3YWVlZGJjMTdjMTY3YzZkMWMKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTk6NTU6MTAgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBVcGRhdGUgRUIrTUNGLUVWMTIzIHBsYXRmb3JtCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFhOTNkODU5ZDliMWZjZDhlZWE1MmQ1MWIwNmU4NmMzOGY3MjExMWIKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTk6NDY6MzggMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiB1cGRhdGUgVEFTUkVHIHBsYXRmb3JtIGZvciBNQ0Y1MngyCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE5NTA1NTEwYmY1NmE5YjU1NTgyNDhkZDhiNzNlYzlkOWExNTU2YTIKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTk6NDU6NTEgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiB1cGRhdGUgcjUyMDAgcGxhdGZvcm0gZm9yIE1DRjUyeDIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmNmZDNjN2JjODEzZmIzMTdhYjdjMDc4MWYwZDE4NzRiMWMwODc3YwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxOTo0MzoyMCAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IGlkbXIgcGxhdGZvcm0gTUNGNTJ4MiB1cGRhdGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjcwNjQyNGQwYmI4NTFmYjUyYWYwMGNkMWMzMzAxZTkxZWU3ZjJiMApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxOTo0MTowNiAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IGNvYnJhNTI3MiBwbGF0Zm9ybSBmb3IgTUNGNTJ4MiB1cGRhdGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTYxMTU2NjViNGE2NGMxMGMwMTQ0MGM1Nzc0OWIyNjVlMDkwOGZhNApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxOTozODoxNSAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IE1DRjUyeDIgSGVhZGVyIGZpbGVzIHVwZGF0ZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4M2VjMjBiYzQzODBlZWJkZGZkZTQ1ZGE2ZTNhNjlhOTJkNGRiMjFkCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDE5OjIxOjIxIDIwMDcgLTA1MDAKCiAgICBDb2xkRmlyZTogTUNGNTJ4MiB1cGRhdGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjUyZTc4MzA0ZGNjMGFjNDU5YzBlYTFmYTViZTI3NWM3ZDE2NDJjZgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxODo0NjoxMSAyMDA3IC0wNTAwCgogICAgQ29sZEZpcmU6IE1DRjUzMjkgdXBkYXRlIGNhY2hlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDcxNzE5NzdmYjhmZDc3Y2ZiNjY3Njk1M2ZhOWEwNTc4OWM0NTA1MTMKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTU6NDA6MjAgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBNQ0Y1MzI5IGhlYWRlciBmaWxlIGNsZWFuIHVwCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFiNzdiYzU0N2JhNTYxYzI1ZWEzNDQ1N2VkMTdhYTBiMmY3YzI3MjMKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTU6Mzk6MTcgMjAwNyAtMDUwMAoKICAgIENvbGRGaXJlOiBNQ0Y1MzI5IFVwZGF0ZSBhbmQgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxMDMyN2RjNTU0MWY5NDdjMGNmN2UzMWZlZjg2YzQ3MDYxNjk2MDdhCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDE2IDE2OjM1OjAyIDIwMDcgLTA1MDAKCiAgICBBZGQgQ09ORklHX0hBU19FVEgwIHRvIGFsbCBib2FyZHMgd2l0aCBUU0VDCgogICAgVGhlIDg1eHggY29kZSBub3cgcmVsaWVzIG9uIENPTkZJR19IQVNfRVRIMCB0byBkZXRlcm1pbmUgd2hldGhlcgogICAgdG8gdXBkYXRlIFRTRUMxJ3MgZGV2aWNlLXRyZWUgbm9kZSwgc28gd2UgbmVlZCB0byBhZGQgaXQKICAgIHRvIGFsbCB0aGUgYm9hcmRzIHdpdGggVFNFQ3MuICBEbyB0aGlzIGZvciA4M3h4IGFuZCA4Nnh4LCB0b28sCiAgICBzaW5jZSB0aGV5IHdpbGwgZXZlbnR1YWxseSBkbyBzb21ldGhpbmcgc2ltaWxhci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDY0ZWU5MDhhMWI1MjVlNWJiMmI0Y2JlYjVjNDQ5YWQ2YTQ2OTY2NgpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBBdWcgMTYgMTU6MDU6MDQgMjAwNyAtMDUwMAoKICAgIFVwZGF0ZSBNUEM4NTQ0IERTIFBDSSBtZW1vcnkgbWFwCgogICAgVGhlIFBDSWUgYnVzIHRoYXQgdGhlIFVMSSBNMTU3NSBpcyBjb25uZWN0ZWQgdG8gaGFzIG5vIHBvc3NpYmxlIHdheSBvZgogICAgbmVlZGluZyBtb3JlIHRoYW4gdGhlIGZpeGVkIGFtb3VudCBvZiBJTyAmIE1lbW9yeSBzcGFjZSBuZWVkZWQgYnkgdGhlIFVMSS4KCiAgICBTbyBtYWtlIGl0IHVzZSBmYXIgbGVzcyBJTyAmIG1lbW9yeSBzcGFjZSBhbmQgaGF2ZSBpdCB1c2UgdGhlIHNoYXJlZCBMQVcuICBUaGlzCiAgICBmcmVlJ3MgdXAgYSBMQVcgZm9yIFBDSWUxIElPIHNwYWNlLiAgQWxzbyByZWR1Y2UgdGhlIGFtb3VudCBvZiBJTyBzcGFjZSBuZWVkZWQKICAgIGJ5IGVhY2ggYnVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgZWE1ODc3ZTMxZWQ2M2FkZTk0OGZkMTI5Mzg5NWVjMjNmZTAxNDcyZQpBdXRob3I6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+CkRhdGU6CVRodSBBdWcgMTYgMTE6MDE6MjEgMjAwNyAtMDUwMAoKICAgIEZpeCB1cCBzb21lIGZkdCBpc3N1ZXMgb24gODU0NERTCgogICAgSXQgbG9va3MgbGlrZSB3ZSBoYWQgYSBtZXJnZSBpc3N1ZSB0aGF0IGR1cGxpY2F0ZWQgYSBiaXQgb2YgY29kZQogICAgaW4gZnRfYm9hcmRfc2V0dXAuCUFsc28sIHdlIG5lZWQgdG8gc2V0IENPTkZJR19IQVNfRVRIMCB0byBnZXQKICAgIHRoZSBNQUMgYWRkcmVzcyBwcm9wZXJseSBzZXQgaW4gdGhlIGRldmljZSB0cmVlIG9uIGJvb3QgZm9yIFRTRUMxCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAwN2JjMjA1NjBjYjlkM2QxODZjY2EyNjhjMDVjODI3NjJlOGM1NWFkCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJVGh1IEF1ZyAxNiAxNToxNjowMyAyMDA3ICswMjAwCgogICAgUFBDNHh4OkhDVTQvNSBjbGVhbnVwCgogICAgTWlub3IgY2xlYW51cHMgdG8gY29uZmlybSB0byB0aGUgdS1ib290IGNvZGluZyBzdHlsZS4KICAgIFNvbWUgZ2VybWFuIGV4cHJlc3Npb25zIC0+IGVuZ2xpc2guCiAgICBIQ1U1IGVuZm9yY2VzIGEgdW5pcXVlIElQIGFkcmVzcyBmb3IgYSBnaXZlbiBzbG90IGluIHRoZSByYWNrLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgMWU2YjA3YzY0OTY3YzFlYjJjZDg0ZmFhNGMzMmJmMmE3NjliYzhlYgpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+CkRhdGU6CVRodSBBdWcgMTYgMTU6MTY6MDIgMjAwNyArMDIwMAoKICAgIFBQQzR4eDpIQ1U0LzUgY2xlYW51cCBlY2Mvc2RyYW0gaW5pdAoKICAgIE1ha2UgZWNjIGluaXRpYWxpc2F0aW9uIHJvYnVzdCwgYXMgRERSMi1FQ0MgZXJyb3JzIG1heSBiZSBnZW5lcmF0ZWQKICAgIHdoaWxlIHplcm9pbmcgdGhlIFJBTS4KCiAgICBSZXR1cm4gMTYgYnl0ZXMgKGEgY2FjaGVsaW5lKSBsZXNzIHRoYW4gdGhlIGF2YWlsYWJsZSBtZW1vcnksIGFzIHRoZQogICAgYm9hcmQgYW5kL29yIFBQQzQ0MEVQeCBtaWdodCBoYXZlIHByb2JsZW1zIGFjY2Vzc2luZyB0aGUgbGFzdCBieXRlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IGQzNWI1MDhhNTU1MDg1MzViNmU4NDQ1YjcxODU4NWQyN2RmNzMzZDMKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDIyOjI5OjU2IDIwMDcgLTA1MDAKCiAgICBmZHQ6IHN1cHByZXNzIHVudXNlZCB2YXJpYWJsZSAnYmQnIHdhcm5pbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgyYmQ5ZWU3NzQ5MDU4OGQ0ZGE3ODVkNzU4MjljYTYzZDAxNzZiYWYKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMjA6MDY6NTAgMjAwNyAtMDUwMAoKICAgIEZpeCB3YXJuaW5ncyBmcm9tIG9mX2RhdGEgY29weSBmaXgKCiAgICBGb3Jnb3QgdG8gY2FzdCBvZl9mbGF0X3RyZWUgdG8gdWxvbmcuCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc2MTNhZmRhNzdkNWVlYzBmNDdkMzAzMDI1YjBjNjYxYjcwZTRjNzMKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMjA6MDM6NDQgMjAwNyAtMDUwMAoKICAgIERvbid0IHdhaXQgZm9yIGRpc2Nvbm5lY3RlZCBUU0VDcwoKICAgIFRoZSBUU0VDIGRyaXZlcidzIFBIWSBjb2RlIHdhaXRzIGEgbG9uZyB0aW1lIGZvciBhdXRvbmVnb3RpYXRpb24gdG8KICAgIGNvbXBsZXRlLCBldmVuIGlmIHRoZSBsaW5rIGlzIGRvd24uICBUaGUgUEhZIGtub3dzIHRoZSBsaW5rIGlzCiAgICBkb3duIG9yIHVwIGJlZm9yZSBhdXRvbmVnb3RpYXRpb24gY29tcGxldGVzLCBzbyB3ZSBjYW4gc2hvcnQtY2lyY3VpdAogICAgdGhlIHByb2Nlc3MgaWYgdGhlIGxpbmsgaXMgZG93bi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjk2YzgzZDRhZTQ3NWE3MGVmMjYzNWNkMGU3NDgxNzRjNDRjODYwMQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAyMDowMzozNCAyMDA3IC0wNTAwCgogICAgRml4IG51bWVyb3VzIGJ1Z3MgaW4gdGhlIDg1NjggVUVDIHN1cHBvcnQKCiAgICBBY3R1YWxseSwgZml4ZWQgYSBsYXJnZSBidWcgaW4gdGhlIFVFQyBmb3IgKmFsbCogcGxhdGZvcm1zLgogICAgSG93IGRpZCB0aGlzIGV2ZXIgd29yaz8KCiAgICB1ZWNfaW5pdCgpIGRpZCBub3QgZm9sbG93IHRoZSBzcGVjIGZvciBldGhfaW5pdCgpLCBhbmQgcmV0dXJuZWQKICAgIDAgb24gc3VjY2Vzcy4gIFN3aXRjaCBpdCB0byByZXR1cm4gdGhlIGxpbmsgbGlrZSB0c2VjX2luaXQoKQogICAgKGFuZCAwIG9uIGVycm9yKQoKICAgIFRoZSBpbW1hcCBmb3IgdGhlIDg1Njggd2FzIGRlZmluZWQgYmFzZWQgb24gTVBDODU2OCwgcmF0aGVyIHRoYW4KICAgIENPTkZJR19NUEM4NTY4CgogICAgQ09ORklHX1FFIHdhcyBvZmYKCiAgICBDT05GSUdfRVRIUFJJTUUgd2FzIHNldCB0byAiRnJlZXNjYWxlIEdFVEgiLiAgTm93IGlzICJGU0wgVUVDMCIKCiAgICBGaXhlZCBhIGNvbW1lbnQgYWJvdXQgdGhlIHJhbmdlcyBmb3IgQ09ORklHX0VUSFBSSU1FIGlmIFRTRUNfRU5FVCBpcwogICAgZW5hYmxlZAoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzYTc5MDEzZTJhZGRhNTMzMzJkZmQwYjUxMTA2NmE4MDVlOTI5YTlkCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDIwOjAzOjI1IDIwMDcgLTA1MDAKCiAgICBEZWZpbmUgdHNlYyBmbGFnIHZhbHVlcyBpbiBjb25maWcgZmlsZXMKCiAgICBUaGUgdHNlY19pbmZvIHN0cnVjdHVyZSBhbmQgYXJyYXkgaGFzIGEgImZsYWdzIiBmaWVsZCBmb3IgZWFjaAogICAgZXRoZXJuZXQgY29udHJvbGxlci4gIFRoaXMgZmllbGQgaXMgdGhlIG9ubHkgcmVhc29uIHRoZXJlIGFyZQogICAgc2V0dGluZ3MuICBTd2l0Y2ggdG8gZGVmaW5pbmcgVFNFQ25fRkxBR1MgZm9yIGVhY2ggY29udHJvbGxlcgogICAgaW4gdGhlIGNvbmZpZyBoZWFkZXIsIGFuZCB3ZSBjYW4gZ3JlYXRseSBzaW1wbGlmeSB0aGUgYXJyYXksIGFuZAogICAgYWxzbyBzaW1wbGlmeSB0aGUgYWRkaXRpb24gb2YgZnV0dXJlIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZWM3MjM4MjI5NTA3ZTdmNDc1MzNhNjExZWE4YzUzMzE5ZDIzNGNmMwpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAyMDowMzoxMyAyMDA3IC0wNTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIGJ1aWxkaW5nIGFsbCBib2FyZHMgd2l0aCBhIFRTRUMKCiAgICBDaGFuZ2VzIHRvIHRoZSBUU0VDIGRyaXZlciBhZmZlY3QgYWxtb3N0IGFsbCA4M3h4LCA4NXh4LCBhbmQgODZ4eCBib2FyZHMuCiAgICBOb3cgd2UgY2FuIGRvIGEgTUFLRUFMTCB0ZXN0IG9uIGFsbCBvZiB0aGVtIQoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxMGFhZjcxNmNiMGRjNjYxNGRmNTRlZjc4YmVkNTE0NGFmZDIzZWY4CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDE3OjMwOjU2IDIwMDcgLTA1MDAKCiAgICBGaXggb2ZfZGF0YSBjb3B5aW5nIGZvciBDT05GSUdfT0ZfRkxBVF9UUkVFLXVzaW5nIGJvYXJkcwoKICAgIFRoZSBmaXgsICJGaXggd2hlcmUgdGhlICNpZmRlZiBDRkdfQk9PVE1BUFNaIGlzIHBsYWNlZCIKICAgIG5lZ2xlY3RlZCB0byAqYWxzbyogcHV0IHRoZSBjb2RlIGluc2lkZSB0aGUgc2ltaWxhciAjaWZkZWYKICAgIGZvciBDT05GSUdfT0ZfRkxBVF9UUkVFLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3OGY5ZmVmN2Y0MDYwNzhjOGJmNzE5MWU2NjVhNzNmNzk1MTU3NzQ2CkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTU6NDY6NDYgMjAwNyAtMDUwMAoKICAgIG1wYzg4NWFkczogRG9uJ3QgZGVmaW5lIENPTkZJR19CWklQMi4KCiAgICBiemlwMiByZXF1aXJlcyBhIHNpZ25pZmljYW50IGNodW5rIG9mIG1hbGxvYyBzcGFjZSwgYW5kIHRoZXJlIGlzbid0CiAgICBlbm91Z2ggcm9vbSBvbiBtcGM4ODVhZHMgKHdpdGggb25seSA4TUIgUkFNKSBmb3IgYm90aCBiemlwMidzIG1hbGxvYyBhcmVhCiAgICBhbmQgYSBkb3dubG9hZGVkIGltYWdlIGF0IDB4NDAwMDAwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDAwMjI3NWEzZWQ4YjExNDg4NWY2NzAyZDZkNTQ0ZDA3ODBkZmU2ODkKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPE1vbnN0ckBzZXpuYW0uY3o+CkRhdGU6CVRodSBBdWcgMTYgMDg6NTQ6MTAgMjAwNyArMDIwMAoKICAgIEJpb3MgZW11bGF0b3IgLSBmaXggbWljcm9ibGF6ZSB0b29sY2hhaW4gcHJvYmxlbQoKICAgIG1pY3JvYmxhemUgQ1BVIGhhdmUgcHJvYmxlbSB3aXRoIGJpb3NfZW11bGF0b3IgY29kZS4KICAgIE1pY3JvYmxhemUgdG9vbGNoYWluIGRvZXNuJ3Qgc3VwcG9ydCBQUkFHTUEgUEFDSy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+Cgpjb21taXQgYTVhMzhmNGZkN2U1MzY2ZDcwNmZmNmE5ODVmOWI2NzE1ZGRiYzk4YgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMTYgMTE6NTE6MDQgMjAwNyArMDIwMAoKICAgIE1pbm9yIENvZGluZyBTdHlsZSBmaXg7IFVwZGF0ZSBDSEFOR0VMT0cgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDhmYjZlODBjMDY4NDllMzAxM2FjNWM5MzUwZDhlZDllNTI5Njc5OTEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMTYgMTE6MjE6NDkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogUmVtb3ZlICN3YXJuaW5nIGluIGVzZCBhdXRvX3VwZGF0ZS5jCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDJkNzgwNzRkMmU4MDZlZGMzODBjMTQ2NGViOWU1ZGYzMzVlY2U2NWUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMjIgMTc6MzI6MjggMjAwNyArMDIwMAoKICAgIHBwYzd4eDogVXBkYXRlIENQQ0k3NTAgYm9hcmQKCiAgICBUaGlzIHNtYWxsIENQQ0k3NTAgdXBkYXRlIGV4dGVuZHMgdGhlIGJvYXJkIHNwZWNpZmljIGNvbW1hbmQKICAgICJzaG93X2NvbmZpZyIgdG8gZGlzcGxheSB0aGUgTWFydmVsbCBzdHJhcHBpbmcgcmVnaXN0ZXJzIGFuZAogICAgZXh0ZW5kcyB0aGUgUENJIElERSBjb250cm9sbGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJlaW5oYXJkIEFybHQgPHJlaW5oYXJkLmFybHRAZXNkLWVsZWN0cm9uaWNzLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3OGNmZjUwZWRiYTZiMTUwOGViMTVjMmY1M2NlOTY2YWM4OTFlYjllCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglUaHUgQXVnIDE2IDEwOjQ2OjI4IDIwMDcgKzAyMDAKCiAgICBbRklYXSBDaGFuZ2VzIGZvciBiaW9zX2VtdWxhdG9yIGNvZGUgZm9yIG90aGVycyBhcmNoaXRlY3R1cmUKCmNvbW1pdCA2ZTBlMjI1M2YwMzkzNDRmOGViZDI3ODcyODVmZGJhOTBlNjcxNGU4CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglUaHUgQXVnIDE2IDEwOjQ1OjA5IDIwMDcgKzAyMDAKCiAgICBbRklYXSBSZW1vdmUgdW51c2VkIGluY2x1ZGUgZmlsZQoKY29tbWl0IDlkZTQ2OWJkOTYwY2MxODcwYmI0MGQ2NjcyZWQ0MjcyNmI4YjUwZDcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMTYgMTA6MTg6MzMgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogT25seSBlbmFibGUgUE9TVCBGUFUgdGVzdCBvbiBTZXF1b2lhIGFuZCBub3QgUmFpbmllcgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2ZGEwYzViZDRhNTNlNDBlYjRmN2ViNzJhNGMwNTFlY2FiYWQ3ODNjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgQXVnIDE2IDA5OjU0OjUxIDIwMDcgKzAyMDAKCiAgICBBZGQgbWlzc2luZyByYWluaWVyIChQUEM0NDBHUngpIHRhcmdldCB0byBNQUtFQUxMIGFuZCBNQUlOVEFJTkVScyBmaWxlcwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwMmJhNzAyMmY2MmJiNzU5MDgyOTZjNThjNjM4NjZlMWQyOTRiNjlhCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgQXVnIDE2IDA5OjUyOjI5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBTZXF1b2lhL1JhaW5pZXIgYm9vdHN0cmFwIGNvbW1hbmQKCiAgICBBcyBzdWdnZXN0ZWQgYnkgRGF2aWQgTWl0Y2hlbGwsIGhlcmUgYW4gdXBkYXRlIGZvciB0aGUgU2VxdW9pYS9SYWluaWVyCiAgICBib290c3RyYXAgY29tbWFuZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzVjYzRlNDgyMzY2OGU4NzQ1ODU0ODk5Y2ZhZWRkNDQ4OWJlYjBlZgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMjI6MzA6MzkgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IGVuYWJsZSBsaWJmZHQgYnkgZGVmYXVsdCBvbiBmcmVlc2NhbGUgYm9hcmRzCgogICAgdGhpcyBlbmFibGVzIGxpYmZkdCBjb2RlIGJ5IGRlZmF1bHQgZm9yIHRoZQogICAgZnJlZXNjYWxlIG1wYzgzMTNlcmRiLCBtcGM4MzJ4ZW1kcywgbXBjODM0OWVtZHMsCiAgICBtcGM4MzQ5aXR4IGFuZCBncCBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzZmRlOWU4YjIyY2ZiZDdhZjQ4OTIxNDc1OGY5ODM5YTIwNjU3NmNiCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAyMjozMDozMyAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogbWlncmF0ZSByZW1haW5pbmcgZnJlZXNjYWxlIGJvYXJkcyB0byBsaWJmZHQKCiAgICB0aGlzIGFkZHMgbGliZmR0IHN1cHBvcnQgY29kZSBmb3IgdGhlIGZyZWVzY2FsZQogICAgbXBjODMxM2VyZGIsIG1wYzgzMnhlbWRzLCBtcGM4MzQ5ZW1kcywgbXBjODM0OWl0eCwKICAgIGFuZCBncCBib2FyZHMuCgogICAgQm9hcmRzIHJlbWFpbiBjb21wYXRpYmxlIHdpdGggT0ZfRkxBVF9UUkVFLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmExNmUwZGZjYzQxMTliNDZhZGIxZGNlMmQ2YzhmYjNjNWQxMDhlMQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMjI6MzA6MjYgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IG1vdmUgY29tbW9uIC9tZW1vcnkgbm9kZSB1cGRhdGUgbWVjaGFuaXNtIHRvIGNwdS5jCgogICAgYWxzbyBhZGRzIGNvbW1vbiBwcm90b3R5cGVzIHRvIGluY2x1ZGUvY29tbW9uLmguCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4ZjllMGU5ZjMzOWFlZTRjZTMxYTMzOGQ1ZjI3MzU2ZWI1NDU3Zjg1CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAyMjozMDoxOSAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogcmVtYWluaW5nIDgzNjAgbGliZmR0IGZpeGVzCgogICAgUENJIGNsb2NrcyBhbmQgUUUgZnJlcXVlbmNpZXMgd2VyZW4ndCBiZWluZyB1cGRhdGVkLCBhbmQgdGhlIGNvcmUgY2xvY2sKICAgIHdhcyBiZWluZyB1cGRhdGVkIGluY29ycmVjdGx5LiAgVGhpcyBwYXRjaCBhbHNvIGFkZHMgYSAvbWVtb3J5IG5vZGUgaWYKICAgIGl0IGRvZXNuJ3QgYWxyZWFkeSBleGlzdCBwcmlvciB0byB1cGRhdGUuCgogICAgcGx1cyBzb21lIGNvc21ldGljIHRyaW1taW5nIHRvIHNpbmdsZSBsaW5lIGNvbW1lbnRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjRiMmFjNWVkOWFhZmY5OTIwZDQ4N2JmZjhhNTk2OTZjMDgzYTUyNApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMjI6MzA6MTIgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IGZpeCBVRUMyLT4xIHR5cG8gaW4gbGliZmR0IHNldHVwIGNvZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE5ZmExYzM1MzY4NDg0ZDRlZDEwZGRjZThhNzc5M2MyMTg2MmUzYTMKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE1IDIyOjMwOjA1IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBhZGQgTUFJTlRBSU5FUiBhbmQgTUFLRUFMTCBlbnRyaWVzIGZvciB0aGUgbXBjODMyM2VyZGIKCiAgICBhbmQgcmVvcmRlciB0aGUgZXhpc3RpbmcgODN4eCBtYWludGFpbmVycyBhbHBoYS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDViNGRlOTMwOWQ3YTAzYWExZGIyZTUzOTFhYjY5NjM2MzM5MWY0NjAKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVdlZCBBdWcgMTUgMjE6MTU6MDUgMjAwNyArMDIwMAoKICAgIFtGSVhdIFJlc29sdmUgcHJvYmxlbSB3aXRoIHdhcm5pbmdzCiAgICBtaWNyb2JsYXplIHRvb2xjaGFpbiBkb24ndCBzdXBwb3J0IFBSQUdNQSBQQUNLLgoKY29tbWl0IGQxZWQyOGNmMzZhYjZiMWQ0YzQ3OTgwOWRlNzI1MmJmNTNkMmYyZDQKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVdlZCBBdWcgMTUgMjE6MDU6MDcgMjAwNyArMDIwMAoKICAgIFtGSVhdIENvcnJlY3Rpb24gY29tbWFuZCBzZXR0aW5nIGZvciBNaWNyb2JsYXplIGJvYXJkcwoKY29tbWl0IDdhYTYzZDhjZDMwYWIyMGFjMmZkMWFiODZlNjA0NzFkZThiMWYxZTUKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVdlZCBBdWcgMTUgMjE6MDM6NDEgMjAwNyArMDIwMAoKICAgIFtGSVhdIENvcnJlY3Rpb24gY29tbWFuZCBkZWZpbml0aW9uCgpjb21taXQgMzBiNTJkZjllOTA2YmYwZTQ2NTkxNmMyYzZiYjUxOTJiNDM4ZTBiOApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTE6NTU6MzUgMjAwNyAtMDUwMAoKICAgIDg2eHg6IEZpeCBsaW5nZXJpbmcgQ0ZHX0NNRF8qIHJlZmVyZW5jZXMgaW4gc2JjODY0MWQuaAoKICAgIFJlbW92ZSBhIGxlZnRvdmVyIGluIG5ldC90ZnRwLmMgd2hpbGUgd2UncmUgYXQgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0Y2U5MTc3NDJiMWU0OGZhYTliZjlhOTc1NzU0NWU1NmZiNGNmZTQ0CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxMjoyMDo0MCAyMDA3IC0wNTAwCgogICAgTW92ZSB0aGUgTVBDODY0MUhQQ04gYm9hcmQgdW5kZXIgYm9hcmQvZnJlZXNjYWxlLgoKICAgIE1pbm9yIHBhdGggY29ycmVjdGlvbnMgbmVlZGVkIHRvIGVuc3VyZSBidWlsZGFiaWxpdHkuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4NjYyNTc3ZmUzNmZkYjZhNDRiNTViOTk4ZDlkYWFjNjM5MmE3MzZhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxMTo0NjoyMiAyMDA3IC0wNTAwCgogICAgODZ4eDogRml4IGxpbmdlcmluZyBDRkdfQ01EXyogcmVmZXJlbmNlcyBpbiBzYmM4NjQxZC5oCgogICAgUmVtb3ZlIGEgbGVmdG92ZXIgaW4gbmV0L3RmdHAuYyB3aGlsZSB3ZSdyZSBhdCBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDIxMGY0NjNjNzE5MTdiN2E0NDk1YzIxMDNjMjI4YjljMTc5YWU2NGQKQXV0aG9yOiBKZXJyeSBWYW4gQmFyZW4gPGd2Yi51Ym9vdEBnbWFpbC5jb20+CkRhdGU6CVdlZCBBdWcgMTUgMTE6MTM6MTUgMjAwNyAtMDQwMAoKICAgIEZpeCB3aGVyZSB0aGUgI2lmZGVmIENGR19CT09UTUFQU1ogaXMgcGxhY2VkLgoKICAgIENvbW1pdCAwNzNlMWI1MDk5ODBjZWZlNmY1M2MyZDdmYmJjZDEzNWRmMWUzOTI0ICJGaXggaW5pdHJkL2R0YgogICAgaW50ZXJhY3Rpb24iIHB1dCB0aGUgbmV3IGNvZGUgb3V0c2lkZSBvZiB0aGUgI2lmIGRlZmluZWQoQ09ORklHX09GX0xJQkZEVCkKICAgIHdoZW4gaXQgc2hvdWxkIGhhdmUgZ29uZSBpbnNpZGUgb2YgdGhlIGNvbmRpdGlvbmFsLiAgQXMgYSByZXN1bHQsIGl0CiAgICBicm9rZSBub24tTElCRkRUIGJvYXJkIGJ1aWxkcy4KCiAgICBBbHNvIGFkZGVkIGEgbWlzc2luZyAibm90LiIgdG8gdGhlIGNvbW1lbnQuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCAwZTE5MjA5NzY3MTk0YTk3Y2VjNmQ5M2RiYTllNjRkMWRhOGQ1NDhlCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KRGF0ZToJV2VkIEF1ZyAxNSAxMjoxNDoyMyAyMDA3ICswMjAwCgogICAgUFBDNHh4OkhDVTQvNS1Cb2FyZCBmaXggY29tcGlsZSB3YXJuaW5nCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCA1OTRlNzk4MzhjZTUwNzhhOTBkMGMyN2FiYjJiMmQ2MWQ1ZjhlOGE3CkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNCAxNDowNjo0NSAyMDA3IC0wNTAwCgogICAgRml4IG1hbGxvYyBzaXplIGVycm9yIGluIGFoY2lfaW5pdF9vbmUuCgogICAgVHlwaWNhbGx5IHRoaXMgY2F1c2VzIHNjc2kgaW5pdCB0byBjb3JydXB0IHRoZQogICAgZGV2bGlzdCBhbmQgYnJlYWsgdGhlIGNvbmluZm8gY29tbWFuZC4KICAgIEZpeCBhIGNvbXBpbGVyIHNpemUgd2FybmluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPGphc29uLmppbkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjM2MWFjZDY0ZmQyNTI1YzA4MWI5YjI4OGIwODA0ZWZlMjA5YzBlOQpBdXRob3I6IGtzaUBrb2k4Lm5ldCA8a3NpQGtvaTgubmV0PgpEYXRlOglUdWUgQXVnIDE0IDEwOjAyOjE2IDIwMDcgLTA3MDAKCiAgICBUSSBEYVZpbmNpIC0gZml4IHVuc3VwcG9ydGVkICVoaHggZm9ybWF0CgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2V5IEt1YnVzaHluIDxrc2lAa29pOC5uZXQ+Cgpjb21taXQgZjAxZGJiNTQyNGE4MTQ1M2M4MTE5MGRkMzBlOTQ1ODkxNDY2ZjYyMQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMTQgMTg6NDI6MzYgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwLiBVcGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMDczZTFiNTA5OTgwY2VmZTZmNTNjMmQ3ZmJiY2QxMzVkZjFlMzkyNApBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNCAxMDozMjo1OSAyMDA3IC0wNTAwCgogICAgRml4IGluaXRyZC9kdGIgaW50ZXJhY3Rpb24KCiAgICBUaGUgb3JpZ2luYWwgY29kZSB3b3VsZCB3cm9uZ2x5IHJlbG9jYXRlIHRoZSBibG9iIHRvIGJlIHJpZ2h0IGJlZm9yZQogICAgdGhlIGluaXRyZCBpZiBpdCBleGlzdGVkLiAgVGhlIGJsb2IgKm11c3QqIGJlIHdpdGhpbiBDRkdfQk9PVE1BUFNaLAogICAgaWYgaXQgaXMgZGVmaW5lZC4gIFNvIHdlIG1ha2UgdHdvIGNoYW5nZXM6CgogICAgMSkgZmxhZyB0aGUgYmxvYiBmb3IgcmVsb2NhdGlvbiB3aGVuZXZlciBpdHMgYWRkcmVzcyBpcyBhYm92ZSBCT09UTUFQU1oKCiAgICAyKSBJZiB0aGUgYmxvYiBpcyBiZWluZyByZWxvY2F0ZWQsIHJlbG9jYXRlIGl0IGJlZm9yZSBrYmQsIG5vdCBpbml0cmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTU0Yjk3MDE3Mzc2OTMwN2ExMTZiZDM0MDI4YjZkMGMyZWVhMmE0ZQpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBBdWcgMTQgMTU6NDA6MDAgMjAwNyArMDEwMAoKICAgIFN1cHBseSBzcGkgaW50ZXJmYWNlIGluIGF0NDUuYwoKY29tbWl0IDRjZTg0NmVjNTlmMzZiODVkNjY0NGE3Njk2OTBhZDNmZWI2Njc1NzUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMTQgMTU6MTI6MDEgMjAwNyArMDIwMAoKICAgIFBPU1Q6IEZpeCBtZXJnZSBwcm9ibGVtCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDQyOWQ5NTcxZjYwNjMxYWU4YTJmZTEyYjExYmU0Yzc1YjBjMmIzN2MKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMTQgMTU6MDM6MTcgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc3OWU5NzUxMTdhNzVlOTFmY2ViZTIyNmE2MzEwNGRiZmI5MjRhYjEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMTQgMTQ6NDQ6NDEgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIGluaXRpYWwgWmV1cyAoUFBDNDA1RVApIGJvYXJkIHN1cHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzVhMTcyYTVmZDYzNmMxMjQ2NzQyOWUzZjc5MTBlNTM3NzM5NzljNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxNCAxNDo0MTo1NSAyMDA3ICswMjAwCgogICAgUE9TVDogQWRkIG9wdGlvbiBmb3IgZXh0ZXJuYWwgZXRoZXJuZXQgbG9vcGJhY2sgdGVzdAoKICAgIFdoZW4gQ0ZHX1BPU1RfRVRIRVJfRVhUX0xPT1BCQUNLIGlzIGRlZmluZWQsIHRoZSBldGhlcm5ldCBQT1NUCiAgICBpcyBub3QgZG9uZSB1c2luZyBhbiBpbnRlcm5hbCBsb29wYmFjayBjb25uZWN0aW9uLCBidXQgYnkgYXNzdW1pbmcKICAgIHRoYXQgYW4gZXh0ZXJuYWwgbG9vcGJhY2sgY29ubmVjdG9yIGlzIHBsdWdnZWQgaW50byB0aGUgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGViMmI0MDEwYWU0MjYyNDUxNzI5ODg4MDRlZThkOTE5M2ZiNDEwMzgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgMTQgMTQ6Mzk6NDQgMjAwNyArMDIwMAoKICAgIFBPU1Q6IEFkZCBwcGM0MDUgc3VwcG9ydCB0byBjYWNoZSBhbmQgVUFSVCBQT1NUCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDBjNDJmMzZmMTUwNzRiZDk4MDhhN2RiZDdlZjYxMWZhZDliZjUzN2MKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUdWUgQXVnIDE0IDEwOjQ2OjMyIDIwMDcgKzAxMDAKCiAgICBSZXBsYWNlIGxvc3QgZW5kIG9mIGF0NDUuYy4KCmNvbW1pdCA2NWQ3YWRhNjQ1NTdlNzYwOTRiNGZkM2JhZDMwYTBmMThmNWZiMmIyCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNCAxMDozMDowNiAyMDA3ICswMTAwCgogICAgVXBkYXRlIE1ha2VmaWxlcyBmb3IgbWVyZ2VkIGFuZCBzcGxpdCBhdDQ1LmMuCgpjb21taXQgMzQ1NGNlY2UyZGI1N2NiOWViNzA4Nzk5NWY3ZTczMDY2YTE2M2Y3MQpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVR1ZSBBdWcgMTQgMTA6MjE6MDYgMjAwNyArMDEwMAoKICAgIERlbGV0ZSB0aGUgbWVyZ2VkIGZpbGVzLgoKY29tbWl0IGRjYmZkMmU1NjQ5Zjk3YWEwNGZiYmM2ZWEyYjAwOGFhNDQ4NmUyMjUKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUdWUgQXVnIDE0IDEwOjE0OjA1IDIwMDcgKzAxMDAKCiAgICBBZGQgdGhlIGZpbGVzLgoKY29tbWl0IGQ0ZmM2MDEyZmQwYTVjMjExYjgyNTY5MWY0NGIwNmY4MDMyYzA1NTEKQXV0aG9yOiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgpEYXRlOglUdWUgQXVnIDE0IDEwOjEwOjUyIDIwMDcgKzAxMDAKCiAgICBBZGQgTUFDSF9UWVBFIHJlY29yZHMgZm9yIHNldmVyYWwgQVQ5MSBib2FyZHMuCiAgICBNZXJnZSB0byB0d28gYXQ0NS5jIGZpbGVzIGludG8gYSBjb21tb24gZmlsZSwgc3BsaXQgdG8gYXQ0NS5jIGFuZCBzcGkuYwogICAgRml4IHNwZWxsaW5nIGVycm9yIGluIERNOTE2MSBQSFkgU3VwcG9ydC4KICAgIEluaXRpYWxpemUgYXQ5MXJtOTIwMCBib2FyZCAoYW5kIHNldCBMRUQpLgogICAgQWRkIFBJTyBjb250cm9sIGZvciBhdDkxcm05MjAwZGsgTEVEcyBhbmQgTXV4LgogICAgQ2hhbmdlIGRhdGFmbGFzaCBwYXJ0aXRpb24gYm91bmRhcmllcyB0byBiZSBjb21wYXRpYmxlIHdpdGggTGludXggMi42LgoKICAgIFNpZ25lZC1vZmYtYnk6CVBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OglVbGYgU2FtdWVsc3NvbiA8dWxmQGF0bWVsLmNvbT4KCmNvbW1pdCA0ZWYzNWU1M2M2OTM1NTZjNTRiMGMyMmQ2Zjg3M2RlODdiYWRlMjUzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIEF1ZyAxNCAwOTo1NDo0NiAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAsIHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDg1ZWI1Y2FmNmI5MDZmN2VjNWI1NDgxNGU4YzdjNzRmNTU5ODZiYjcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDE0IDA5OjQ3OjI3IDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cDsgcmVidWlsZCBDSEFOR0VMT0cKCmNvbW1pdCA3ZjNmMmJkMmRjMDhlMGIwNWUxODU2NjJjYTJlMmQyODM3NTcxMDRhCkF1dGhvcjogUmFuZHkgVmluc29uIDxydmluc29uQGxpbnV4Ym94Lihub25lKT4KRGF0ZToJVHVlIEZlYiAyNyAxOTo0MjoyMiAyMDA3IC0wNzAwCgogICAgODV4eENEUzogQWRkIG1ha2UgdGFyZ2V0cyBmb3IgbGVnYWN5IHN5c3RlbXMuCgogICAgVGhlIFBDSSBJRCBzZWxlY3QgdmFsdWVzIG9uIHRoZSBBcmNhZGlhIG1haW4gYm9hcmQgZGlmZmVyIGRlcGVuZGluZwogICAgb24gdGhlIHZlcnNpb24gb2YgdGhlIGhhcmR3YXJlLiBUaGUgc3RhbmRhcmQgY29uZmlndXJhdGlvbiBzdXBwb3J0cwogICAgUmV2IDMuMS4gVGhlIGxlZ2FjeSB0YXJnZXQgc3VwcG9ydHMgUmV2IDIueC4KCiAgICBTaWduZWQtb2ZmLWJ5IFJhbmR5IFZpbnNvbiA8cnZpbnNvbkBtdmlzdGEuY29tPgoKY29tbWl0IGU0MTA5NGM3ZTM4MTc3Yzc1NWZiZDliMTgyMDE4MDY5NjE0ZjA4MGQKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTQgMDE6NTA6MDkgMjAwNyAtMDUwMAoKICAgIDg1eHhDRFM6IEVuYWJsZSB0aGUgVklBIFBDSS10by1JU0EgYnJpZGdlLgoKICAgIEF1dGhvcjogUmFuZHkgVmluc29uIDxydmluc29uQGxpbnV4Ym94Lihub25lKT4KCiAgICBFbmFibGUgdGhlIFBDSS10by1JU0EgYnJpZGdlIGluIHRoZSBWSUEgU291dGhicmlkZ2UgbG9jYXRlZCBvbiB0aGUKICAgIEFyY2FkaWEgbWFpbiBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYW5keSBWaW5zb24gPHJ2aW5zb25AbXZpc3RhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFlvcmsgU3VuIDx5b3Jrc3VuQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGE5ZDQ2MTBkNzZlNTJjNGQyMGE4ZjNkODQzMzQzOWE3ZmNmNWI3MQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNCAwMDoxNDoyNSAyMDA3IC0wNTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIFVFQyB0byA4NTY4CgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNTllNDA5MWZmZTAxNDgzOThiOWU5ZmYxNGEwMTllYTAzOGI3NDMyCkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biAxOSAxNDoxODozNCAyMDA3IC0wNDAwCgogICAgQWRkIFBDSSBzdXBwb3J0IGZvciBNUEM4NTY4TURTIGJvYXJkCgogICAgVGhpcyBwYXRjaCBpcyBhZ2FpbnN0IHUtYm9vdC1tcGM4NXh4LmdpdCBvZiB3d3cuZGVueC5jb20KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogRWJvbnkgWmh1IDxlYm9ueS56aHVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkMTExZDYzODJjOTlmZGVhMDhjMjMxMmVlZWFlODc4Njk0NWUxODlhCkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biAxOSAxNDoxODozMiAyMDA3IC0wNDAwCgogICAgRW1waXJpY2FsbHkgc2V0IGNwbyBhbmQgY2xrX2FkanVzdCBmb3IgbXBjODV4eCBERFIyIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGlzIGFnYWluc3QgdS1ib290LW1wYzg1eHguZ2l0IG9mIHd3dy5kZW54LmNvbQoKICAgIFNldHRpbmcgY3BvIHRvIDB4OSBmb3IgZnJlcXVlbmNpZXMgaGlnaGVyIHRoYW4gMzMzTUh6IGlzIHZlcmlmaWVkIG9uCiAgICBib3RoIE1QQzg1NDhDRFMgYm9hcmQgYW5kIE1QQzg1NjhNRFMgYm9hcmQsIGVzcGVjaWFsbHkgZm9yIHN1cHBvcnRpbmcKICAgIDUzM01IeiBERFIyLgoKICAgIFNldHRpbmcgY2xrX2FkanVzdCB0byAweDYoMy80IGxhdGUgY3ljbGUpIGZvciBNUEM4NTY4TURTIGJvYXJkIGlzIGZvcgogICAgRERSMiBvbiBhbGwgY3VycmVudCBib2FyZCB2ZXJzaW9ucyBlc3BlY2lhbGx5IHZlciAxLjkyIG9yIGxhdGVyIHRvIGJyaW5nCiAgICB1cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNkYjBiZWY1OWVhYjExNTU4MDE2MThjZWY1YzQ4MWU5NzU1M2I1OTcKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgQXVnIDcgMTg6MDc6MjcgMjAwNyAtMDUwMAoKICAgIFVzZSBhbiBhYnNvbHV0ZSBhZGRyZXNzIHdoZW4ganVtcGluZyBvdXQgb2YgNGsgYm9vdCBwYWdlCgogICAgT24gZTUwMCB3aGVuIHdlIGxlYXZlIHRoZSA0ayBib290IHBhZ2Ugd2Ugc2hvdWxkIHVzZSBhbiBhYnNvbHV0ZSBhZGRyZXNzIHNpbmNlCiAgICB3ZSBkb24ndCBrbm93IHdoZXJlIHRoZSBib2FyZCBjb2RlIG1heSB3YW50IHVzIHRvIGJlIHJlYWxseSBydW5uaW5nIGF0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEt1bWFyIEdhbGEgPGdhbGFrQGtlcm5lbC5jcmFzaGluZy5vcmc+Cgpjb21taXQgMzk5ODBjNjEwYzlhNGMzODE5MDdjOWUxZDFiOWMwZTFjMGRjYTU3YQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyAxMyAxNDo0OTo1OSAyMDA3IC0wNTAwCgogICAgTVBDODV4eCBCQSBiaXRzIG5vdCBzZXQgZm9yIDMtYml0IGJhbmsgYWRkcmVzcyBESU1NCgogICAgVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gZG9lcyBub3Qgc2V0IHRoZSBudW1iZXIgb2YgYmFuayBhZGRyZXNzIGJpdHMKICAgIChCQSkgaW4gdGhlIHByb2Nlc3Nvci4gVGhlIGRlZmF1bHQgYXNzdW1lcyAyIGxvZ2ljYWwgYmFuayBiaXRzLiBUaGlzCiAgICB3b3JrcyBmaW5lIGZvciBhIERJTU0gdGhhdCB1c2VzIGRldmljZXMgd2l0aCA0IGludGVybmFsIGJhbmtzIChTUEQKICAgIGJ5dGUxNyA9IDB4NCkgYnV0IG5lZWRzIHRvIGJlIHNldCBhcHByb3ByaWF0ZWx5IGZvciBhIERJTU0gdGhhdCB1c2VzCiAgICBkZXZpY2VzIHdpdGggOCBpbnRlcm5hbCBiYW5rcyAoU1BEIGJ5dGUxNyA9IDB4OCkuCgogICAgU2lnbmVkLW9mZi1ieTogR3JlZyBEYXZpcyA8RGF2aXNHQGVtYmVkZGVkcGxhbmV0LmNvbT4KCmNvbW1pdCA2YzU0MzU5N2JiNGIxZWNmNWQ4NTg5ZjdhYmIwZjM5OTI5ZmI3ZmQxCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDEzIDE0OjM4OjA2IDIwMDcgLTA1MDAKCiAgICBGaXggbWlub3IgODV4eCB3YXJuaW5ncwoKICAgIFNvbWUgcGF0Y2hlcyBoYWQgaW5zZXJ0ZWQgd2FybmluZ3MgaW50byB0aGUgYnVpbGQ6CiAgICAqIG1wYzg1NjBhZHMgZGVjbGFyZWQgZGF0YSB3aXRob3V0IHVzaW5nIGl0CiAgICAqIGNwdV9pbml0IGRlY2xhcmVkIGVjbSBhbmQgaW1tYXAgd2l0aG91dCB1c2luZyBpdCBpbiBhbGwgQ09ORklHcwogICAgKiBNUEM4NTQ4Q0RTLmggaGFkIGl0cyBkZWZhdWx0IGZpbGVuYW1lcyBjaGFuZ2VkIHNvIHRoYXQgdGhleSBjb250YWluZWQKICAgICAgIlxtIiBpbiB0aGUgcGF0aHMuICBNYWRlIHRoZSBkZWZhdWx0cyBub3QgV2luZG93cy1zcGVjaWZpYyAob3IKICAgICAgYW55dGhpbmctc3BlY2lmaWMpCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGYyY2ZmNmIxMDRmODJiOTkzYmVmNjA4NmNlMGM5NzE1OWJiZTFhZGQKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI3IDAxOjUwOjUyIDIwMDcgLTA1MDAKCiAgICA4NTQ4Y2RzIFBDSUUgc3VwcG9ydC4KCiAgICBNYWtlIHRoZSBlYXJseSBMMSBjYWNoZSBzdGFjayByZWdpb24gZ3VhcmRlZCB0byBwcmV2ZW50IHNwZWN1bGF0aXZlCiAgICBmZXRjaGVzIG91dHNpZGUgdGhlIGxvY2tlZCByYW5nZS4KCiAgICBVc2UgX1BIWVMgZGVmaW5lcywgbm90IF9NRU0gZm9yIGNwdS1zaWRlIFBDSSBtZW1vcnkgbWFwcGVkIHJlZ2lvbnMuCiAgICBpbml0LlMgd2hpdGVzcGFjZSBjbGVhbnVwLgoKICAgIEFsbG93IFRFWFRfQkFTRSB2YWx1ZSB0byBiZSBzcGVjaWZpZWQgb24gY29tbWFuZCBsaW5lLiAgVGhpcyBhbGxvd3MgaXQKICAgIHRvIGJlIHNldCB0byAweGZmZmMwMDAwIHdoaWNoIGN1dHMgdGhlIHVib290IGJpbmFyeSBpbiBoYWxmLgoKICAgIENsZWFyIGFuZCBlbmFibGUgbGJjIGFuZCBlY20gZXJyb3JzLgoKICAgIFVwZGF0ZSBsYXN0X2J1c25vIGluIGRldmljZS10cmVlIGZvciBwY2kgYW5kIHBjaWUuCgogICAgUmVtb3ZlIGxvYWQgb2Ygb2Jzb2xldGUgY3B1L21wYzg1eHgvcGNpLjAKCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4MzdmMWJhMDVjZmIyNDhhYmE1YWI4ZTFmYjFiZmVlZmEwN2Q1OTYyCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyNyAwMTo1MDo1MSAyMDA3IC0wNTAwCgogICAgODU0NGRzIFBDSUUgc3VwcG9ydAoKICAgIFBDSTEgTEFXIG1hcHBpbmcgc2hvdWxkIHVzZSBDRkdfUENJMV9NRU1fUEhZIGFuZCBub3QgX0JBU0UgYWRkcmVzcy4KCiAgICBFbmFibGUgTEJDIGFuZCBFQ00gZXJyb3JzIGFuZCBjbGVhciBlcnJvciByZWdpc3RlcnMuCgogICAgQWRkIHRmdHBmbGFzaCBlbnYgdmFyIHRvIGdldCB1Ym9vdCBmcm9tIHRmdHAgc2VydmVyIGFuZCBmbGFzaCBpdC4KCiAgICBBZGQgcGNpL3BjaWUgY29udmVuaWVuY2UgZW52IHZhcnMgdG8gZGlzcGxheSByZWdpc3RlciBzcGFjZToKICAgICAgInJ1biBwY2llM3JlZ3MiIHRvIHNlZSBhbGwgcGNpZTMgY2NzciByZWdpc3RlcnMKICAgICAgInJ1biBwY2llM2NmZyIgdG8gc2VlIGFsbCBjZmcgcmVnaXN0ZXJzCiAgICBXaGl0ZXNwYWNlIGNsZWFudXAgYW5kIE1QQzg1NDREUy5oCgogICAgRW5hYmxlIENPTkZJR19JTlRFUlJVUFRTLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDYxYTIxZTk4MGE3YjkxODg0MjRkMDRmMWMyNjVmZGM1YzIxYzdlODUKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTQgMDE6MzQ6MjEgMjAwNyAtMDUwMAoKICAgIDg1eHggc3RhcnQuUyBjbGVhbnVwIGFuZCBleGNlcHRpb24gc3VwcG9ydAoKICAgIEZyb206IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CgogICAgU3VwcG9ydCBleHRlcm5hbCBpbnRlcnJ1cHRzIGZyb20gcGxhdGZvcm0gdG8gZWxpbWluYXRlIHN5c3RlbSBoYW5ncy4KICAgIERlZmluZSBDT05GSUdfSU5URVJSVVBUUyBib2FyZCBjb25maWd1cmUgb3B0aW9uIHRvIGVuYWJsZS4KICAgIEVuYWJsZSBlY20sIGRkciwgbGJjLCBhbmQgcGNpL3BjaWUgZXJyb3IgaW50ZXJydXB0cyBpbiBQSUMuCgogICAgUmVtb3ZlIGV4dHJhIGNwdSBpbml0aWFsaXphdGlvbiByZWR1bmRhbnQgd2l0aCBoYXJkd2FyZSBpbml0aWFsaXphdGlvbi4KICAgIFdoaXRlc3BhY2UgY2xlYW51cC4KCiAgICBEZWZpbmUgYW5kIHVzZSBfU1RBUlRfT0ZGU0VUIGNvbnNpc3RlbnQgd2l0aCBvdGhlciBwcm9jZXNzb3JzIHVzaW5nCiAgICBwcGNfYXNtLnRtcGwKCiAgICBNb3ZlIGFkZGl0aW9uYWwgY29kZSBmcm9tIC50ZXh0IHRvIGJvb3QgcGFnZSB0byBtYWtlIHJvb20gZm9yCiAgICBleGNlcHRpb24gdmVjdG9ycyBhdCBzdGFydCBvZiBpbWFnZS4KCiAgICBIYW5kbGUgTWFjaGluZSBDaGVjaywgRXh0ZXJuYWwgYW5kIENyaXRpY2FsIGV4Y2VwdGlvbnMuCgogICAgRml4IGU1MDAgbWFjaGluZSBjaGVjayBlcnJvciBkZXRlcm1pbmF0aW9uIGluIHRyYXBzLmMKCiAgICBURVhUX0JBU0UgY2FuIG5vdyBiZSAweGZmZmNfMDAwMCAtIHdoaWNoIGN1dHMgYmluYXJ5IGltYWdlIGluIGhhbGYuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2JkMzBmYzRhNjQ3NWI0MWQ2Njc5YWUzYWFmYzlmYTUwNTI2MGM0NwpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNCAwMTozMzoxOCAyMDA3IC0wNTAwCgogICAgQWRkIE1QQzg1NDREUyBSRUFETUUKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDBjN2Y5YjBkZTRlMzAwMzcwYWRmYzcwNDEyOGZhMGY3OWExNDNiNgpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMjcgMDE6NTA6NDggMjAwNyAtMDUwMAoKICAgIDg1eHggYWxsb3cgZGVidWdnZXIgdG8gY29uZmlndXJlIGRkci4KCiAgICBPbmx5IGNoZWNrIGZvciBtcGM4NTQ4IHJldiAxIHdoZW4gY29tcGlsZWQgZm9yIDg1NDguCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjkzNzJmZjM4YzViYWFiN2QwZTNhOGMxNGZlMTFmYTE5NGEzODcwNApBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMjcgMDE6NTA6NDcgMjAwNyAtMDUwMAoKICAgIG1wYzg1eHggTDIgY2FjaGUgcmVwb3J0aW5nIGFuZCBTUkFNIHJlbG9jYXRpb24gb3B0aW9uLgoKICAgIEFsbG93IGRlYnVnZ2VyIHRvIG92ZXJyaWRlIGZsYXNoIGNzMC9jczEgc2V0dGluZ3MgdG8gZW5hYmxlIGFsdGVybmF0ZQogICAgYm9vdCByZWdpb25zCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDFmMGY4ZmIxYWI5MmYwY2JhN2QzMjlkZTkwMDcwZjgyMmY4Mjk5ZgpBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMjcgMDE6NTA6NDYgMjAwNyAtMDUwMAoKICAgIGU1MDAgbmVlZHMgcHBjX2FzbS50bXAgTUNLX0VYQ0VQVElPTgoKICAgIEFsd2F5cyBkZWZpbmUgTUNLX0VYQ0VQVElPTiBtYWNybyAtIHNvIGU1MDAgY2FuIHVzZSBpdCB0b28uCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTNhNWM0MjRiZjg2NTViN2I0ZTJjMzA1YTQ0MTk2MzI1OWEyNmE4MQpBdXRob3I6IERhdmlkIFVwZGVncmFmZiA8ZGF2ZUBjcmF5LmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxMDo0MTowNyAyMDA3IC0wNTAwCgogICAgbXVsdGljYXN0IHRmdHA6IFJGQzIwOTAKCiAgICBJbXBsZW1lbnRlZCBJRVRGIFJGQzIwOTAsIE11bHRpY2FzdCBURlRQLiAgSW5pdGlhbCBpbXBsZW1lbnRhdGlvbgogICAgb24gUmVhbHRlayBSVEw4MTM5IGFuZCBGcmVlc2NhbGUgVFNFQy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBVcGRlZ3JhZmYgPGRhdmVAY3JheS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCA1ZDExMGYwYWE2OWYwNjVlZTM4NmVjMTg0MGRmZWUxZThjYzQ2YmMxCkF1dGhvcjogV2lsc29uIENhbGxhbiA8d2NhbGxhbkBzYXZhbnRhdi5jb20+CkRhdGU6CVNhdCBKdWwgMjggMTA6NTY6MTMgMjAwNyAtMDQwMAoKICAgIE5ldyBDT05GSUdfQk9PVFBfU0VSVkVSSVAgb3B0aW9uCgogICAgQWRkZWQgQ09ORklHX0JPT1RQX1NFUlZFUklQIHRvIGFsbG93IHRoZSB0ZnRwIHNlcnZlciB0byBiZSBkaWZmZXJlbnQKICAgIGZyb20gdGhlIGJvb3RwIHNlcnZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IFdpbHNvbiBDYWxsYW4gPHdjYWxsYW5Ac2F2YW50YXYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgNTBjY2E4Yjk3NmVjNzQwNjk4NjAyMDhjMzZlNjRjZThmNGQ1ZTRjMQpBdXRob3I6IE1pa2UgUmFwb3BvcnQgPG1pa2VAY29tcHVsYWIuY28uaWw+CkRhdGU6CVN1biBBdWcgMTIgMDg6NDg6MjcgMjAwNyArMDMwMAoKICAgIEFkZCBhYmlsaXR5IHRvIHRha2UgTUFDIGFkZHJlc3MgZnJvbSB0aGUgZW52aXJvbm1lbnQgdG8gRE05MDAwIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IE1pa2UgUmFwb3BvcnQgPG1pa2VAY29tcHVsYWIuY28uaWw+CiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCmNvbW1pdCBiZTVkNzJkMTBkNDc2MDkzMjYyMjYyMjUxODFlMzAxZmI5YTMzYjU4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIEF1ZyAxMyAyMTo1Nzo1MyAyMDA3ICswMjAwCgogICAgTWlub3IgY29kaW5nIHN0eWxlIGNsZWFudXAuIFVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBjY2EzNDk2N2NiZDEzZmY2YmQzNTJiZTI5ZTNmMWNjODhhYjI0YzA1CkF1dGhvcjogSm9lIEhhbW1hbiA8am9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbT4KRGF0ZToJU2F0IEF1ZyAxMSAwNjo1NDo1OCAyMDA3IC0wNTAwCgogICAgTW9kaWZ5IFNCQzg2NDFEIHRvIHVzZSBuZXcgRnJlZXNjYWxlIFBDSSByb3V0aW5lcwoKICAgIFBDSS1FeHByZXNzIHNvY2tldHMgMSBhbmQgMiB2ZXJpZmllZCB3b3JraW5nIHdpdGggSW50ZWwgUHJvLzEwMDAgUFQKICAgIGFkYXB0ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSm9lIEhhbW1hbiA8am9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbT4KICAgIFNpZ25kZS1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTA4NDU4MzAzZTdmOWRiNjdmMjk2OTgwMDM2ZDMyOTJjMzVjYjQ1YwpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglGcmkgSnVuIDI5IDE4OjM4OjUxIDIwMDcgKzAyMDAKCiAgICBhdG1lbF9tY2k6IEZpeCBkYXRhIHRpbWVvdXQgdmFsdWUKCiAgICBDYWxjdWxhdGUgdGhlIGRhdGEgdGltZW91dCBiYXNlZCBvbiB2YWx1ZXMgZnJvbSB0aGUgQ1NEIGluc3RlYWQgb2YKICAgIGp1c3QgdXNpbmcgYSBoYXJkY29kZWQgRFRPUiB2YWx1ZS4gVGhpcyBpcyBhIGJhY2twb3J0IG9mIGEgc2ltaWxhciBmaXgKICAgIGluIEJTUCAyLjAsIHdpdGggb25lIGFkZGl0aW9uYWwgZml4OiB0aGUgRFRPQ1lDIHZhbHVlIGlzIHJvdW5kZWQgdXAKICAgIGluc3RlYWQgb2YgZG93bi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAwYmE4ZWVkMjhiNTc1NjI2YjE3ZTBhNzg4MmY5MjNiODNlMGQ3NTg0CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CU1vbiBBdWcgMTMgMTc6MjI6MzEgMjAwNyArMDIwMAoKICAgIEFWUjMyOiBJbmNsdWRlIDxkaXY2NC5oPiBpbnN0ZWFkIG9mIDxhc20vZGl2NjQuaD4KCiAgICBpbmNsdWRlL2FzbS1hdnIzMi9kaXY2NC5oIHdhcyByZWNlbnRseSBtb3ZlZCB0byBpbmNsdWRlL2RpdjY0LmgsIGJ1dAogICAgY3B1L2F0MzJhcC9pbnRlcnJ1cHRzLmMgd2Fzbid0IHByb3Blcmx5IHVwZGF0ZWQgKGFuIGVhcmxpZXIgdmVyc2lvbiBvZgogICAgdGhlIHBhdGNoIHdhcyBtZXJnZWQgcGVyaGFwcz8pCgogICAgVGhpcyBwYXRjaCB1cGRhdGVzIGNwdS9hdDMyYXAvaW50ZXJydXB0cy5jIHNvIHRoYXQgdGhlIGF2cjMyIHBvcnQKICAgIGNvbXBpbGVzIGFnYWluLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGYwZDEyNDZlZDdjYjVhODg1MjIyNDRjNTk2ZDdhZTdlNmYxNjEyODMKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIEp1biAyNyAxMzozNDoyNiAyMDA3ICswMjAwCgogICAgYXRtZWxfbWNpOiBVc2UgNTEyIGJ5dGUgYmxvY2tzaXplIGlmIHBvc3NpYmxlCgogICAgSW5zdGVhZCBvZiBhbHdheXMgdXNpbmcgdGhlIGxhcmdlc3QgYmxvY2tzaXplIHRoZSBjYXJkIHN1cHBvcnRzLCBjaGVjawogICAgaWYgaXQgY2FuIHN1cHBvcnQgc21hbGxlciBibG9jayBzaXplcyBhbmQgdXNlIDUxMiBieXRlcyBpZiBwb3NzaWJsZS4KICAgIE1vc3QgY2FyZHMgZG8gc3VwcG9ydCB0aGlzLCBhbmQgb3RoZXIgcGFydHMgb2YgdS1ib290IHNlZW0gdG8gaGF2ZQogICAgdHJvdWJsZSB3aXRoIGJsb2NrIHNpemVzIGRpZmZlcmVudCBmcm9tIDUxMiBieXRlcy4KCiAgICBBbHNvIGVuYWJsZSB1bmRlcnJ1bi9vdmVycnVuIHByb3RlY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CiAgICBBY2tlZC1ieTogSGFucy1DaHJpc3RpYW4gRWd0dmVkdCA8aGNlZ3R2ZWR0QGF0bWVsLmNvbT4KCmNvbW1pdCAyNzNkYjdlMWJkZDE5MzdlMzJmMWQ0NTA3MzIxYmI3MjFlYmQzMTE4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gQXVnIDEzIDA5OjA1OjMzIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBwcm9ibGVtIGluIFBMTCBjbG9jayBjYWxjdWxhdGlvbgoKICAgIFRoaXMgcGF0Y2ggd2FzIG9yaWdpbmFsbCBwcm92aWRlZCBieSBEYXZpZCBNaXRjaGVsbCA8ZG1pdGNoZWxsQGFtY2MuY29tPgogICAgYW5kIGZpeGVzIGEgYnVnIGluIHRoZSBQTEwgY2xvY2sgY2FsY3VsYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDk5ODZiYzNlNDBlODk5YmVhMzcyYTk5YTJiY2E0MDcxYmRmMmUyNGIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gQXVnIDEyIDIxOjM0OjUwIDIwMDcgKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgpjb21taXQgNzdkMTlhOGJmM2IwYjFlNDAxY2I5ZjIzYzgxZTJlZjQxOTcwNWMxYQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVN1biBBdWcgMTIgMjE6MzQ6MzQgMjAwNyArMDIwMAoKICAgIE1pbm9yIGFsaWdubWVudCBvZiBvdXRwdXQsIDJuZCB0cnkuCiAgICBBbHNvIHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDZiMzA5ZjIyYTcyNGZhZDg0MThlODExNzUxYTA3NDFiODkzNDE5Y2YKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gQXVnIDEyIDIwOjM1OjQ5IDIwMDcgKzAyMDAKCiAgICBNaW5vciBhbGlnbm1lbnQgb2Ygb3V0cHV0CgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2ZjZkN2I5Yzg1NTllMjQxZThkMjMyNjIxNTQyYjhiNTk2OTliMDdiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEF1ZyAxMiAxODoyODoxOCAyMDA3ICswMjAwCgogICAgQ2xlYW51cCBvdXRwdXQgb24gQURTNTEyMSBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsKCmNvbW1pdCBhNGQyNjM2ZjJhODU5MjQ1ZWQzYTQwMWYyNjE4OWRhMmRmZGE0Y2ViCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEF1ZyAxMiAxNToxMTozOCAyMDA3ICswMjAwCgogICAgQWRhcHQgYm9hcmQgY29uZmlndXJhdGlvbiBhbmQgZml4IGtlcm5lbCBjcmFzaCBvbiBNQ0MyMDAgYm9hcmQuCgogICAgVGhlIHVwZGF0ZSBwcm9jZWR1cmUgd2FzIG1vZGlmaWVkIHRvIHR1cm4gb2ZmIHRoZSBVU0Igc3Vic3lzdGVtCiAgICBiZWZvcmUgZXhpdCBmb3IgTUNDMjAwIGFuZCBUUkFCLiBUaGlzIGlzIG5lY2Vzc2FyeSBhcyBvdGhlcndpc2UgdGhlCiAgICBVU0IgY29udHJvbGxlciBjb250aW51ZXMgdG8gd3JpdGUgcGVyaW9kaWNhbGx5IHRvIHN5c3RlbSBtZW1vcnkhCgogICAgTUNDMjAwLXNwZWNpZmljIG5vdGVzOgogICAgLSB0aGUgcGF0Y2ggZGlzYWJsZXMgdGhlIG1hZ2ljIGtleSBjaGVjayBmb3IgTUNDMjAwCiAgICAtIHRoZSBwYXRjaCBjb250YWlucyB0aGUgY29uZmlndXJhdGlvbiBjaGFuZ2VzIG1hZGUKICAgICAgZm9yIHRoZSBuZXcgcmV2aXNpb24gb2YgdGhlIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGUyN2YzYTZlZmI5ZGI1YTUzMzIyM2IwNWM2MjlmZjRhYzhkOTIxYmYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTdW4gQXVnIDEyIDE0OjQ3OjU0IDIwMDcgKzAyMDAKCiAgICBBZGp1c3QgZGVmYXVsdCBjb25maWd1cmF0aW9uIG9mIEFEUzUxMjEgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBhZmFhYzg2ZmUyOTQ4YWM4NGNkOWExMmJiZWQ4ODNiM2M2ODNlN2Q5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJU3VuIEF1ZyAxMiAxNDoyNzozOSAyMDA3ICswMjAwCgogICAgQ2xlYW4gdXAgc29tZSByZW1haW5pbmcgQ0ZHX0NNRF8gLT4gQ09ORklHX0NNRF8gaXNzdWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNWZlNmJlNjIwOGRkYTg1MmMzNTY0ZTM4NGJkNzhkNzU3ODRkZWEzZQpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVR1ZSBBdWcgNyAyMToxNDoyMiAyMDA3IC0wNDAwCgogICAgSW1wcm92ZSBlcnJvciBwcmludCBtZXNzYWdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDk5ZGZmY2EzYjc1OTBhMTZhMDBiYzQ3NWM4NjBiNjdiMmEzZjE0NjIKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDE3IDEzOjU3OjA0IDIwMDcgLTA1MDAKCiAgICBmZHQ6IGFsbG93IGZvciBidWlsZHMgdGhhdCBkb24ndCB3YW50IGVudiBhbmQgYmRfdCBub2RlcwoKICAgIHByb3RlY3QgZmR0X2VudiBhbmQgZmR0X2JkX3QgaW52b2NhdGlvbnMsIGZpeCBjb2RpbmdzdHlsZSB3aGlsZSBpbiB0aGUKICAgIGFyZWEuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5MTE0OGJmN2FlYmExNDJkNmYzNDg4MDVkYjc2MjVkYjdkYTY0ZDZmCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxNyAxMzo1Njo1MyAyMDA3IC0wNTAwCgogICAgZmR0OiBkbyBib2FyZCBzZXR1cCBiYXNlZCBvbiBmZHQgYWRkcmVzcyBzcGVjaWZpZWQgb24gYm9vdG0gbGluZQoKICAgIFRoZSBsYXN0IGZkdCBwYXRjaCB0byBib290bSBkaWQgYm9hcmQgc2V0dXAgYmFzZWQgb24gdGhlIGFkZHJlc3MKICAgIHNwZWNpZmllZCBieSBhIHByaW9yIGZkdCBhZGRyZXNzIGNvbW1hbmQgaW52b2NhdGlvbi4gIFRoZSBib290bQogICAgY29kZSwgYXMgaXRzIGNhbGwgdG8gZmR0X2Nob3NlbiBkb2VzLCBzaG91bGQgdXNlIHRoZSBmZHQgc3BlY2lmaWVkCiAgICBieSB0aGUgdXNlciBvbiB0aGUgYm9vdG0gY29tbWFuZC4gIE5vdGUgdGhpcyByZXN0b3JlcyBmdWxsCiAgICBmdW5jdGlvbmFsaXR5IGZvciB0aGUgODM2MCdzIGV4aXN0aW5nIGRlZmF1bHQgYm9vdCBlbnZpcm9ubWVudAogICAgdmFsdWVzLCBlLmcuICdydW4gbmZzYm9vdCcgKGkuZS4gbm8gaGF2aW5nIHRvICdmZHQgYWRkciAkZmR0YWRkcicKICAgIGJlZm9yZSBib290aW5nIGEga2VybmVsKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGUxMjVhMmZmYzIwOWRkMzQ3OTRlMzI2YzcxNzU2NTgyNTNiZWFkZjMKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglUdWUgSnVsIDEwIDIwOjQwOjM5IDIwMDcgLTA0MDAKCiAgICBDYWxsIGZ0X2JvYXJkX3NldHVwKCkgZnJvbSB0aGUgYm9vdG0gY29tbWFuZC4KCiAgICBJbiB0aGUgcGF0Y2ggdGl0bGVkICJDcmVhdGUgbmV3IGZkdCBib2FyZHNldHVwIGNvbW1hbmQuLi4iIEkgcmVtb3ZlZCB0aGUKICAgIGNhbGwgdG8gZnRfYm9hcmRfc2V0dXAoKSBmcm9tIHRoZSByb3V0aW5lIGZkdF9jaG9zZW4oKSwgYnV0IEkgZm9yZ290CiAgICB0byBhZGQgYSBkaXJlY3QgY2FsbCBiYWNrIGludG8gY21kX2Jvb3RtLmMKCiAgICBUaGlzIGZpeGVzIHRoZSBvdmVyc2lnaHQgYnkgYWRkaW5nIHRoZSBkaXJlY3QgY2FsbCB0byB0aGUgYm9vdG0gY29tbWFuZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IGZkNjFlNTVkZDhjYjUyY2UzZmY5MWIzOTE3YWYyNmUyNGI2YjA4NDUKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglNb24gSnVuIDI1IDIzOjI1OjI4IDIwMDcgLTA0MDAKCiAgICBDcmVhdGUgbmV3IGZkdCBib2FyZHNldHVwIGNvbW1hbmQsIGZpeCBidWcgcGFyc2luZyBbXSBmb3JtIG9mIHNldCB2YWx1ZXMuCgogICAgUHJldmlvdXNseSBmdF9ib2FyZF9zZXR1cCgpIHdhcyBjYWxsZWQgYnkgZmR0X2Nob3NlbigpIHdoaWNoIHdhcyBub3QKICAgIHJlYWxseSBjb3JyZWN0bHkgc3RydWN0dXJlZC4gIFRoaXMgc3BsaXRzIGZ0X2JvYXJkX3NldHVwKCkgb3V0IGJ5IGNyZWF0aW5nCiAgICBhIG5ldyBmZHQgYm9hcmRzZXR1cCBjb21tYW5kLgoKICAgIEZpeCBhIGJ1ZyB3aGVuIHBhcnNpbmcgZmR0IHNldCBjb21tYW5kIHZhbHVlcyB3aGljaCBoYXZlIHRoZSBzcXVhcmUKICAgIGJyYWNrZXQgZm9ybSBbMDAgMTEgMjIgMzNdIC0gdGhlIGxlbmd0aCB3YXMgdXBkYXRlZCBpbmNvcnJlY3RseSBpbiB3aGVuCiAgICBwYXJzaW5nIHRoYXQgZm9ybS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDZmMzVkZWQ5ZTg1NDkzNTk1ZTBlYjY2YTgyYjUwMmE5NTMyNmQwNDkKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglNb24gSnVuIDI1IDIwOjU1OjU4IDIwMDcgLTA0MDAKCiAgICBUaWdodGVuIHVwIHRoZSBlcnJvciBtZXNzYWdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IGM0NTg3NGIwNWFhZTg5N2E2YzI5ZDFhOTdkNGJiNzA4ZmNhMjc1NmMKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglNb24gSnVuIDI1IDE5OjUyOjIzIDIwMDcgLTA0MDAKCiAgICBBc3RoZXRpYyBpbXByb3ZlbWVudHM6IGVycm9yIG1lc3NhZ2VzIGFuZCBsaW5lIGxlbmd0aHMuCgogICAgVGlnaHRlbiB1cCB0aGUgZXJyb3IgbWVzc2FnZXMsIHNwbGl0IG92ZXJsZW5ndGggbGluZXMuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCAzNWVjMzk4ZjE2ZTE3ZGY2MDBlZGMxYjM4YzFlOWU2MmMxNWM5YWExCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJRnJpIE1heSAyNSAyMjowODo1NyAyMDA3IC0wNDAwCgogICAgRml4IGZkdF9jaG9zZW4oKSB0byBjYWxsIGZ0X2JvYXJkX3NldHVwKCksIGNsZWFuIHVwIGxvbmcgbGluZXMuCgogICAgVGhlIGZkdF9jaG9zZW4oKSBmdW5jdGlvbiB3YXMgYWRkaW5nL3NldGluZyBzb21lIHByb3BlcnRpZXMgYWQtaG9jCiAgICAgIGltcHJvcGVybHkgYW5kIGR1cGxpY2F0ZWQgKHBvb3JseSkgd2hhdCB3YXMgZG9uZSBpbiBmdF9ib2FyZF9zZXR1cCgpCgogICAgQ2xlYW4gdXAgbG9uZyBsaW5lcyAoc2V0dGluZyBwcm9wZXJ0aWVzLCBwcmludGluZyBlcnJvcnMpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgMDZlMTlhMDc3MDFjOTY4ZjE1ZDcyYzA4M2I1ODcyYTFhMTFjN2IwMQpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CU1vbiBNYXkgMjEgMjM6Mjc6MTYgMjAwNyAtMDQwMAoKICAgIEZvciBmZHRfZmluZF9ub2RlX2J5X3BhdGgoKSwgaGFuZGxlIHRoZSByb290IHBhdGggcHJvcGVybHkuCgogICAgQWxzbyByZW1vdmVzIHRoZSBzcGVjaWFsIGNhc2Ugcm9vdCBwYXRoIGRldGVjdGlvbiBpbiBjbWRfZmR0LmMgc2luY2UgaXQKICAgIGlzIG5vIGxvbmdlciBuZWNlc3NhcnkuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCA5Njc1ZWU3MjA4YWI5NjVkMTNlYThkODI2MmQ3N2FjNDE2MGVmNTQ5CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJVGh1IE1heSAxNyAyMzo1NDozNiAyMDA3IC0wNDAwCgogICAgQWRkIGZkdF9maW5kX25vZGVfYnlfdHlwZSgpIGFuZCBmZHRfZmluZF9jb21wYXRpYmxlX25vZGUoKSB0byBMSUJGRFQKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBHcmFuZGVnZ2VyIDx3Z0BncmFuZGVnZ2VyLmNvbT4KICAgIEFja2VkLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDFhODYxMTY5YmMzNzU4ZjlkZTNhZWFkNjJiMDU4NzM2YzY4OTEyNDYKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglXZWQgSnVuIDYgMjI6NDc6NTggMjAwNyAtMDQwMAoKICAgIFJlcGxhY2UgZmR0X25vZGVfb2Zmc2V0KCkgd2l0aCBmZHRfZmluZF9ub2RlX2J5X3BhdGgoKS4KCiAgICBUaGUgbmV3IG5hbWUgbWF0Y2hlcyBtb3JlIGNsb3NlbHkgdGhlIGtlcm5lbCdzIG5hbWUsIHdoaWNoIGlzIGFsc28KICAgIGEgbXVjaCBiZXR0ZXIgZGVzY3JpcHRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgR3JhbmRlZ2dlciA8d2dAZ3JhbmRlZ2dlci5jb20+CiAgICBBY2tlZC1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCBhZGRkOGNlODMwNzhjMjVmMGVjYTVmMjNhZGJkZmM2NGNhNTBhMjQzCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJV2VkIE1heSAxNiAyMjozOTo1OSAyMDA3IC0wNDAwCgogICAgRml4IGNtZF9mZHQgbGluZSBsZW5ndGhzLCByZWZhY3RvciBjb2RlLgoKICAgIEJyZWFrIGxpbmVzIHRoYXQgd2VyZSBncmVhdGVyIHRoYW4gODAgY2hhcmFjdGVycyBpbiBsZW5ndGguCiAgICBNb3ZlIHRoZSBmZHQgcHJpbnQgYW5kIHByb3BlcnR5IHBhcnNpbmcgY29kZSB0byBzZXBhcmF0ZSBzdGF0aWMgZnVuY3Rpb25zCiAgICAgIHRvIHJlZHVjZSBjb2RpbmcgY2x1dHRlciBpbiB0aGUgZmR0X2NtZCBoYW5kbGluZyBib2R5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgMjUxMTQwMzNhYjIxNzg4ODEwYzQ4YmE0ZGYxMDNiNjQ5ZGExMjIzYgpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVNhdCBNYXkgMTIgMDk6NDc6MjUgMjAwNyAtMDQwMAoKICAgIEZEVCBjb21tYW5kIGltcHJvdmVtZW50cy4KCiAgICBGaXggImZkdCBzZXQiIHNvIHRoYXQgaXQgd2lsbCBjcmVhdGUgYSBub24tZXhpc3RpbmcgcHJvcGVydHkuCiAgICBBZGQgImZkdCBta25vZGUiIHRvIGNyZWF0ZSBub2Rlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDM4ZWI1MDhlOGU4MTFlMmU1NzYyOGY0NDVkZTNhMjRhMjNjN2Q4MDQKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgTWF5IDEyIDA5OjQ1OjQ2IDIwMDcgLTA0MDAKCiAgICBSZW9yZ2FuaXplIGFuZCBmaXggcHJvYmxlbXMgKHJldHVybnMpIGluIHRoZSBib290bSBjb21tYW5kLgoKICAgIERvICpOT1QqIHJldHVybiBhZnRlciB0aGUgInBvaW50IG9mIG5vIHJldHVybiIgaGFzIGJlZW4gcGFzc2VkLgogICAgICBJZiBzb21ldGhpbmcgZ29lcyB3cm9uZywgdGhlIGJvYXJkIG11c3QgYmUgcmVzZXQgYWZ0ZXIgdGhhdCBwb2ludC4KICAgIE1vdmUgdGhlICJUcmFuc2ZlcnJpbmcgY29udHJvbCB0byBMaW51eCIgZGVidWcgbWVzc2FnZSBiYWNrIHRvIHdoZXJlIGl0CiAgICAgIGJlbG9uZ3M6IGp1c3QgYmVmb3JlIHRyYW5zZmVycmluZyBjb250cm9sIHRvIGxpbnV4LgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgODljODc1N2Q4ZjIxM2M0NzcwOWJkYzRlZmUwNjk1MjYzYTYwODBhNgpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVR1ZSBNYXkgOCAyMToyNzozNSAyMDA3IC0wNDAwCgogICAgRml4IGJ1Z3MgaW4gdGhlIENPTkZJR19PRl9MSUJGRFQKCiAgICBTdHVwaWQgY29kaW5nIG1pc3Rha2VzIChpZGVudGlmaWVkIGJ5IFRpbXVyIFRhYmksIHRoYW5rcykuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCA2YmUwN2NjMWNhNDU4Mjc4Yzg1ZWNkYmYxYTA1MzZjZmY0YzcwMWVjCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJV2VkIEFwciAyNSAyMjo0NzoxNSAyMDA3IC0wNDAwCgogICAgSW1wcm92ZSBmZHQgbW92ZSBsZW5ndGggaGFuZGxpbmcuCgogICAgTWFrZSB0aGUgbGVuZ3RoIHBhcmFtZXRlciBvcHRpb25hbDogaWYgbm90IHNwZWNpZmllZCwgZG8gdGhlIG1vdmUgdXNpbmcKICAgIHRoZSBjdXJyZW50IHNpemUgdW5jaGFuZ2VkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgYmI5MzBlNzZmZWE2Y2Y4OWNhMmQ5OGUyZjdjN2E2MDQzZDc5MzI3ZApBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVdlZCBBcHIgMjUgMjI6MjM6MzYgMjAwNyAtMDQwMAoKICAgIE1pbm9yIGNvZGUgY2xlYW4gdXAuCgogICAgRGVjbGFyZSB0aGUgdmFyaWFibGUgZmR0IHByb3Blcmx5IGFzIGV4dGVybi4KICAgIENhbGwgdGhlICJzZXRfZm4iIGZ1bmN0aW9uIHBvaW50ZXIgdGhlICJzaG9ydCB3YXkiIHdpdGhvdXQgdGhlIGZ1bGwKICAgICAgZGVyZWZlcmVuY2luZyBzeW50YXguCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCBiYTI0ZTJhYzNiZGI1YzQ4OWYzYzc4N2U3NTQyYjY0NzRjNGQ2NWM2CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJV2VkIEFwciAyNSAyMToyNDoyNyAyMDA3IC0wNDAwCgogICAgSW1wcm92ZSBlcnJvciBtZXNzYWdlcywgbW9yZSBpbmZvcm1hdGl2ZS4KCiAgICBQcmludCBtb3JlIHRoYW4gdGhlIHJhdyBsaWJmZHQgZXJyb3IgbWVzc2FnZSBzdHJpbmdzLiAgVGhpcyBpcyBlc3BlY2lhbGx5CiAgICB1c2VmdWwgZm9yIGNsdWluZyBpbiB0aGUgdXNlciB3aGVuIHRoZSBib290bSBjb21tYW5kIGFib3J0cyBkdWUgdG8KICAgIGJsb2IgcHJvYmxlbXMuCgogICAgU2lnbmVkLW9mZi1ieTogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KCmNvbW1pdCA4MDk2YjNiOGY3NzJjMTg5NGRkZWRhOWRiY2VmZjZhODgyNjQ3M2E0CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJRnJpIEFwciAyMCAyMjo0Njo1MyAyMDA3IC0wNDAwCgogICAgbGliZmR0OiBDb25kaXRpb25hbGx5IGNvbXBpbGUgYmFzZWQgb24gQ09ORklHX09GX0xJQkZEVAoKICAgIFRoaXMgaXMgdGhlIHdheSB1LWJvb3QgcmVkdWNlcyBjb25maWd1cmVkLW91dCBjb2RlLiAgQXQgV29sZmdhbmcKICAgIEdyYW5kZWdnZXIgYW5kIFdvbGZnYW5nIERlbmsncyByZXF1ZXN0LCBtYWtlIGxpYmZkdCBjb25mb3JtLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+Cgpjb21taXQgOTIzZWZkMjg2NDExZWQwNTJkOWUwNzRmNTlmODk4NmQ2MDgxMDYxYwpBdXRob3I6IEJydWNlIEFkbGVyIDxicnVjZS5hZGxlckBjY3B1LmNvbT4KRGF0ZToJRnJpIEF1ZyAxMCAxNDo1NDo0NyAyMDA3IC0wNzAwCgogICAgYWRkIGltYWdlIHNpemUgYW5kIGRlc2NyaXB0b3JzIGZvciBTcGFydGFuIDNFIEZQR0EgY2hpcHMKCiAgICBTcGFydGFuIDNFIGltYWdlIHNpemVzIHRha2VuIGZyb20gVGFibGUgMS00IGluIFhpbGlueCBVRzMzMiAodjEuMSkKCiAgICBTaWduZWQtb2ZmIGJ5OiBCcnVjZSBBZGxlciA8YnJ1Y2UuYWRsZXJAY2NwdS5jb20+Cgpjb21taXQgZmI1NjU3OWZmZTdlZjMyNzViNzAzNmJiN2I5MjRlNWEwZDMyYmQ3MApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBBdWcgMTAgMTU6MzQ6NDggMjAwNyAtMDUwMAoKICAgIG1ha2UgTUFLRUFMTCBtb3JlIGltbXVuZSB0byBtZXJnZSBjb25mbGljdHMKCiAgICAuLmJ5IHBsYWNpbmcgYm9hcmQgZW50cmllcyBvbmUgcGVyIGxpbmUsIGFzIHN1Z2dlc3RlZCBieSBqZGwuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNjI4MTE0ZWM1NjRmOTY5ZjM0YjVmNzEwNWZiZDE2OGNiOGM5YzNmCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEF1ZyAxMCAxMzoyODoyNSAyMDA3IC0wNTAwCgogICAgUkVBRE1FOiBSZW1vdmUgb3V0ZGF0ZWQgY3B1IHR5cGUsIGJvYXJkIHR5cGUsIGFuZCBOQU1FX2NvbmZpZyBsaXN0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDliYjU5OTEyZDIxYWFjYjUwN2ViODFmZDIxZmI3YWY2NTBjNzA2YwpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEF1ZyAxMCAxNTo0ODo1OSAyMDA3ICswODAwCgogICAgbXBjODN4eDogU3VwcHJlc3MgdGhlIHdhcm5pbmcgJ2J1cnN0bGVuJwoKICAgIHN1cHByZXNzIHRoZSB3YXJuaW5nICdidXJzdGxlbicgb2Ygc3BkX3NkcmFtLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzY0NmJiYTY0NjVhNDVjNjA3NDZkNGNjMTYwMmNkMDZjMTk2MGYyZApBdXRob3I6IEpvZSBIYW1tYW4gPGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20+CkRhdGU6CVRodSBBdWcgOSAxNToxMTowMyAyMDA3IC0wNTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIFNCQzg2NDFELiBDb25maWcgZmlsZXMuCgogICAgQWRkIHN1cHBvcnQgZm9yIFdpbmQgUml2ZXIncyBTQkM4NjQxRCByZWZlcmVuY2UgYm9hcmQuCgogICAgU2lnbmVkLW9mZiBieTogSm9lIEhhbW1hbiA8am9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbT4KICAgIEFja2VkLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGFjMjczMjcxZDU3MzIxZjkwNTA1YzdhNTFjZGIxZWYyMTEzYjYyOApBdXRob3I6IEpvZSBIYW1tYW4gPGpvZS5oYW1tYW5AZW1iZWRkZWRzcGVjaWFsdGllcy5jb20+CkRhdGU6CVRodSBBdWcgOSAxNToxMDo1MyAyMDA3IC0wNTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIFNCQzg2NDFELiAgQm9hcmQgZmlsZXMuCgogICAgQWRkIHN1cHBvcnQgZm9yIFdpbmQgUml2ZXIncyBTQkM4NjQxRCByZWZlcmVuY2UgYm9hcmQuCgogICAgU2lnbmVkLW9mZiBieTogSm9lIEhhbW1hbiA8am9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbT4KICAgIEFja2VkLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgogICAgQWNrZWQtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzJjMGFiNGFmZjg2NjIyYjgzN2E0OGEwZTU2MDM1MWY5YWZhZmI5NQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEF1ZyAxMCAyMDozNDo1OCAyMDA3ICswMjAwCgogICAgQ29uZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGM3NGIyMTA4ZTMxZmUwOWJkMWM1ZDI5MWMzY2YzNjA1MTBkNGYxM2UKQXV0aG9yOiBTZXJnZXkgS3VidXNoeW4gPGtzaUBrb2k4Lm5ldD4KRGF0ZToJRnJpIEF1ZyAxMCAyMDoyNjoxOCAyMDA3ICswMjAwCgogICAgW0FSTV0gVEkgRGFWaW5jaSBzdXBwb3J0LCBob3BlZnVsbHkgZmluYWwKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIGZvbGxvd2luZyBEYVZpbmNpIGJvYXJkczoKICAgIC0gRFZfRVZNCiAgICAtIFNDSE1PT0dJRQogICAgLSBTT05BVEEKCiAgICBDaGFuZ2VzOgoKICAgIC0gU3BsaXQgaW50byBzZXBhcmF0ZSBib2FyZCBkaXJlY3RvcmllcwogICAgLSBSZW1vdmVkIGNoYW5nZXMgdG8gTVREX0RFQlVHIChvciB3aGF0ZXZlciBpdCdzIGNhbGxlZCkKICAgIC0gTmV3IENPTkZJR19DTUQgcGFydHkgbGluZSBmb2xsb3dlZAogICAgLSBTb21lIGNvc21ldGljIGZpeGVzLCBjbGVhbnVwIGV0Yy4KICAgIC0gUGF0Y2hlcyBhZ2FpbnN0IHRoZSBsYXRlc3QgVS1Cb290IHRyZWUgYXMgb2Ygbm93LgogICAgLSBGaXhlZCBDT05GSUdfQ01EX05FVCBpbiBuZXQgZmlsZXMuCiAgICAtIEZpeGVkIENPTkZJR19DTURfRUVQUk9NIGZvciBzY2htb29naWUuCiAgICAtIE1hZGUgc3VyZSBpdCBjb21waWxlcyBhbmQgd29ya3MgKGZvcmNlZW52KCkgbGluayBwcm9ibGVtKSBvbiBTQ0hNT09HSUUgYW5kCiAgICAgICBEVl9FVk0uIENhbid0IGNoZWNrIGlmIGl0IHdvcmtzIG9uIFNPTkFUQSwgZG9uJ3QgaGF2ZSBhIGJvYXJkIGFueSBtb3JlLAogICAgICAgYnV0IGl0IGF0IGxlYXN0IGNvbXBpbGVzLgoKICAgIEhlcmUgaXMgYW4gZXhjZXJwdCBmcm9tIHNlc3Npb24gbG9nIG9uIFNDSE1PT0dJRS4uLgoKICAgIFUtQm9vdCAxLjIuMC1nNmMzM2M3ODUtZGlydHkgKEF1ZyAgNyAyMDA3IC0gMTM6MDc6MTcpCgogICAgRFJBTTogIDEyOCBNQgogICAgTkFORDogIDEyOCBNaUIKICAgIEluOiAgICBzZXJpYWwKICAgIE91dDogICBzZXJpYWwKICAgIEVycjogICBzZXJpYWwKICAgIEFSTSBDbG9jayA6IDI5N01IegogICAgRERSIENsb2NrIDogMTYyTUh6CiAgICBFVEggUEhZICAgOiBEUDgzODQ4IEAgMHgwMQogICAgVS1Cb290ID4gaXByb2JlCiAgICBWYWxpZCBjaGlwIGFkZHJlc3NlczogMUIgMzggM0EgM0QgM0YgNTAgNUQgNkYKICAgIFUtQm9vdCA+IHBpbmcgMTkyLjE2OC4yNTMuMTAKICAgIGhvc3QgMTkyLjE2OC4yNTMuMTAgaXMgYWxpdmUKICAgIFUtQm9vdCA+CgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2V5IEt1YnVzaHluIDxrc2lAa29pOC5uZXQ+CiAgICBBY2tlZC1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnbWFpbC5jb20+CiAgICBBY2tlZC1ieTogWmFjaCBTYWRlY2tpIDxaYWNoLlNhZGVja2lAcmlwY29kZS5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDJlNGQ5NGYxZTNjMjk2MTQyODk2N2EzM2I2ZmYyNTIwNTY4MzkxYjMKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI3IDAxOjUwOjQ1IDIwMDcgLTA1MDAKCiAgICBmc2xfcGNpX2luaXQgY2xlYW51cC4KCiAgICBEbyBub3QgZW5hYmxlIG5vcm1hbCBlcnJvcnMgY3JlYXRlZCBkdXJpbmcgcHJvYmUgKG1hc3RlciBhYm9ydCwgcGVyciwKICAgIGFuZCBwY2llIEludmFsaWQgQ29uZmlndXJhdGlvbiBhY2Nlc3MpLgoKICAgIEFkZCBDT05GSUdfUENJX05PU0NBTiBib2FyZCBvcHRpb24gdG8gcHJldmVudCBidXMgc2Nhbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5MzZiM2U2OWI2NjdjM2ViOWE2MWVjZTRlNzg2NDdkM2ZjZTlmYzJhCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyNyAwMTo1MDo0NCAyMDA3IC0wNTAwCgogICAgcGNpYXV0b19zZXR1cF9kZXZpY2UgYmFyc19udW0gZml4CgogICAgUGFzc2luZyBiYXJzX251bT0wIHRvIHBjaWF1dG9fc2V0dXBfZGV2aWNlIHNob3VsZCBhc3NpZ24gbm8gYmFycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IFNoaW55YSBLdXJpYmF5YXNoaSA8c2hpbnlhLmt1cmliYXlhc2hpQG5lY2VsLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2YwYjE4NWU1OGNhMGFlYzhhZTJiMmE4ODA0ZWMwZWY1OGVlMjFkNApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBdWcgNiAxNzozOTo0NCAyMDA3IC0wNTAwCgogICAgODY0MWhwY246IERvIGNvcnJlY3Qgc2l6ZWQgcG9pbnRlciBtYXRoLgoKICAgIFdoZW4gSSByZWJhc2VkIEVkJ3MgcGF0Y2ggYW5kIGNsZWFuZWQgdXAgYSBmZXcgY29tcGlsYXRpb24KICAgIHByb2JsZW1zLCBJIGFwcGFyZW50bHkgcmViYXNlZCBteSBicmFpbiBvbiBjcmFjayBmaXJzdC4KICAgIEZpeCB0aGF0IGJ5IGRvaW5nIChjaGFyICopIHNpemVkIHBvaW50ZXIgbWF0aCBhcyBuZWVkZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjZmM3YTdmNWJiMzI3M2M5OTUxMTczYzc4ODAwMWQ0NTExOGYxNDFmCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAyIDE0OjQyOjIwIDIwMDcgLTA1MDAKCiAgICBjcHUvODZ4eCBmaXhlcy4KCiAgICBSZW1vdmUgcmV2IDEgZml4ZXMuCiAgICBBbHdheXMgc2V0IFBJQ0dDUl9NT0RFLgogICAgRW5hYmxlIG1hY2hpbmUgY2hlY2sgYW5kIHByb3ZpZGUgYm9hcmQgY29uZmlnIG9wdGlvbgogICAgdG8gc2V0IGFuZCBoYW5kbGUgU29DIGVycm9yIGludGVycnVwdHMuCgogICAgSW5jbHVkZSBNU1NTUjAgaW4gZXJyb3IgbWVzc2FnZS4KCiAgICBJc29sYXRlIGEgUkFNQk9PVCBiaXQgb2YgY29kZSB3aXRoICNpZmRlZiBDRkdfUkFNQk9PVC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzNWQyMmY5NTdhODVhMjJiYjNjZDFhZDA4NGZhNTQwNDYyMGQxYzQyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgQXVnIDEwIDEwOjQyOjI1IDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzYTZkNTZjMjA5ODlmZTI3MzYwYWZlNzQzYmQyYTdhZDRkNzZlNDhmCkF1dGhvcjogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnb29nbGVtYWlsLmNvbT4KRGF0ZToJVGh1IEF1ZyAyIDE3OjQyOjA4IDIwMDcgKzAyMDAKCiAgICBNYWtlIHVzZSBvZiBnZW5lcmljIDY0Yml0IGRpdmlzaW9uIGluIG5hbmRfdXRpbC5jCgogICAgVXNlIGdlbmVyaWMgNjRiaXQgZGl2aXNpb24gaW4gbmFuZF91dGlsLmMuIFRoaXMgbWFrZXMgbmFuZF91dGlsLmMKICAgIGluZGVwZW5kZW50IG9mIGFueSB0b29sY2hhaW4gNjRiaXQgZGl2aXNpb24uCgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnbWFpbC5jb20+Cgpjb21taXQgZjdjMDg2ZTk0ZThjZTlhYWQ3MjY4YWY5N2Y3M2FhNjg4NDY4NmYyNwpBdXRob3I6IERpcmsgQmVobWUgPGRpcmsuYmVobWVAZ29vZ2xlbWFpbC5jb20+CkRhdGU6CVRodSBBdWcgMiAxNzo0MToxNCAyMDA3ICswMjAwCgogICAgTW92ZSA2NGJpdCBkaXZpc2lvbiBmcm9tIGF2cjMyIHRvIGdlbmVyaWMgbGliCgogICAgTW92ZSB0aGUgNjRiaXQgZGl2aXNpb24gZnJvbSBsaWJfYXZyMzIgdG8gbGliX2dlbmVyaWMuIFdpdGggdGhpcywgYWxsCiAgICBib2FyZHMgY2FuIGRvX2Rpdi9fX2RpdjY0XzMyIGlmIG5lZWRlZCwgbm90IG9ubHkgYXZyIG9uZS4gQ29kZSBpcyBwdXQKICAgIHRvIGxpYl9nZW5lcmljLCBzbyBubyBsYXJnZXIgbWVtb3J5IGZvb3RwcmludCBpZiBub3QgdXNlZC4gTm8gY29kZQogICAgbW9kaWZpY2F0aW9ucy4gVGhhbmtzIGZvciBwcm9wb3NhbCBieSBIw6V2YXJkIFNraW5uZW1vZW4uCgogICAgU2lnbmVkLW9mZi1ieTogRGlyayBCZWhtZSA8ZGlyay5iZWhtZUBnbWFpbC5jb20+Cgpjb21taXQgMTU3Y2RhNGQwYzNkNTkyY2NiYjE5YmJmYzA3ZDkyNTE4OTRmMDg5NApBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXNnaWdlckBnbXguY2g+CkRhdGU6CUZyaSBKdWwgMjcgMTE6MzE6MjIgMjAwNyArMDIwMAoKICAgIEFkZCBQUEM0eHgtSENVNCBhbmQgSENVNSBib2FyZHM6IEhDVTUgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDZlNWRlMjZjNmU3NTgwZmFmMTZlODc3NDVjZDQ4OGI5MmI0OTJkMGMKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzZ2lnZXJAZ214LmNoPgpEYXRlOglGcmkgSnVsIDI3IDExOjMwOjMzIDIwMDcgKzAyMDAKCiAgICBBZGQgUFBDNHh4LUhDVTQgYW5kIEhDVTUgYm9hcmRzOiBIQ1U0IGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCBlODM5N2ZjNzhjOTM5NGQ3MWRlMjMzYTRkODEwZmJjOTA0N2U0Yzc2CkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1c2dpZ2VyQGdteC5jaD4KRGF0ZToJRnJpIEp1bCAyNyAxMTozODoyNiAyMDA3ICswMjAwCgogICAgQWRkIFBQQzR4eC1IQ1U0IGFuZCBIQ1U1IGJvYXJkczogY29tbW9uIGZpbGVzCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCBhYzk4MmVhNWE0ZjJmOTkzZWZjZjUyZGNhMTIyZjVhNTlkZjA0N2Q4CkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1c2dpZ2VyQGdteC5jaD4KRGF0ZToJRnJpIEp1bCAyNyAxMToyODo0NCAyMDA3ICswMjAwCgogICAgQWRkIFBQQzR4eC1IQ1U0IGFuZCBIQ1U1IGJvYXJkczogbWFrZSByZWxhdGVkCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCAxMzdmZGQ5ZjQ3NGVjYjg1M2VmZGFjZTUyMDA1NzYzMDhjNjdmMThkCkF1dGhvcjogTmlrbGF1cyBHaWdlciA8bmlrbGF1c2dpZ2VyQGdteC5jaD4KRGF0ZToJRnJpIEp1bCAyNyAxMToyODowMyAyMDA3ICswMjAwCgogICAgQWRkIFBQQzR4eC1IQ1U0IGFuZCBIQ1U1IGJvYXJkczogSENVNSBjb25maWcKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDcxNGJjNTViMzViNmY2YTY1Y2M4NzQwYTM4NDJhNTQzZTg4Y2RlZjIKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzZ2lnZXJAZ214LmNoPgpEYXRlOglGcmkgSnVsIDI3IDExOjI3OjE1IDIwMDcgKzAyMDAKCiAgICBBZGQgUFBDNHh4LUhDVTQgYW5kIEhDVTUgYm9hcmRzOiBIQ1U0IGNvbmZpZwoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmV0c3RhbC5jb20+Cgpjb21taXQgMTg5NGRkMzgxMTI0YmRiZmJkYWU3Y2YzYTZjYTUyYThlYjFmNDQyMQpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXNnaWdlckBnbXguY2g+CkRhdGU6CUZyaSBKdWwgMjcgMTE6MjU6MzEgMjAwNyArMDIwMAoKICAgIEFkZCBQUEM0eHgtSENVNCBhbmQgSENVNSBib2FyZHM6IFJFQURNRXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5ldHN0YWwuY29tPgoKY29tbWl0IDY0MWNjYTk1NjljZTM1MWRkYjI4N2ZkMzM0M2Q4YjFkY2I1OTFkYjQKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzZ2lnZXJAZ214LmNoPgpEYXRlOglGcmkgSnVsIDI3IDExOjM3OjQwIDIwMDcgKzAyMDAKCiAgICBBZGQgUFBDNHh4LUhDVTQgYW5kIEhDVTUgYm9hcmRzOiBJbmZyYXN0cnVjdHVyZQoKICAgIFRoaXMgc2VyaWVzIG9mIHBhdGNoZXMgYWRkcyBzdXBwb3J0IGZvciAyIGJvYXJkcyBmcm9tIE5ldHN0YWwgTWFzY2hpbmVuLgoKICAgIFRoZSBIQ1U0IGhhcyBhIFBQQzQwNUdwciBhbmQKICAgIHRoZSBIQ1U1IGhhcyBhIFBQQzQ0MEVQWC4KCiAgICBUaGUgSENVNCBoYXMgYSBzb21laG93IGNvbXBsaWNhdGVkIGZsYXNoIHNldHVwLCBhcyB0aGUgYm9vdGVwcm9tIGlzCiAgICBvbmx5IDggYml0cyBhbmQgdGhlIENGSSAxNiBiaXRzIHdpZGUsIHdoaWNoIG1ha2VzIGl0IGltcG9zc2libGUgdG8gdXNlIGEgbW9yZQogICAgZWxlZ2FudCBzb2x1dGlvbi4KCiAgICBUaGUgSENVNSBoYXMgb25seSBhIGJvb3RlcHJvbSBhcyB0aGUgd2hvbGUgY29kZSB3aWxsIGJlIGRvd25sb2FkZWQgZnJvbSBhCiAgICBkaWZmZXJlbnQgYm9hcmQgd2hpY2ggaGFzIEhELCBDRC1ST00sIGV0YyBhbmQgd2hlcmUgYWxsIGNvZGUgaXMgc3RvcmVkLgoKICAgIFRoaXMgaXMgbXkgdGhpcmQgdHJ5LiBJIGluY29ycG9yYXRlZCBhbGwgc3VnZ2VzdGlvbnMgbWFkZSBieSBXb2xmZ2FuZyBhbmQgU3RlZmFuLgogICAgVGhhbmtzIHRoZW0gYSBsb3QuCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXRzdGFsLmNvbT4KCmNvbW1pdCAzZTRjOTBjNjIzMzYxOGZjMTgwNmU2M2ZkZTY4ZGY1ZjNkNmEwMTcxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgQXVnIDEwIDA4OjQyOjU1IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBsd21vbjUgUE9TVCBjb25maWd1cmF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDI5Y2IyNWRhNTZhZmUxOGNmNWU3MDcyYTkyYTlkOThlYThhZjFmZDQKQXV0aG9yOiBZdXJpIFRpa2hvbm92IDx5dXJAZW1jcmFmdC5jb20+CkRhdGU6CUZyaSBBdWcgMTAgMDg6MjU6MjIgMjAwNyArMDIwMAoKICAgIFBPU1Q6IEFkZCBwcGM0eHggVUFSVCBQT1NUIHN1cHBvcnQgd2l0aG91dCBleHRlcm5hbCB1YXJ0IGNsb2NrIChsd21vbjUpCgogICAgVGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgVUFSVCBQT1NUIG9uIHBwYzQ0eC1iYXNlZCBib2FyZHMgd2l0aCBubwogICAgZXh0ZXJuYWwgc2VyaWFsIGNsb2NrcyBpbnN0YWxsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogWXVyaSBUaWtob25vdiA8eXVyQGVtY3JhZnQuY29tPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5OWMyZmRhYjkxYmM2MzNlNDZmYjQxZGJhYTYyOWY4N2NjZjZlMDBmCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyA2IDE4OjE4OjM0IDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBmaXggSVRYW0dQXSBPPWJ1aWxkZGlyIGJ1aWxkcwoKICAgIG1ha2U6ICoqKiBObyBydWxlIHRvIG1ha2UgdGFyZ2V0IGAvd29yay93ZC90bXAvYm9hcmQvbXBjODM0OWl0eC91LWJvb3QubGRzJywgbmVlZGVkIGJ5IGAvd29yay93ZC90bXAvdS1ib290Jy4gIFN0b3AuCgogICAgQm90aCB0aGUgSVRYIGFuZCBJVFgtR1AgZmFpbCB3aGVuIHlvdSB1c2UgIm1ha2UgTz08c29tZSBkaXI+IC4uLiIgb3IKICAgICJCVUlMRF9ESVI9PHNvbWUgZGlyPiAuL01BS0VBTEwgLi4uIgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDdlOGJjODQ2NzU5ZTAzN2I4YWYwZTVmOWM5ZjljZmE3YTEwNTBjMwpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxIDE1OjAwOjU5IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBDb3JyZWN0IHRoZSBSRUFETUUgZm9yIEREUiBFQ0MKCiAgICBVcGRhdGUgdGhlIFJFQURNRSBmb3IgRERSIEVDQywgY2hhbmdlIHRoZSBuYW1lCiAgICB0byBSRUFETUUubXBjODN4eC5kZHJlY2MuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGFhYjhjNjdkMmRlZmVmNzNkYzI2YWIwN2YwYzNhZmQxYjA1ZDAxOQpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAxIDE1OjAwOjE1IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBDb25zb2xpZGF0ZSB0aGUgRUNDIHN1cHBvcnQgb2YgODN4eAoKICAgIFJlbW92ZSB0aGUgZHVwbGljYXRlZCBzb3VyY2UgY29kZSBvZiBlY2MgY29tbWFuZCBvbiB0aGUgPGJvYXJkPi5jLAogICAgZm9yIHJldXNlZCwgbW92ZSB0aGVzZSBjb2RlIHRvIGNwdS9tcGM4M3h4IGRpcmVjdG9yeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwMzY1NzVjNTQ0Y2YxYjY5NjU0ZDhmYjMzNGJkYTY5YzZmZjNkYTM2CkF1dGhvcjogRGF2ZSBMaXUgPHI2MzIzOEBmcmVlc2NhbGUuY29tPgpEYXRlOglTYXQgQXVnIDQgMTM6Mzc6MzkgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IENvcnJlY3QgdGhlIGJ1cnN0IGxlbmd0aCBmb3IgRERSMiB3aXRoIDMyIGJpdHMKCiAgICBUaGUgYnVyc3QgbGVuZ3RoIHNob3VsZCBiZSA0IGZvciBERFIyIHdpdGggMzIgYml0cyBidXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFjMjc0YzRlMDViNmRjOWIyNGVkYzhhYTYxOGIwMmY2MDdlZTZlZWQKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDI1IDE5OjI1OjMzIDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBhZGQgc3VwcG9ydCBmb3IgdGhlIE1QQzgzMjNFIFJEQgoKICAgIE1QQzgzMjNFIGJhc2VkIGJvYXJkIHdpdGggNjRNQiBmaXhlZCBTRFJBTSwgMTZNQiBmbGFzaCwKICAgIGZpdmUgMTAvMTAwIGV0aGVybmV0IHBvcnRzIGNvbm5lY3RlZCB2aWEgYW4gSUNQbHVzIElQMTc1QwogICAgc3dpdGNoLCBvbmUgUENJIHNsb3QsIGFuZCBzZXJpYWwuICBGZWF0dXJlcyBub3Qgc3VwcG9ydGVkCiAgICBpbiB0aGlzIHBhdGNoIGFyZSBTRCBjYXJkIGludGVyZmFjZSwgMiBVU0IgcG9ydHMsIGFuZCB0aGUKICAgIHR3byBwaG9uZSBwb3J0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEJhcmtvd3NraSA8bWljaGFlbC5iYXJrb3dza2lAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzQzZDkxMDA5ZDU1ZmM1YjNmZjhjYzk0MDU5N2FmNmM2YWExZDM1OQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgMjUgMTk6MjU6MjggMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IGZpeHVwIGdlbmVyaWMgcGNpIGZvciBsaWJmZHQKCiAgICBhZGQgbGliZmR0IHN1cHBvcnQgdG8gdGhlIGdlbmVyaWMgODN4eCBwY2kgY29kZQoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjU3YWM3YTdiMzcxMDkyNDViNjlkYjgwODM5ZWJlZTI2MTc5OTY2YQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgMjUgMTk6MjU6MjIgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IGZpeCA4MzYwIGFuZCBjcHUgZnVuY3Rpb25zIHRvIHVwZGF0ZSBmZHQgYmVpbmcgcGFzc2VkCgogICAgLi5hbmQgbm90IHRoZSBnbG9iYWwgZmR0LiBSZW5hbWUgbG9jYWwgZmR0IHZhcnMgdG8gYmxvYiBzbyBhcyBub3QgdG8KICAgIGJlIGNvbmZ1c2VkIHdpdGggdGhlIGdsb2JhbCB2YXIgd2l0aCB0aGUgc2FtZSB0aHJlZS1sZXR0ZXIgbmFtZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhiZTQwNDQ1OWE2YjczOTU0MTVhNTdiYjM1ZTgzNzdlM2IyYjVhY2IKQXV0aG9yOiBKZXJyeSBWYW4gQmFyZW4gPGd2Yi51Ym9vdEBnbWFpbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMTozNDoyNCAyMDA3IC0wNDAwCgogICAgbXBjODN4eDogRml4IGVycm9ycyB3aGVuIENPTkZJR19PRl9MSUJGRFQgaXMgZW5hYmxlZAoKICAgIFNldmVyYWwgbm9kZSBzdHJpbmdzIHdlcmUgbm90IGNvcnJlY3QgKHRyYWlsaW5nIHNsYXNoZXMgYW5kIHByb3BlcnRpZXMKICAgICAgaW4gdGhlIHN0cmluZ3MpCiAgICBBZGRlZCBzZXR0aW5nIG9mIHRoZSB0aW1lYmFzZS1mcmVxdWVuY3kuCiAgICBJbXByb3ZlZCBlcnJvciBtZXNzYWdlcyBhbmQgdXNlIGRlYnVnKCkgaW5zdGVhZCBvZiBwcmludGYoKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNmQwMmM5YmJhYzE3NTFjNWUxOTI5NGYwMDAxMDBiNDhkNDNhOTIwCkF1dGhvcjogSmVycnkgVmFuIEJhcmVuIDxndmIudWJvb3RAZ21haWwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjE6Mjc6MzAgMjAwNyAtMDQwMAoKICAgIG1wYzgzeHg6IFJlcGxhY2UgZmR0X25vZGVfb2Zmc2V0KCkgd2l0aCBmZHRfZmluZF9ub2RlX2J5X3BhdGgoKS4KCiAgICBUaGUgbmV3IG5hbWUgbWF0Y2hlcyBtb3JlIGNsb3NlbHkgdGhlIGtlcm5lbCdzIG5hbWUsIHdoaWNoIGlzIGFsc28KICAgIGEgbXVjaCBiZXR0ZXIgZGVzY3JpcHRpb24uCgogICAgVGhlc2UgYXJlIHRoZSBtcGM4M3h4IGNoYW5nZXMgbWFkZSBuZWNlc3NhcnkgYnkgdGhlIGZ1bmN0aW9uIG5hbWUgY2hhbmdlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIEdyYW5kZWdnZXIgPHdnQGdyYW5kZWdnZXIuY29tPgogICAgQWNrZWQtYnk6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDliZTM5YTY3YzlmOGZlZjcxMDdmNWRmMDlkNjczMDA1ZjA0ZDA5NjMKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVuIDI1IDEwOjQxOjU2IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBBZGQgc3VwcG9ydCBmb3IgdGhlIGRpc3BsYXkgb2YgcmVzZXQgc3RhdHVzCgogICAgODN4eCBwcm9jZXNzb3IgZmFtaWx5IGhhcyBtYW55IHJlc2V0IHNvdXJjZXMsIHN1Y2ggYXMKICAgIHBvd2VyIG9uIHJlc2V0LCBzb2Z0d2FyZSBoYXJkIHJlc2V0LCBzb2Z0d2FyZSBzb2Z0IHJlc2V0LAogICAgSlRBRywgYnVzIG1vbml0b3IsIHNvZnR3YXJlIHdhdGNoZG9nLCBjaGVjayBzdG9wIHJlc2V0LAogICAgZXh0ZXJuYWwgaGFyZCByZXNldCwgZXh0ZXJuYWwgc29mdHdhcmUgcmVzZXQuCiAgICBzb21ldGltZXMsIHRvIGZpZ3VyZSBvdXQgdGhlIGZhdWx0IG9mIHN5c3RlbSwgd2UgbmVlZCB0bwogICAga25vdyB0aGUgY2F1c2Ugb2YgcmVzZXQgZWFybHkgYmVmb3JlIHRoZSBwcm9tcHQgb2YKICAgIHUtYm9vdCBwcmVzZW50LgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGZmOTY1OGQ3MDQ5YmY4YzhlOGUwYTA1ZGJlNWU5ZjdlOTFhYTVhNWQKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVuIDI1IDEwOjQxOjA0IDIwMDcgKzA4MDAKCiAgICBtcGM4M3h4OiBGaXggdGhlIGFsaWduIGJ1ZyBvZiBTRE1BIGJ1ZmZlcgoKICAgIEFjY29yZGluZyB0byB0aGUgbGF0ZXN0IHVzZXIgbWFudWFsLCB0aGUgU0RNQSB0ZW1wb3JhcnkKICAgIGJ1ZmZlciBiYXNlIGFkZHJlc3MgbXVzdCBiZSA0S0IgYWxpZ25lZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2NmRjMmMyZGM1MWY4Yjg4YmI4ZTIzMWJjODBjZDkyZWFlMWQ2NDc2CkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1biAyNSAxMzoyMToxMiAyMDA3ICswODAwCgogICAgbXBjODN4eDogUmV2aXNlIHRoZSBNUEM4MzYwRU1EUyByZWFkbWUgZG9jCgogICAgV2hlbiB0aGUgcmV2Mi54IHNpbGljb24gbW91bnQgb24gdGhlIE1QQzgzNjBFTURTIGJhb3JkLAogICAgYW5kIGlmIHlvdSBhcmUgdXNpbmcgdGhlIHUtYm9vdCB2ZXJzaW9uIGFmdGVyIHRoZSBjb21taXQKICAgIDNmYzBiZDE1OTEwM2I1MzZlMWM1NGM2ZjQ0NTdhMDliM2FiYTY2Y2EuCiAgICB0byBtYWtlIHRoZSBldGhlcm5ldCBpbnRlcmZhY2UgdXNhYmxlLCB3ZSBoYXZlIHRvIHNldHVwCiAgICB0aGUganVtcGVycyBjb3JyZWN0bHkuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTczOWJjOTU3OTdhYWM0ZmVmYzRjNzViNTVjN2M3OGU1OWQzZWE5YwpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMyAxMzo0NjozMiAyMDA3IC0wNTAwCgogICAgRlNMIEkyQyBkcml2ZXIgcHJvZ3JhbXMgdGhlIHR3byBJMkMgYnVzc2VzIGRpZmZlcmVudGx5CgogICAgVGhlIGkyY19pbml0KCkgZnVuY3Rpb24gaW4gZnNsX2kyYy5jIHByb2dyYW1zIHRoZSB0d28gSTJDIGJ1c3NlcyBkaWZmZXJlbnRseS4KICAgIFRoZSBzZWNvbmQgSTJDIGJ1cyBoYXMgaXRzIHNsYXZlIGFkZHJlc3MgcHJvZ3JhbW1lZCBpbmNvcnJlY3RseSBhbmQgaXMKICAgIG1pc3NpbmcgYSA1LXVzIGRlbGF5LgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRmMzNmNmI0ZDZkNjM2OTNkZDkyMDA4MDhiMjQyZGUxYjg2Y2I4ZTgKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDMgMTM6MDQ6MzQgMjAwNyAtMDUwMAoKICAgIFVwZGF0ZSBTQ0NSIHByb2dyYW1taW5nIGluIGNwdV9pbml0X2YoKSB0byBzdXBwb3J0IGFsbCA4M3h4IHByb2Nlc3NvcnMKCiAgICBVcGRhdGUgdGhlIGNwdV9pbml0X2YoKSBmdW5jdGlvbiBpbiBjcHUvbXBjODN4eC9jcHVfaW5pdC5jIHRvIHByb2dyYW0gdGhlCiAgICBiaXRmaWVsZHMgZm9yIGFsbCA4M3h4IHByb2Nlc3NvcnMuCVRoZSBjb2RlIHRvIHVwZGF0ZSBzb21lIGJpdGZpZWxkcyB3YXMKICAgIGNvbXBpbGVkIG9ubHkgb24gc29tZSBwcm9jZXNzb3JzLiAgTm93LCB0aGUgYml0ZmllbGRzIGFyZSBwcm9ncmFtbWVkIGFzIGxvbmcKICAgIGFzIHRoZSBjb3JyZXNwb25kaW5nIENGR19TQ0NSIG9wdGlvbiBpcyBkZWZpbmVkIGluIHRoZSBib2FyZCBoZWFkZXIgZmlsZS4KICAgIFRoaXMgbWVhbnMgdGhhdCB0aGUgYm9hcmQgaGVhZGVyIGZpbGUgc2hvdWxkIG5vdCBkZWZpbmUgYW55IENGR19TQ0NSIG1hY3JvcwogICAgZm9yIGJpdGZpZWxkcyB0aGF0IGRvbid0IGV4aXN0IG9uIHRoYXQgcHJvY2Vzc29yLCBvdGhlcndpc2UgdGhlIFNDQ1Igd2lsbCBiZQogICAgcHJvZ3JhbW1lZCBpbmNvcnJlY3RseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5NTQ2MjY2OTk5ZjBiOWI1MTM3MjYzNjYxNDIxMWI4OGQ5MGYwZjI1CkF1dGhvcjogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CkRhdGU6CUZyaSBKdW4gMjIgMTM6MDQ6MjIgMjAwNyArMDIwMAoKICAgIFRRTTgzNHg6IGNsZWFudXAgY29uZmlndXJhdG9uCgogICAgUmVtb3ZlIGlycml0YXRpbmcgI3VuZGVmIERFQlVHCgogICAgU2lnbmVkLW9mZi1ieTogTWFydGluIEtyYXVzZSA8bWFydGluLmtyYXVzZUB0cXMuZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVkNDk3ZTZiZjBmNWJmNjM3MjliNGE0N2IzZmQ3ODZkM2M3N2ExYmMKQXV0aG9yOiBkYXZpZC5zYWFkYSA8RGF2aWQuU2FhZGFAZWNpdGVsZS5jb20+CkRhdGU6CU1vbiBKdW4gMTggMDk6MDk6NTMgMjAwNyAtMDcwMAoKICAgIE1QQzgzeHg6IEZpeCBtYWtlZmlsZSB0byBnZW5lcmF0ZSBjb25maWcuaCBmaWxlIGluIHRoZSBidWlsZCBkaXJlY3RvcnkKCiAgICBNUEM4M3h4OiBGaXggdGhlIE1ha2VmaWxlIGNvbmZpZyBzZWN0aW9ucyB0byBnZW5lcmF0ZSB0aGUgaW5jbHVkZS9jb25maWcuaAogICAgZmlsZSBpbiB0aGUgYnVpbGQgZGlyZWN0b3J5IGluc3RlYWQgb2YgdGhlIHNvdXJjZSBkaXJlY3RvcnkuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgU2FhZGEgPGRhdmlkLnNhYWRhQGVjaXRlbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxZGVkMDI0MmU0MzcyNTkzNjY3OTJkNTJiN2U5ZDFlMTkzMWQ4ZmE1CkF1dGhvcjogTGVlIE5pcHBlciA8TGVlLk5pcHBlckBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVuIDE0IDIwOjA3OjMzIDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiBBZGQgc3VwcG9ydCBmb3IgODM2MCBzaWxpY29uIHJldmlzaW9uIDIuMQoKICAgIFRoaXMgY2hhbmdlIGFkZHMgODM2MCBzaWxpY29uIHJldmlzaW9uIDIuMSBzdXBwb3J0IHRvIHUtYm9vdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMZWUgTmlwcGVyIDxsZWUubmlwcGVyQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGEyMjgwNjQ2OWE4ZjJiNjljODI5ZjRmZDUzNjFmZGViZDBjYjAxYjQKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglXZWQgQXVnIDggMDQ6MTQ6MjggMjAwNyAtMDUwMAoKICAgIFRyZWF0IHBwYzY0IGhvc3QgYXMgcHBjCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCAwZGM0Mjc5YjA4ZmY4MjQ3MmJlYzJlMmM5MDg1ODYwMjQ1OWZlYmU4CkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyA4IDA5OjAxOjQ2IDIwMDcgKzA4MDAKCiAgICBNaW5vciBmaXggZm9yIGJpb3MgZW11bGF0b3IgbWFrZWZpbGUKCiAgICBBZGQgJChvYmopIHRvIExJQiBhdm9pZGluZyBvYmplY3RzIGJlIGJ1aWx0IGluIHRoZSBzb3VyY2UgZGlyCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjZTk4MWRjODU3YWRmYzgwMzZjYTJmNmQ1ZDVhMDZjMmE4YWE3N2Q2CkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyA4IDA4OjMzOjExIDIwMDcgKzA4MDAKCiAgICBBZGQgQ09ORklHX0JJT1NFTVUgZGVmaW5lIHRvIGd1YXJkIGFsbCB0aGUgYmlvcyBlbXVsYXRvciBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCiAgICBUaGlzIHBhdGNoIGZpeCB0aGUgY29tcGlsZSBpc3N1ZSBvbiB0aGUgYm9hcmQgdGhhdCBkaWQgbm90IGVuYWJsZSB0aGUgYmlvcyBlbXVsYXRvcgoKY29tbWl0IGVkODEwNjQzMzUyMmYyZWE4OTMzZTk4MDgzNDY4NjBkMDYxZDc3MzEKQXV0aG9yOiBaYWNoIFNhZGVja2kgPFphY2guU2FkZWNraUByaXBjb2RlLmNvbT4KRGF0ZToJVHVlIEp1bCAzMSAxMjoyNzoyNSAyMDA3IC0wNTAwCgogICAgdHNlYzogZml4IG11bHRpcGxlIFBIWSBzdXBwb3J0CgogICAgVGhlIGNoYW5nZSBlbnRpdGxlZCAiUmVkdWNlIENPTkZJR19NUEM4WVhYX1RTRUN4IHRvIENPTkZJR19UU0VDeCIKICAgIGJyb2tlIG11bHRpcGxlIFBIWSBzdXBwb3J0IGluIHRzZWMuYy4gIFRoaXMgZml4ZXMgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogWmFjaCBTYWRlY2tpIDxaYWNoLlNhZGVja2lAcmlwY29kZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRjYjg0YjcyMDhhZGUwYmJlYmJlYjU2YmVjOWMyYzY0ZjhiMmVlZGUKQXV0aG9yOiBKb2UgSGFtbWFuIDxqb2UuaGFtbWFuQGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tPgpEYXRlOglUaHUgQXVnIDkgMDk6MDg6MTggMjAwNyAtMDUwMAoKICAgIHRzZWM6IEFsbG93IFRlbiBCaXQgSW50ZXJmYWNlIGFkZHJlc3MgdG8gYmUgY29uZmlndXJhYmxlCgogICAgQWxsb3cgdGhlIGFkZHJlc3Mgb2YgdGhlIFRlbiBCaXQgSW50ZXJmYWNlIChUQkkpIHRvIGJlIGNoYW5nZWQgaW4gdGhlCiAgICBldmVudCBvZiBhIGNvbmZsaWN0IHdpdGggYW5vdGhlciBkZXZpY2UuCgogICAgU2lnbmVkLW9mZiBieTogSm9lIEhhbW1hbiA8am9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbT4KCmNvbW1pdCAzYmE0YzJkNjhmNjU0MWRiNDY3N2I0YWVhMTIwNzFmNTZlNmZmNmU2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgQXVnIDggMDk6NTQ6MjYgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGE0MWRlMWYwZDM3M2UwOWM3ODJkZWE1NTgzODVhMDYyNDcxMTFiYTUKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBBdWcgNSAwNToxNToxOCAyMDA3IC0wNTAwCgogICAgUG9ydCBlbmFibGVkIGZvciBJMkMgc2lnbmFscyBhbmQgY2hpcHNlbGVjdHMgcG9ydCBjb25maWd1cmF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxYTMzY2U2NWE0YzUxYTY5MTkwZGQ4YzQwOGY5ZTFjNjJhNjZlOTRmCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gQXVnIDUgMDQ6MzE6MTggMjAwNyAtMDUwMAoKICAgIEFkZGVkIE5BTkQgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlYWY5ZTQ0N2JlYjNlNDk4ODE4ZWY4YWQwYjhjMTU5N2NkNTA2MTQ5CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gQXVnIDUgMDQ6MTE6MjAgMjAwNyAtMDUwMAoKICAgIEFkZGVkIEkyQyBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk5YzAzYzE3NWQyNjg5MDkzMTc2ZmFjZjE3YzU4Y2UyY2IzMjAwMDEKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBBdWcgNSAwMzo1ODo1MiAyMDA3IC0wNTAwCgogICAgQ2hhbmdlZCBDRkdfQ0xLIHRvIGdkLT5idXNfY2xrIGZvciBDRkdfVElNRVJfUFJFU0NBTEVSLiBBZGRlZCBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUiBmb3IgdGltZS5jCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhkMWQ2NmFmNTRkMzA1ZGUyOWQwYmJmNGFhOGM5ZTYzNzVmN2Y3MzEKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBBdWcgNSAwMzo1NToyMSAyMDA3IC0wNTAwCgogICAgQWRkZWQgdWFydF9ncGlvX2NvbmYoKSBpbiBzZXJpYWxfaW5pdCgpLCBzZXBlcmF0ZWQgdWFydCBwb3J0IGNvbmZpZ3VyYXRpb24gZnJvbSBjcHVfaW5pdCgpIHRvIHVhcnRfZ3Bpb19jb25mKCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmZkZTg0YTQ0YjdlNTc1ZWE4MGZlMGUyZDViZTNiNmY3M2QxZTYzMApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEF1ZyA1IDAzOjQzOjMwIDIwMDcgLTA1MDAKCiAgICBNb3ZlZCBzeW5jKCkgZnJvbSBib2FyZCBmaWxlIHRvIGluY2x1ZGUvYXNtLW02OGsvaW8uaAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5ZTczN2Q4NDc2ZTdkNmE1OTZkMTZjYWFmNmEzODUzYTlhMTE5MGEyCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gQXVnIDUgMDM6MzA6NDQgMjAwNyAtMDUwMAoKICAgIERlY2xhcmVkIGF0dHJpYnV0ZXMgb2Ygdm9pZCBfX21paV9pbml0KHZvaWQpIGFzIGFuIGFsaWFzIGZvciBpbnQgbWlpX2luaXQodm9pZCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTk5OGJkMzdlYWQ4NWU5Mzk1MzU1OTcyMDcxMGQzYjA2ODVjODFlNgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEF1ZyA1IDAzOjE5OjEwIDIwMDcgLTA1MDAKCiAgICBSZW5hbWVkIENPTkZJR19NQ0ZTRVJJQUwgdG8gQ09ORklHX01DRlVBUlQKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2M0YzM3MjJhMzhkNDBiMGNmNTM3ZGRhZTcyYjA0ZjQwODhiMTkwYwpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgNyAxNjoxNzowNiAyMDA3ICswODAwCgogICAgQWRkIENPTkZJR19CSU9TRU1VIGRlZmluZSB0byBndWFyZCBhbGwgdGhlIGJpb3MgZW11bGF0b3IgY29kZQoKICAgIFRoaXMgcGF0Y2ggZml4IHRoZSBjb21waWxlIGlzc3VlIG9uIHRoZSBib2FyZCB0aGF0IGRpZCBub3QgZW5hYmxlIHRoZSBiaW9zIGVtdWxhdG9yCgpjb21taXQgYmYxMDYwZWE0ZjllYWE3ZTdkMTY0YTcwYTdkNmYyODkzOTg4MjA1MwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBBdWcgNyAxNjowMjoxMyAyMDA3ICswMjAwCgogICAgRml4IG1pc3NpbmcgYnJhY2UgZXJyb3IgaW4gZnMvZmF0L2ZhdC5jCiAgICBbcG9pbnRlZCBvdXQgYnkgUm9kZXJpayBXaWxkZW5idXJnXQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNzA2NzE0ZDk3YTBkMDhkNTllZGE0ZGUyMjY4YzM5ZjUwNDY4ODMyOQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIEF1ZyA2IDIzOjQxOjUzIDIwMDcgKzAyMDAKCiAgICBbRklYXSByZW1vdmUgY3V0ZSBjb2RlCgpjb21taXQgZjUwMGQ5ZmRlYjU3NjI4ODY1NmRhYzQyNzA1MmFkMmM1Y2EwYWQxYQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIEF1ZyA2IDIzOjM1OjI2IDIwMDcgKzAyMDAKCiAgICBbRklYXSBGaXggcm9tZnMgY29kZQoKY29tbWl0IGFiNGI5NTZkMzE0M2Y4ZjgxNzQwODkwNTNmNWRmYWJiYjA0NzYyYjAKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBBdWcgNiAyMzozMTo0OSAyMDA3ICswMjAwCgogICAgW0ZJWF0gQ29kaW5nIHN0eWxlIGNsZWFudXAgLSBXb2xmZ2FuZydzIHN1Z2dlc3Rpb25zCgpjb21taXQgNmMzM2M3ODU1N2NhNmY4ZGE2OGMwMWNlMzNlMjc4Njk1MTk3ZDNmNApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBBdWcgNiAyMzoyMTowNSAyMDA3ICswMjAwCgogICAgRml4ZWQgdHlwbyBpbiBSRUFETUUgKHBvaW50ZWQgb3V0IGJ5IE1hcnRpbiBKb3N0KS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDUzNzIyM2FmYTYxZjY0NDgwZGYzMWNlNDQwYTljYjM4NmRmNGE4MTQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBBdWcgNiAyMToxMDoxNyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgQU1DQyBCYW1ib28gUkVBRE1FIGRvYy9SRUFETUUuYmFtYm9vCgogICAgQXMgc3VnZ2VzdGVkIGJ5IEV1Z2VuZSBPJ0JyaWVuIDxFdWdlbmUuTydCcmllbkBhZHZhbnRlY2hhbXQuY29tPiwKICAgIGhlcmUgYW4gdXBkYXRlZCBCYW1ib28gUkVBRE1FLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5YzdlNGIwNjIxNGRiNjFiYjIxZjFiY2JlNTdjOTc1MTk2NjliYWFlCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJTW9uIEF1ZyA2IDAyOjE3OjM2IDIwMDcgKzAyMDAKCiAgICBDb2Rpbmcgc3R5bGUgY2xlYW51cC4gVXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDIyMTgzOGNjN2ViMTc4MzcwZmY2MmFhMDU5MjBhNTgyZTEyYWMzMjIKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDA5OjAzOjIyIDIwMDcgKzA4MDAKCiAgICBSZW1vdmUgdGhlIGJpb3MgZW11bGF0b3IgZnJvbSBNQUkgYm9hcmQuCgogICAgVGhlIGJpb3MgZW11bGF0b3IgaW4gdGhlIE1BSSBib2FyZCBjYW4gbm90IHBhc3MgY29tcGlsZQogICAgYW5kIGhhdmUgYSBsb3Qgb2YgY3JhcCBpbiBpdC4gcmVtb3ZlIGl0IGFuZCB3aWxsIGhhdmUgYQogICAgY2xlYW4gYW5kIHNtYWxsIGJpb3MgZW11bGF0b3IgaW4gdGhlIGRyaXZlcnMgZGlyZWN0b3J5CiAgICB3aGljaCBjYW4gYmUgdWVzZWQgZm9yIGV2ZXJ5IGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTYxODMzMjQwOWJiOTZmNDQ0OGQxNzEyODk5MzY5ZmM4MGMwYjQ4OQpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMTMgMTI6MTQ6NTkgMjAwNyArMDgwMAoKICAgIEZpeCBzb21lIGNvbXBpbGUgaXNzdWVzIGZvciBNQUkgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZjQ2MGExZWUxNDhiNjQ4ZWUyNDJjMzE1NzY1MDI4N2Q0Mjk2MjYwCkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAxMyAxMjoxNDo1OCAyMDA3ICswODAwCgogICAgQ29uZmlndXJhdGlvbnMgZm9yIEFUSSB2aWRlbyBjYXJkIEJJT1MgZW11bGF0b3IKCiAgICBUaGlzIHBhdGNoIGFkZCBkZWZpbml0aW9uIG9mIHRoZSBCSU9TIGVtdWxhdG9yIGFuZCB0aGUgQVRJIGZyYW1lYnVmZmVyCiAgICBkcml2ZXIgZm9yIE1QQzg2NDFIUENOIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGVjZTkyZjg1MDUzYjhkZjYxM2VkY2YwNWIyNmE0MTZjYmMzZDYyOWMKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDYgMDg6MzQ6NTYgMjAwNyArMDgwMAoKICAgIFRoaXMgaXMgYSBCSU9TIGVtdWxhdG9yLCBwb3J0aW5nIGZyb20gU2NpVGVjaCBmb3IgdS1ib290LCBtYWlubHkgZm9yCiAgICBBVEkgdmlkZW8gY2FyZCBCSU9TLiBhbmQgY2FuIGJlIHVzZWQgZm9yIHg4NiBjb2RlIGVtdWxhdGlvbiBieSBzb21lCiAgICBtb2RpZmljYXRpb25zLgoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTA3MjE4OGFjYWJkZTMxNzhmYWM3ZjVhNTk3MTUwZTZlNzRmZDQwYwpBdXRob3I6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgNiAwODozMzozMyAyMDA3ICswODAwCgogICAgVGhpcyBpcyBhIGZyYW1lYnVmZmVyIGRyaXZlciBmb3IgQVRJIHZpZGVvIGNhcmQsIGNhbiB3b3JrIGZvciBQQ0k5MjAwLAogICAgWDMwMCwgWDcwMCwgWDgwMCBBVEkgdmlkZW8gY2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTcyOGJlMzg5ZTY1ZmQ0N2YzNGIzM2MyNTk2MjcxZWI0ZGI3NTFhZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBBdWcgNiAwMTowMTo0OSAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAuIFVwZGF0ZSBDSEFOR0VMT0cuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4MDkyZmVmNGMyOWIzOTU5NThiYjY0OTY0N2RhN2UzNzc1NzMxNTE3CkF1dGhvcjogTWFydGluIEtyYXVzZSA8TWFydGluLktyYXVzZUB0cXMuZGU+CkRhdGU6CVR1ZSBEZWMgMTIgMTQ6MjY6MDEgMjAwNiArMDEwMAoKICAgIEFkZCBmdW5jdGlvbnMgdG8gbGlzdCBvZiBleHBvcnRlZCBmdW5jdGlvbnMKCiAgICBBZGRpdGlvbmFsbHkgZXhwb3J0IHRoZSBmb2xsb3dpbmcgZnVjdGlvbnMgKHRvIG1ha2UgdHJhYl9jb25maWcgYnVpbGQgYWdhaW4pOgogICAgLSBzaW1wbGVfc3RydG9sKCkKICAgIC0gc3RyY21wKCkKCiAgICBBbHNvIGJ1bXAgdGhlIEFCSSB2ZXJzaW9uIHRvIHJlZmxlY3QgdGhpcyBjaGFuZ2UKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gS3JhdXNlIDxtYXJ0aW4ua3JhdXNlQHRxcy5kZT4KCmNvbW1pdCA2M2NlYzU4MTRmYWI1ZDJiMWM4Njk4MjMyNzQzMzgwN2E1YWMwMjQ5CkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAyIDE0OjA5OjQ5IDIwMDcgLTA1MDAKCiAgICBNYWtlIE1QQzg2NDEncyBQQ0kvUENJLUUgZHJpdmVyIGEgY29tbW9uIGRyaXZlciBmb3IgbWFueSBGU0wgcGFydHMuCgogICAgQWxsIG9mIHRoZSBQQ0kvUENJLUV4cHJlc3MgZHJpdmVyIGFuZCBpbml0aWFsaXphdGlvbiBjb2RlIHRoYXQKICAgIHdhcyBpbiB0aGUgTVBDODY0MUhQQ04gcG9ydCBoYXMgbm93IGJlZW4gbW92ZWQgaW50byB0aGUgY29tbW9uCiAgICBkcml2ZXJzL2ZzbF9wY2lfaW5pdC5jLiAgSW4gYSBzdWJzZXF1ZW50IHBhdGNoLCB0aGlzIHdpbGwgYmUKICAgIHV0aWxpemVkIGJ5IHRoZSA4NXh4IHBvcnRzIGFzIHdlbGwuCgogICAgQ29tbW9uIFBDSS1FIElNTUFQIHJlZ2lzdGVyIGJsb2NrcyBmb3IgRlNMIDg1eHgvODZ4eCBhcmUgYWRkZWQuCgogICAgQWxzbyBlbmFibGUgdGhlIHNlY29uZCBQQ0ktRXhwcmVzcyBjb250cm9sbGVyIG9uIDg2NDEKICAgIGJ5IGdldHRpbmcgaXRzIEJBVFMgYW5kIENGR18gc2V0dXAgcmlnaHQuCgogICAgRml4ZWQgYSB1MTYgdmVuZG9yIGNvbXBpbGVyIHdhcm5pbmcgaW4gQUhDSSBkcml2ZXIgdG9vLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhMjc0Y2E0ZjZkNjg4MzBlN2M5MTZmODk3NTYxY2ZmOGM0MTAxYzM4CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTdW4gQXVnIDUgMjI6MzM6MDUgMjAwNyArMDIwMAoKICAgIFtGSVhdIENvZGluZyBzdHlsZSBjbGVhbnVwCgpjb21taXQgYWY4Mzc3ZDRlYjNhMGFjNWE4MzE4MzBkNWNlNjNmYmY2NWZlY2I3ZgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU3VuIEF1ZyA1IDE2OjEzOjMxIDIwMDcgKzAyMDAKCiAgICBbRklYXSBYaWxpbnggVWFydGxpdGUgZHJpdmVyCiAgICBCZWNhdXNlIFBQQzQwNSBjYW4gdXNlIFVBUlRMSVRFIHNlcmlhbCBpbnRlcmZhY2UgYW5kCiAgICBNaWNyb2JsYXplIGNhbiB1c2UgVWFydDE2NTUwIHNlcmlhbCBpbnRlcmZhY2Ugbm90IG9ubHkgVWFydGxpdGUuCgpjb21taXQgOTg4ODllZGQ1MGFhZGY4NjIwNzFlYjU2NjQ3NDdhZDBkNTY4YTIwZQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU3VuIEF1ZyA1IDE1OjU0OjUzIDIwMDcgKzAyMDAKCiAgICBbRklYXSBDaGFuZ2UgY29uZmlndXJhdGlvbiBmb3IgWFVQVjJQIE1pY3JvYmxhemUgYm9hcmQKCmNvbW1pdCA1MzcwOTFiNGVlZDkzMDI4NjVkMDNmZWYzZjcyMTJiNGZlNWNmMjhmCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTdW4gQXVnIDUgMTU6NTM6NTAgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gQWRkZWQgc3VwcG9ydCBmb3IgWGlsaW54IEVtYWMgY29tbXVuaXR5IGRyaXZlcgoKY29tbWl0IDg2YjExNmIxYjFlMTY1Y2E0ODQwZGFlZmVkMzZkMmUzYjg0NjAxNzMKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgQXVnIDMgMTI6MDg6MTYgMjAwNyArMDIwMAoKICAgIGNtMV9xcDEgLT4gY201MjAwOiBzaW5nbGUgVS1Cb290IGltYWdlIGZvciBtb2R1bGVzIGZyb20gdGhlIGNtNTIwMCBmYW1pbHkuCgogICAgQWRkIHRoZSBhYmlsaXR5IGZvciBtb2R1bGVzIGZyb20gdGhlIFNjaGluZGxlciBjbTUyMDAgZmFtaWx5IHRvIHVzZSBhCiAgICBzaW5nbGUgVS1Cb290IGltYWdlOgogICAgLSByZW5hbWUgY20xX3FwMSB0byBjbTUyMDAKICAgIC0gYWRkIHJ1bi10aW1lIG1vZHVsZSBkZXRlY3Rpb24KICAgIC0gcGFyYW1ldHJpemUgU0RSQU0gY29uZmlndXJhdGlvbiBhY2NvcmRpbmcgdG8gdGhlIG1vZHVsZSB3ZSBhcmUgcnVubmluZyBvbgoKICAgIEZldyBtaW5vciwgYm9hcmQtc3BlY2lmaWMgZml4ZXMgaW5jbHVkZWQgaW4gdGhpcyBwYXRjaDoKICAgIC0gYmV0dGVyIE1BQyBhZGRyZXNzIGhhbmRsaW5nCiAgICAtIHVwZGF0ZWQgZGVmYXVsdCBlbnZpcm9ubWVudCAoJ3VwZGF0ZScgY29tbWFuZCB1c2VzICt7ZmlsZXNpemV9IG5vdykKICAgIC0gaW1wcm92ZWQgZXJyb3IgbWVzc2FnZXMgaW4gdGhlIGF1dG8tdXBkYXRlIGNvZGUKICAgIC0gYWxsb3cgYm9vdGluZyBVLUJvb3QgZnJvbSBSQU0gKENGR19SQU1CT09UKQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUGlvdHIgS3J1c3p5bnNraSA8cHBrQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgYzdlNzE3ZWJjMmIwNDRkN2E3MTA2MjU1MmM5ZGMwZjU0ZWE5Yjc3OQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEF1ZyAzIDA0OjA1OjI1IDIwMDcgLTA1MDAKCiAgICBBZGQgTWFydmVsbCAxMTQ5IFBIWSBzdXBwb3J0IHRvIHRoZSBUU0VDCgpjb21taXQgYjFiNTRlMzUyMDI4ZWQzNzBjM2FhOTVkNmZkZWI5ZDY0YzVkMmY4NgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMiAyMToyNzo0NiAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAsIHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDYzZTIyNzY0ZDJmODY1M2Y2ODg4OGM2NjdlYjY1YjM5OTZiNTI2ODAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgQXVnIDIgMTA6MTE6MTggMjAwNyArMDIwMAoKICAgIE1pbm9yIGNsZWFudXAgb2YgPGJvYXJkPl9uYW5kIGJ1aWxkIHJ1bGVzLgoKY29tbWl0IDljYThkNzlkZTA5NmM2NWI5YjljODY3MjU5YjNmZjQ2ODVmNzc1ZWYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBBdWcgMiAwODozMzo1NiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBDb2RlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYzkyNDA5ODEyMjA2YWM2N2E3ZmE3YWFlMjk4NTM5YTljMzgwNGE0NgpBdXRob3I6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSnVsIDMxIDE4OjUxOjQ4IDIwMDcgKzAyMDAKCiAgICBbcHBjNDQwU1BlXSBHcmFjZWZ1bCByZWNvdmVyeSBmcm9tIG1hY2hpbmUgY2hlY2sgZHVyaW5nIFBDSWUgY29uZmlndXJhdGlvbgoKICAgIER1cmluZyBjb25maWcgdHJhbnNhY3Rpb25zIG9uIHRoZSBQQ0llIGJ1cyBhbiBhdHRlbXB0IHRvIHNjYW4gZm9yIGEKICAgIG5vbi1leGlzdGVudCBkZXZpY2UgY2FuIGxlYWQgdG8gYSBtYWNoaW5lIGNoZWNrIGV4Y2VwdGlvbiB3aXRoIGNlcnRhaW4KICAgIHBlcmlwaGVyYWwgZGV2aWNlcy4gSW4gb3JkZXIgdG8gYXZvaWQgY3Jhc2hpbmcgaW4gc3VjaCBzY2VuYXJpb3MgdGhlCiAgICBpbnN0cnVtZW50ZWQgdmVyc2lvbnMgb2YgdGhlIGNvbmZpZyBjeWNsZSByZWFkIHJvdXRpbmVzIGFyZSBpbnRyb2R1Y2VkLCBzbwogICAgdGhlIGV4Y2VwdGlvbnMgZml4dXBzIGZyYW1ld29yayBjYW4gZ3JhY2VmdWxseSByZWNvdmVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyemVnb3J6IEJlcm5hY2tpIDxnamJAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+Cgpjb21taXQgZGVjOTk1NThiOWVhNzVhMzc5NDBkMDdmNDFhMzU2NWE1MGI1NGFkMQpBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKdWwgMzEgMTg6MTk6NTQgMjAwNyArMDIwMAoKICAgIFtwcGM0eHhdIFNlcGFyYXRlIHNldHRpbmdzIGZvciBQQ0llIGJ1cyBudW1iZXJpbmcgb24gNDQwU1BlIHJldi5BCgogICAgVGhpcyBicmluZ3MgYmFjayBzZXBhcmF0ZSBzZXR0aW5ncyBmb3IgUENJZSBidXMgbnVtYmVycyBkZXBlbmRpbmcgb24gY2hpcAogICAgcmV2aXNpb24sIHdoaWNoIGdvdCBlbGltaW5hdGVkIGluIDJiMzkzYjBmMGFmODQwMmVmNDNiMjVjMTk2OGJmZDI5NzE0ZGRmZmEKICAgIGNvbW1pdC4gNDQwU1BlIHJldi4gQSBkb2VzIE5PVCB3b3JrIHByb3Blcmx5IHdpdGggdGhlIHNhbWUgc2V0dGluZ3MgYXMgZm9yCiAgICB0aGUgcmV2LiBCIChubyBkZXZpY2VzIGFyZSBzZWVuIG9uIHRoZSBidXMgZHVyaW5nIGVudW1lcmF0aW9uKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgoKY29tbWl0IGNkZDkxN2E0M2RhNmZhN2ZjOGY1NGEzY2M5ZjQyMGNlNWVjZjMxOTcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgQXVnIDIgMDA6NDg6NDUgMjAwNyArMDIwMAoKICAgIEZpeCBidWlsZCBlcnJvcnMgYW5kIHdhcm5pbmdzIC8gY29kZSBjbGVhbnVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZDJmNjgwMDY2MjdlZGE2Y2I2YzdmMzY0YmRkZjYyMWRiZmQyZmM2OApBdXRob3I6IEV1Z2VuZSBPQnJpZW4gPGV1Z2VuZS5vYnJpZW5AYWR2YW50ZWNoYW10LmNvbT4KRGF0ZToJVHVlIEp1bCAzMSAxMDoyNDo1NiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgQU1DQyBCYW1ib28gNDQwRVAgc3VwcG9ydAoKICAgIENoYW5nZWQgc3RvcmFnZSB0eXBlIG9mIGNmZ19zaW11bGF0ZV9zcGRfZWVwcm9tIHRvIGNvbnN0CiAgICBDaGFuZ2VkIHN0b3JhZ2UgdHlwZSBvZiBncGlvX3RhYiB0byBzdGFjayBzdG9yYWdlCiAgICAoQ2Fubm90IGFjY2VzcyBnbG9iYWwgZGF0YSBkZWNsYXJhdGlvbnMgaW4gLmJzcyB1bnRpbCBhZmVyIGNvZGUgcmVsb2NhdGlvbikKCiAgICBJbXByb3ZlZCBTRFJBTSB0ZXN0cyB0byBjYXRjaCBwcm9ibGVtcyB3aGVyZSBkYXRhIGlzIG5vdCB1bmlxdWVseSBhZGRyZXNzYWJsZQogICAgKGUuZy4gaW5jb3JyZWN0bHkgcHJvZ3JhbW1lZCBTRFJBTSByb3cgb3IgY29sdW1ucykKCiAgICBBZGRlZCBDT05GSUdfUFJPR19TRFJBTV9UTEIgdG8gc3VwcG9ydCBCYW1ib28gU0lNTS9ESU1NIG1vZHVsZXMKICAgIEZpeGVkIEFNMjlMVjMyMERUIChPcENvZGUgRmxhc2gpIHNlY3RvciBtYXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBFdWdlbmUgT0JyaWVuIDxldWdlbmUub2JyaWVuQGFkdmFudGVjaGFtdC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWE5ZjZiY2UzODNjYzlmYmNkZWUyOGI1ODM2MTA5YjFhNmRiYTU3NApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEp1bCAzMSAwODozNzowMSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgNDQwRVB4IGx3bW9uNSBib2FyZCBzdXBwb3J0CgogICAgLSBDbGVhciBFQ0Mgc3RhdHVzIHJlZ3MgYWZ0ZXIgRUNDIFBPU1QgdGVzdAogICAgLSBTZXQgZGNieiBmb3IgRUNDIGdlbmVyYXRpb24gd2l0aCBjYWNoZXMgZW5hYmxlZCBhcyBkZWZhdWx0CiAgICAtIENvZGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyN2E1MjhmYjQxNDMzYzRjMWUyYjVkNmJkM2ZkOGQ3ODYwNmZjNzI0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gSnVsIDMwIDExOjA0OjU3IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IE9ubHkgcHJpbnQgRUNDIHJlbGF0ZWQgaW5mbyB3aGVuIHRoZSBlcnJvciBiaXMgYXJlIHNldAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlMzYyMjBhNGJhZjFmMTg4YmE2MGYxN2U5ZDBmMDQzMDY5YjEzNjJhCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CUZyaSBKdWwgMjcgMTY6NDQ6MzEgMjAwNyArMDIwMAoKICAgIG5ldyBGUEdBIGltYWdlIGZvciBQTFU0MDUgYm9hcmQKCiAgICBuZXcgRlBHQSBpbWFnZSBmb3IgUExVNDA1IGJvYXJkIHdpdGggaW1wcm92ZWQgQ29tcGFjdEZsYXNoIHRpbWluZwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDg5OTNlNTRiNmYzOTc5NzM3OTRmM2Q2ZjQ3ZDNiM2MwYzk4ZGQ0ZjYKQXV0aG9yOiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgSnVsIDI3IDE0OjQzOjU5IDIwMDcgKzAyMDAKCiAgICBbQURTNTEyMV0gU3VwcG9ydCBmb3IgdGhlIEFEUzUxMjEgYm9hcmQKCiAgICBUaGUgZm9sbG93aW5nIE1QQzUxMjFlIHN1YnN5c3RlbXMgYXJlIHN1cHBvcnRlZDoKCiAgICAtIGxvdy1sZXZlbCBDUFUgaW5pdAogICAgLSBOT1IgQm9vdCBGbGFzaCAoY29tbW9uIENGSSBkcml2ZXIpCiAgICAtIEREUiBTRFJBTQogICAgLSBGRUMKICAgIC0gSTJDCiAgICAtIFdhdGNoZG9nCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSmFuIFdyb2JlbCA8d3JyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCAxODYzY2ZiN2IxMDBiYTBlZTM0MDE3OTk0NTdhMDFkYzA1ODc0NWY4CkF1dGhvcjogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEp1bCAyNyAxNDoyMjowNCAyMDA3ICswMjAwCgogICAgW1BQQ10gUmVtb3ZlIHVudXNlZCBNU1JfVVNFUiBkZWZpbml0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogUmFmYWwgSmF3b3Jvd3NraSA8cmFqQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBkNDAyNGJiNzJkZDgxNjk1ZWMwOTliMjE5OWVkYTBkMjdjNjIzZTYyCkF1dGhvcjogSm9obiBPdGtlbiA8am9obkBzb2Z0YWR2YW5jZXMuY29tPgpEYXRlOglUaHUgSnVsIDI2IDE3OjQ5OjExIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBzdXBwb3J0IGZvciBBTUNDIDQwNUVQIFRhaWh1IGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBPdGtlbiA8am9obkBzb2Z0YWR2YW5jZXMuY29tPgoKY29tbWl0IGI2NjA5MWRlNmM3MzkwNjIwMzEyYzI1MDFkYjIzZDgzOTFlN2NhYmIKQXV0aG9yOiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CkRhdGU6CVRodSBKdWwgMjYgMTU6MDg6MDEgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogbHdtb241OiBVcGRhdGUgTGltZSBpbml0aWFsaXphdGlvbgoKICAgIENoYW5nZSBMaW1lIFNEUkFNIGluaXRpYWxpemF0aW9uIHRvIG5vdyBzdXBwb3J0IDEwME1IeiBhbmQKICAgIDEzM01IeiAoaWYgZW5hYmxlZCkuIEFsc28gdGhlIGZyYW1lYnVmZmVyIGlzIGluaXRpYWxpemVkIHRvCiAgICBkaXNwbGF5IGEgYmx1ZSByZWN0YW5nbGUgd2l0aCBhIHdoaXRlIGJvcmRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmF0b2xpaiBHdXN0c2NoaW4gPGFndXN0QGRlbnguZGU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOWYyNGE4MDhmMTdmYzBmMzdiN2ZiNDgwNWY3MzQ3NDEzMzVjYWVjYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEp1bCAyNCAwOTo1Mjo1MiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBsd21vbjU6IFN1cHBvcnQgZm9yIDEyOCBNQnl0ZSBOT1IgRkxBU0ggYWRkZWQKCiAgICBUaGUgdXNlZCBJbnRlbCBOT1IgRkxBU0ggY2hpcHMgaGF2ZSBpbnRlcm5hbGx5IHR3byBkaWVzLCBhbmQgYXJlIG5vdwogICAgdHJlYXRlZCBhcyB0d28gc2VwZXJhdGUgY2hpcHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGFlZGY1YmRlMTc5ZWNmYmQwYTk2MTMwZDE4OTk2YTk2NTE4Yjc4NWYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKdWwgMjQgMDc6MjA6MDkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4IGx3bW9uNSBpbnRlcnJ1cHQgY29udHJvbGxlciBzZXR1cCAocG9sYXJpdHksIHRyaWdnZXIuLi4pCgogICAgQXMgc3VnZ2VzdGVkIGJ5IEhha2FuIEVyeWlnaXQsIGhlcmUgYW4gdXBkYXRlZCBzZXR1cCBmb3IgdGhlIGx3bW9uNQogICAgaW50ZXJydXB0IGNvbnRyb2xsZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGE3MWQ5NmVhYzgxMzBiNTNhOTFmOTNjZDEwYzcwZmNhMGRiMThkNTIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdWwgMjAgMTU6MDM6NDQgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4IGJ1ZyB3aXRoIGRlZmF1bHQgR1BJTyBvdXRwdXQgdmFsdWUKCiAgICBBcyBzcG90dGVkIGJ5IE1hdHRoaWFzIEZ1Y2hzLCB0aGUgZGVmYXVsdCBvdXRwdXQgdmFsdWVzIGZvciBhbGwgR1BJTzEKICAgIG91dHB1dHMgd2VyZSBub3Qgc2V0dXAgY29ycmVjdGx5LiBUaGlzIHBhdGNoIGZpeGVzIHRoaXMgaXNzdWUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDUzMWUzZThiODMxZjM1NzA1NjQ0OGZhNTczMTM3ZDVmYjM3MDAwZmQKQXV0aG9yOiBQYXZlbCBLb2xlc25pa292IDxjb25jb3JkQGVtY3JhZnQuY29tPgpEYXRlOglGcmkgSnVsIDIwIDE1OjAzOjAzIDIwMDcgKzAyMDAKCiAgICBQT1NUOiBBZGQgRUNDIFBPU1QgZm9yIHRoZSBsd21vbjUgYm9hcmQKCiAgICBUaGlzIHBhdGNoIGFkZHMgRUNDIFBvc3QgdGVzdCBmb3IgdGhlIEx3bW9uNSBib2FyZCBiYXNlZAogICAgb24gUFBDNDQwRVB4IHRvIFUtQm9vdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQYXZlbCBLb2xlc25pa292IDxjb25jb3JkQGVtY3JhZnQuY29tPgogICAgQWNrZWQtYnk6IFl1cmkgVGlraG9ub3YgPHl1ckBlbWNyYWZ0LmNvbT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2MzMDIzYjlmOTVkN2FjOTU5YTc2NDQ3MWE2NTAwMTA2MmFlY2Y0MQpBdXRob3I6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBKdWwgMTkgMTc6MTI6MjggMjAwNyArMDIwMAoKICAgIEZpeCBicmVha2FnZSBvZiA4eHggYm9hcmRzIGZyb20gcmVjZW50IGNvbW1pdC4KCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBuZWdhdGl2ZSBjb25zZXF1ZW5jZXMgZm9yIDh4eCBvZiB0aGUgcmVjZW50CiAgICAicHBjNHh4OiBDbGVhbiB1cCA0NDAgZXhjZXB0aW9ucyBoYW5kbGluZyIgY29tbWl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFJhZmFsIEphd29yb3dza2kgPHJhakBzZW1paGFsZi5jb20+Cgpjb21taXQgYzg4M2Y2ZWEzMmRjZTkxZjA3NjcwYjNhYWZlY2Y2Yzk5YjFlNTM0MQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEp1bCAxNiAxMzoxMToxMiAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODg0OGVjODU4Zjc0ZWQ2ZGFiMDZmYjZkNWRkYzkzM2UwYTEzMjhiZgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEp1bCAxNiAxMDowMjoxMiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBDb2RlIGNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMmE0OWZjMTdkMDkwMjBlN2ViZDk1MzY2OTRkOTlkMjBlNDE5ZmNiOApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEp1bCAxNiAxMDowMTozOCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBTUNDIEx1YW4gdXNlcyB0aGUgbmV3IGJvYXJkc3BlY2lmaWMgRERSMiBjb250cm9sbGVyIHNldHVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGRmM2YxNzQyMmFlYjAzZmI4MWE3YWM4Yzc4ZDJiMDVkMDVhYTRjZjkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKdWwgMTYgMTA6MDA6NDMgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogU3VwcG9ydCBmb3IgWXVjY2EgYm9hcmQgd2l0aCA0NDBTUGUgUmV2IEEgYWRkZWQgdG8gNDR4X3NwZF9kZHIyLmMKCiAgICBUaGUgbmV3IGJvYXJkc3BlY2lmaWMgRERSMiBjb250cm9sbGVyIGNvbmZpZ3VyYXRpb24gaXMgdXNlZCBmb3IgdGhlIFl1Y2NhCiAgICBib2FyZC4gTm93IHRoZSBZdWNjYSBib2FyZCB3aXRoIDQ0MFNQZSBSZXYuIEEgY2hpcHMgaXMgYWxzbyBzdXBwb3J0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZlZDE0YWRkZjk3YzhjZDhmNTMxZTlhZTdiMmQzZTIyMmZmZmQ1M2UKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKdWwgMTYgMDk6NTc6MDAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIG5ldyB3ZWFrIGZ1bmN0aW9ucyB0byBzdXBwb3J0IGJvYXJkc3BlY2lmaWMgRERSMiBjb25maWd1cmF0aW9uCgogICAgVGhlIG5ldyAid2VhayIgZnVuY3Rpb25zIGRkcl93cmR0cigpIGFuZCBkZHJfY2xrdHIoKSBhcmUgYWRkZWQgdG8gYmV0dGVyCiAgICBzdXBwb3J0IG5vbiBkZWZhdWx0LCBib2FyZHNwZWNpZmljIEREUigyKSBjb250cm9sbGVyIGNvbmZpZ3VyYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDU3NDNhOTIwN2EzNzBiOTBmMDliMjBlYmQ2MTE2N2M4MDZiOTM3ZjMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKdWwgMTYgMDg6NTM6NTEgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIHJlbW92ZV90bGIoKSBmdW5jdGlvbiB0byByZW1vdmUgYSBtZW0gYXJlYSBmcm9tIFRMQiBzZXR1cAoKICAgIFRoZSBuZXcgZnVuY3Rpb24gcmVtb3ZlX3RsYigpIGNhbiBiZSB1c2VkIHRvIHJlbW92ZSB0aGUgVExCJ3MgdXNlZCB0bwogICAgbWFwIGEgc3BlY2lmaWMgbWVtb3J5IHJlZ2lvbi4gVGhpcyBpcyBlc3BlY2lhbGx5IHVzZWZ1bCBmb3IgdGhlIEREUigyKQogICAgc2V0dXAgcm91dGluZXMgd2hpY2ggY29uZmlndXJlIHRoZSBTRFJBTSBhcmVhIHRlbXBvcmFyaWx5IGFzIGEgY2FjaGVkCiAgICBhcmVhIChmb3Igc3BlZWR1cCBvbiBhdXRvLWNhbGlicmF0aW9uIGFuZCBFQ0MgZ2VuZXJhdGlvbikgYW5kIGxhdGVyCiAgICBuZWVkIHRoaXMgYXJlYSB1bmNhY2hlZCBmb3Igbm9ybWFsIHVzYWdlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwYzBhOWNkYTFiZGUzNzEwNjUyMDQ3NmVkNDg2YmQ2N2ViOGQzMGFlCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gSnVsIDE2IDAwOjMxOjA3IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIFN1cHBvcnQgZm9yIFhpbGlueCBFbWFjTGl0ZSBjb250cm9sbGVyCgpjb21taXQgM2E2Y2FiODQ0Y2Y3NGY3NjYzOWQ3OTVlMGJlODcxN2UwMmM4NmFmNwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVNhdCBKdWwgMTQgMjI6NTE6MDIgMjAwNyArMDIwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDUyODBmMzUyYzhkYTMzYjFkN2ZiZjQ0ODc2ODcxN2Q5ZTE2ZmY5YTEKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVNhdCBKdWwgMTQgMTM6MTE6MjggMjAwNyArMDIwMAoKICAgIFtGSVhdIHN1cHBvcnQgZm9yIHNpbXBseSBtZWFzdXJpbmcgdGltZQoKY29tbWl0IDkxYmI0Y2E2NjVkMmUwY2Y3ZjYwYzRiNWIzNzA5OTAyNTBlYzBjNDMKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVNhdCBKdWwgMTQgMTI6NDE6MjMgMjAwNyArMDIwMAoKICAgIFtGU10gQWRkZWQgc3VwcG9ydCBmb3IgUk9NRlMKCmNvbW1pdCAwMTE1OTUzMDc3MzFhN2E2N2E3NDQ1ZDEwN2MyNzlkMDMxZThhYjk3CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTYXQgSnVsIDE0IDAxOjA2OjU4IDIwMDcgKzAyMDAKCiAgICBbUENTNDQwRVBdCS0gZml4IGNvbXBpbGUgZXJyb3IsIGlmIEJVSUxEX0RJUiBpcyB1c2VkCgpjb21taXQgNWEyZjEwOThkODFhZDU4YjMwOWU1ZTU1OGQwNDkyNjQzMTY2YTc5OQpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU2F0IEp1bCAxNCAwMDoxODo0OCAyMDA3ICswMjAwCgogICAgW1BBVENIXSBTdXBwb3J0IHRpbWUgd2l0aG91dCB0aW1lcgoKY29tbWl0IGE0NzZjYTJhYzIyMTdkZGQwNWEyYmYwYzUxNDA3NTgxNGIxMGEzYzAKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBKdWwgMTMgMjE6NDM6NTUgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gUmVtb3ZlIHByb2JsZW0gd2l0aCBkaXNhYmxlZCBCQVJSRUwgU0hJRlRFUgoKY29tbWl0IDU1ZTI2YWQ2MjEwN2QyZjE0Zjc1N2RlM2FlMGIxNGI5YWE3YWVkOTQKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBKdWwgMTMgMjE6NDE6NDQgMjAwNyArMDIwMAoKICAgIFtGSVhdIGNvcnJlY3QgaGVscCBmb3IgcnNwcgoKY29tbWl0IGZhZDYzNDA3MTU0ZjQ2MjQ2Y2U4MGQ1M2E5YzY2OWE0NDM2MmFjNjcKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CUZyaSBKdWwgMTMgMDk6NTQ6MTcgMjAwNyArMDIwMAoKICAgIG1ha2Ugc2hvd19ib290X3Byb2dyZXNzICgpIHdlYWsuCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgOTA3OTAyNDcyMzkxYjZjYTE4NzZlYzMwMDY4NzU2MmVjYWY0NTliMQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJRnJpIEp1bCAxMyAwODoyNjowNSAyMDA3ICswMjAwCgogICAgW1BDUzQ0MEVQXQktIFRoZSBESUFHIExFRHMgYXJlIG5vdyBibGlua2luZywgaWYgYW4gZXJyb3Igb2NjdXIKCQktIGZpeCBjb21waWxlIGVycm9yLCBpZiBCVUlMRF9ESVIgaXMgdXNlZAoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGEyZTFjNzA5OGNmOTU3NDM4NmIwYzk2ODQxZGZjOGVhNWNjOTM1NzgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgMTIgMTY6MzI6MDggMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ2hhbmdlIHJlY2VpdmUgYnVmZmVyIGhhbmRsaW5nIGluIHRoZSA0eHggZW1hYyBkcml2ZXIKCiAgICBUaGlzIGNoYW5nZSBmaXhlcyBhIGJ1ZyBpbiB0aGUgcmVjZWl2ZSBidWZmZXIgaGFuZGxpbmcsIHRoYXQKICAgIGNvdWxkIGxlYWQgdG8gcHJvYmxlbXMgdXBvbiBoaWdoIG5ldHdvcmsgdHJhZmZpYyAoYnJvYWRjYXN0cy4uLikuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDIzOWYwNWVlNGRkNGNmZTBiNTBmMjUxYjUzM2RjZWJlOWU2N2MzNjAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgSnVsIDEyIDAxOjQ1OjM0IDIwMDcgKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HLCBtaW5vciBjb2Rpbmcgc3R5bGUgY2xlYW51cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDVhNTZhZjNiNTIyYmE0N2ZiMzNhM2ZlZTg0ZDIzYmYxZTU0Mjk2NTQKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdW4gOCAxNjo0MToxOCAyMDA3IC0wNTAwCgogICAgUmVtb3ZlIGVycm9uZW91cyBlcnJhdGEgY29kZSBmcm9tIE1hcnZlbCA4OEUxMTExUyBkcml2ZXIKCiAgICBUaGUgTWFydmVsIDg4RTExMTFTIGRyaXZlciBmb3IgdGhlIFRTRUMgd2FzIGNvcGllZCBmcm9tIHRoZQogICAgODhFMTEwMSBkcml2ZXIsIGFuZCBpbmNsdWRlZCBhIGZpeCBmb3IgYW4gZXJyYXR1bSB3aGljaCBkb2VzIG5vdAogICAgZXhpc3Qgb24gdGhhdCBwYXJ0LiAgTm93IGl0IGlzIHJlbW92ZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTgyZWZjZjIzZmQwMzY0N2UwMWUyZmJlMjhhN2EzNjIzOTE1NmNjMApBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biA1IDE2OjM4OjQ0IDIwMDcgLTA1MDAKCiAgICBGcm9tOiBlcmFuIGxpYmVydHkgPGVyYW4ubGliZXJ0eUBnbWFpbC5jb20+CgogICAgYWRkcyB0aGUgcmVzZXQgcmVnaXN0ZXIgdG8gODV4eCBpbW1hcAoKICAgIFNpZ25lZC1vZmYtYnk6IEVyYW4gTGliZXJ0eSA8ZXJhbi5saWJlcnR5QGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkM2VjMGQ5NDNhMDQ1YmRiOTllMTU5ZTdiYmM3NzQzMGUwOWYxMWQ3CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTWF5IDEwIDE3OjUwOjAxIDIwMDcgLTA1MDAKCiAgICBQb2xpc2hlZCB0aGUgODV4eCBBRFMgY29uZmlnIGZpbGVzCgogICAgTWFkZSB0aGUgYm9vdCBjb21tYW5kcyB1c2UgZGV2aWNlIHRyZWVzIGJ5IGRlZmF1bHQuCiAgICBBbHNvIG1vdmVkIHRoZSByYW1kaXNrIHRvIDEwMDAwMDAgKEkgdGhpbmsgdGhlIHByZXZpb3VzIGFkZHJlc3MKICAgIHdhcyBnZXR0aW5nIG92ZXJyaWRkZW4gZHVyaW5nIGJvb3QpLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZmIzN2IzMmQxYjBiMDNmMTgwNzdkYmE0OWNjNjZhNmU3NmZhMDM4CkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1heSA5IDExOjAzOjMyIDIwMDcgLTA1MDAKCiAgICA4NTQ0ZHM6IEZpeCBNYWtlZmlsZSBhZnRlciBtb3ZpbmcgcGl4aXMgdG8gYm9hcmQvZnJlZXNjYWxlLgoKICAgIFRoZSBPQkpUUkVFICE9IFNSQ1RSRUUgYnVpbGQgc2NlbmFyaW8gd2FzIGJyb2tlbi4KICAgIFRoaXMgZml4ZXMgaXQuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmEzY2VlNDNjM2I3MWZhNWI4ZDkxZGIxOWYwNTA2Nzg2NTI5MGYzZQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1heSA5IDAwOjU0OjIwIDIwMDcgLTA1MDAKCiAgICB0c2VjOiBGaXggUEhZIGNvZGUgdG8gbWF0Y2ggZmlyc3QgZHJpdmVyCgogICAgSmFycm9sZCBXZW4gbm90aWNlZCB0aGF0IHRoZSBnZW5lcmljIFBIWSBjb2RlIGFsd2F5cyBtYXRjaGVzCiAgICB1bmRlciB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbi4gIENoYW5nZSBpdCBzbyB0aGUgZmlyc3QgbWF0Y2gKICAgIHdpbnMsIGFuZCAqb25seSogdW5rbm93biBQSFlzIHRyaWdnZXIgdGhlIGdlbmVyaWMgZHJpdmVyCgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNjYzA5MWFhYzYxYTM4Y2Q5OThkNTc1ZDkyZjcyMzJlMjU2ZDYzMTIKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXkgOCAxNzoyNzo0MyAyMDA3IC0wNTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIENQTSBkZXZpY2UgdHJlZSBjb25maWd1cmF0aW9uIHRvIDg1NjAgQURTCgogICAgKiBBZGRzIGNvZGUgdG8gbW9kaWZ5IENQTSBmcmVxdWVuY2llcwogICAgKiBDbGVhbnMgdXAgdGhlIGNvbmZpZyBmaWxlIHRvICNkZWZpbmUgVFNFQyBhbmQgKGZvciBub3cpICN1bmRlZiBGQ0MKICAgICogQWRkcyB0aGUgTUlJIGNvbW1hbmQgZm9yIGFsbCA4NTYwIEFEUyBjb25maWd1cmF0aW9ucwogICAgKiBVcGRhdGVzIGNvbmZpZyBmaWxlIHRvIHByb3ZpZGUgY29udmVuaWVuY2UgY29tbWFuZHMgZm9yIGJvb3RpbmcKICAgICAgd2l0aCBhIGRldmljZSB0cmVlCgogICAgU2lnbmVkLW9mZi1ieTogVml0YWx5IEJvcmR1ZyA8dmJvcmR1Z0BydS5tdmlzdGEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc1MDdkNTZjY2FmN2FhZTFjNDc0MzQyYTlhNTU0MDE2NWNkN2U5ZDkKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXkgOCAxNzoyMzowMiAyMDA3IC0wNTAwCgogICAgRml4IE1hcnZlbGwgODhlMTE0NSBQSFkgaW5pdCBjb2RlCgogICAgRml4IGEgYnVnIGluIHRoZSBNYXJ2ZWxsIDg4ZTExNDUgUEhZIGluaXQgY29kZSBpbiB0aGUgVFNFQyBkcml2ZXIKICAgIHdoZXJlIHRoZSByZXNldCB3YXMgYmVpbmcgZG9uZSBhZnRlciB0aGUgZXJyYXRhIGNvZGUgaW5zdGVhZCBvZgogICAgYmVmb3JlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWRjMjEwZGVjNWJhY2U5OGE1MGI2YmE5MDUzNDc4OTAwOTFhOWJiMApBdXRob3I6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgMTEgMTQ6NTI6MTYgMjAwNyAtMDUwMAoKICAgIEFkZCBzaW1wbGUgYWdlbnQvZW5kLXBvaW50IGNvbmZpZ3VyYXRpb24gaW4gUENJIEF1dG9Db25maWcgZm9yIFBDSV9DTEFTU19QUk9DRVNTT1JfUE9XRVJQQy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU4Yjg1ZjNiYTRjZDg5MzBlMGEyZmVhMjEwMGM4MTVkNjQyMDE3NjUKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDExIDE0OjUyOjA4IDIwMDcgLTA1MDAKCiAgICBwY2lhdXRvIHNldHVwIGJyaWRnZQoKICAgIFRoZSBQMlAgYnJpZGdlIGJ1cyBudW1iZXJzIHByb2dyYW1tZWQgaW50byB0aGUgZGV2aWNlIGFyZSByZWxhdGl2ZSB0bwogICAgaG9zZS0+Zmlyc3RfYnVzbm8uCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1NzFmNDlmYTcxNzAwNGNhNDI2OGI0ZTI0MDU3ZWZjN2JmOWY5ODdiCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1bCAxMSAxNDo1MjowMSAyMDA3IC0wNTAwCgogICAgU3VwcG9ydCBQQ0llIGV4dGVuZGVkIGNvbmZpZyByZWdpc3RlcnMKCiAgICBGU0wgUENJZSBibG9jayBoYXMgZXh0ZW5kZWQgY2ZnIHJlZ2lzdGVycyBpbiB0aGUgMTAwIGFuZCA0MDAgcmFuZ2UuCiAgICBGb3IgZXhhbXBsZSwgdG8gcmVhZCB0aGUgTFRTU00gcmVnaXN0ZXI6IHBjaSBkaXNwbGF5IDxidXNuPi4wIDQwNCAxCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiYTVmZWIxMjU4MWJiMjkxMmNlMzAxZTQ4NjZiNzFmODQ2ZTlmYzA3CkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1bCAxMSAxNDo1MTo0OCAyMDA3IC0wNTAwCgogICAgTWlub3IgaW1wcm92ZW1lbnRzIHRvIGRyaXZlcnMvcGNpX2F1dG8uYwoKICAgIC0gTWFrZSBwY2lhdXRvX3twcmUscG9zdH1zY2FuX3NldHVwX2JyaWRnZSBub24tc3RhdGljCiAgICAtIEFkZGVkIHBoeXNpY2FsIGFkZHJlc3MgZGlzcGxheSBpbiBkZWJ1ZyBtZXNzYWdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQwZTgxYWRkYWI3YmI3NGQyMGRkZjY4MWNlOWJhYmM4ODBhODI4ZWUKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVsIDExIDE0OjUxOjM1IDIwMDcgLTA1MDAKCiAgICBTdGFydCBwY2kgaG9zZSBzY2FuIGZyb20gaG9zZS0+Y3VycmVudF9idXNuby4KCiAgICBFbnN1cmUgaG9zZS0+Y3VycmVudF9idXNubyBpcyBub3QgbGVzcyB0aGFuIGZpcnN0X2J1c25vLiAgVGhpcyBmaXhlcwogICAgYnJva2VuIGJvYXJkIGNvZGUgd2hpY2ggbGVhdmVzIGN1cnJlbnRfYnVzbm89MCB3aGVuIGZpcnN0X2J1c25vIGlzCiAgICBncmVhdGVyIHRoYW4gMCBmb3IgdGhlIGNhc2VzIHdpdGggbXVsdGlwbGUgY29udHJvbGxlcnMuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzODY1YjFmYjc4NDNhMDhhZDQ5YTYzMTlhMzY0MTU3NTIyNzZmZjQ4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSnVsIDExIDEyOjEzOjUzIDIwMDcgKzAyMDAKCiAgICBGaXggc29tZSBjb21waWxlIHByb2JsZW1zIGludHJvZHVjZWQgYnkgdGhlIGxhdGVzdCBDRkdfQ01EX3h4eCBjbGVhbnVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGZhMWRmMzA4OTI2YTZmNzBlMzUwNGM1NzUxNGVmMjdhYzMxZmQxM2EKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgSnVsIDExIDIwOjExOjA3IDIwMDcgKzAyMDAKCiAgICBDTTEuUVAxOiBTdXBwb3J0IGZvciB0aGUgU2NoaW5kbGVyIENNMS5RUDEgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogUGlvdHIgS3J1c3p5bnNraSA8cHBrQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgOTZlMWQ3NWJlODE5M2NhNzllNDIxNWEzNjhiZjlkN2YyMzYyNDUwZgpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJV2VkIEp1bCAxMSAxODozOToxMSAyMDA3ICswMjAwCgogICAgW1BDUzQ0MEVQXQktIFNob3cgb24gdGhlIERJQUcgTEVEcywgaWYgdGhlIFNIQTEgY2hlY2sgZmFpbGVkCgkJLSBub3cgdGhlIEZsYXNoIFNUIE0yOVcwNDBCIGlzIHN1cHBvcnRlZCAobm90IHRlc3RlZCkKCQktIGZpeCB0aGUgImxlZCIgY29tbWFuZAoJCS0gZml4IGNvbXBpbGUgZXJyb3IsIGlmIEJVSUxEX0RJUiBpcyB1c2VkCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgZTk1MTQ3NTFjZmE1Y2NlNjFlYTY5OWZhMGQzZWIzNzg5OGE1ZWViNQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU3VuIEp1bCA4IDEzOjQ0OjI3IDIwMDcgKzAyMDAKCiAgICBGaXggbWFsbG9jIHByb2JsZW0gaW50cm9kdWNlZCB3aXRoIHRoZSByZWxvY2F0aW9uIGZpeHVwIGZvciB0aGUgUFBDIHBsYXRmb3JtCgogICAgVGhlIHJlbG9jYXRpb24gZml4dXAgZGlkbid0IGhhbmRsZSB0aGUgbWFsbG9jIHBvaW50ZXIgaW5pdGlhbGl6YXRpb24KICAgIGNvcnJlY3RseS4gVGhpcyBwYXRjaCBmaXhlcyB0aGlzIHByb2JsZW0uIFRlc3RlZCBzdWNjZXNzZnVsbHkgb24gNHh4LgogICAgVGhlIHJlbG9jYXRpb24gZml4dXAgcGF0Y2hlcyBmb3IgNHh4IHdpbGwgZm9sbG93IHNvb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDBkY2E4NzRkYjYyNzE4ZTQxMjUzNjU5ZTYwZjNhMWRlN2ViNDE4Y2UKQXV0aG9yOiBUc2lDaHVuZyA8dGNsaWV3QEdva3UuKG5vbmUpPgpEYXRlOglUdWUgSnVsIDEwIDE1OjQ1OjQzIDIwMDcgLTA1MDAKCiAgICBDYWNoZSB1cGRhdGUgYW5kIGFkZGVkIENGR19VTklGWV9DQUNIRQoKICAgIEVuYWJsZWQgY2FjaGUgaW4gY3B1X2luaXRfZigpIGZvciBmYXN0ZXIgZmxhc2ggdG8gbWVtIGFsbG9jYXRpb24uIFVwZGF0ZWQgY2FjaGUgaGFuZGxpbmcgaW4gc3RhcnQuUy4gQXBwbGllZCBjYWNoZSBpbnZhbGlkYXRlIGluIGZlY19zZW5kKCkgYW5kIGZlY19yZWN2KCkuIEFkZGVkIENGR19VTklGWV9DQUNIRSBmb3IgQ0YgVjMgb25seS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyA8dGNsaWV3QEdva3UuKG5vbmUpPgoKY29tbWl0IDUyYjAxNzYwNGE4ZjRkNGE3OTU4ODBlZjZlNzg2MWQ3ZjJmMWIwMDUKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzozNjoxNiAyMDA3IC0wNTAwCgogICAgVXBkYXRlIGhlYWRlciBmaWxlLiBJbmNsdWRlIGR0aW1lcl9pbnRyX3NldHVwKCkuIENoYW5nZWQgdGltZXIgZGl2aWRlciB0byBnbG9iYWwgZGVmaW5lLgoKICAgIEluY2x1ZGUgaW1tYXAuaCBhbmQgdGltZXIuaC4gTW92ZWQgZHRpbWVyIGludGVycnVwdCBzZXR1cCB0byBkdGltZXJfaW50cl9zZXR1cCgpIGZyb20gY3B1L21jZjUzMngvaW50ZXJydXB0cy5jLiBDaGFuZ2VkIChDRkdfQ0xLIC8xMDAwMDAwKSAtMSA8PCA4IHRvIENGR19USU1FUl9QUkVTQ0FMRVIKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWNkYzA3YzdlZjhmMDhlYTU1ZDNjNDdlZDkyMjFkOTFhYTZkNWZhYwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjMxOjI1IDIwMDcgLTA1MDAKCiAgICBVcGRhdGUgaGVhZGVyIGZpbGVzCgogICAgSW5jbHVkZSBpbW1hcC5oIGFuZCByZW5hbWVkIG1jZnJ0Yy5oIHRvIHJ0Yy5oCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI4NzBlOThhYzhlNTU1M2U5MTg3YjEyYTQ3ZTVmNDZiYWJiNTM5OTAKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzoyOToyMSAyMDA3IC0wNTAwCgogICAgQWRkIG1jZmZlY19pbml0aWFsaXplKCkKCiAgICBBZGRlZCBtY2ZmZWNfaW5pdGlhbGl6ZSgpIGluIGV0aF9pbml0aWFsaXplKCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDVhMjViZmQwYzUyZjhhM2ZhMTM3MjE2YmM5NGQzMmY5MGJlZGM1ZApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjI3OjQwIDIwMDcgLTA1MDAKCiAgICBVcGRhdGUgaGVhZGVyIGZpbGUgYW5kIGNsZWFuIHVwCgogICAgSW5jbHVkZSBpbW1hcC5oCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBjZWU5YzY2MzE4NjAyYzg1NmE4OTlhZTVmYTc1NzljY2JhNjQ0M2EKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzoyMzoxNSAyMDA3IC0wNTAwCgogICAgTmV3IHVhcnQgc3RydWN0dXJlIGFuZCBkZWZpbmVzCgogICAgU2VwZXJhdGVkIGZyb20gbWNmdWFydC5oCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE5MGU3OWRlOGQ5OWU5YzlkNjlkNjBiZmZmOWYyNGMzMzcxNjU5MDAKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzoyMjozMSAyMDA3IC0wNTAwCgogICAgTmV3IHRpbWVyIHN0cnVjdHVyZSBhbmQgZGVmaW5lcwoKICAgIFNlcGVyYXRlZCBmcm9tIG1jZnRpbWVyLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTA0YWNiMmViYTQ3ODI0ODk0MTcyNDBlZmY3NmUyMGUxNzZhZWMxMApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjIxOjA5IDIwMDcgLTA1MDAKCiAgICBSZW5hbWUgbWNmcnRjIHRvIHJ0YwoKICAgIFNpbmNlIGl0IGlzIGFscmVhZHkgaW4gbTY4ayBmb2xkZXIsIHVuLW5lY2Vzc2FyeSB0byBwYWQgbWNmLiBSZXBsYWNlZCBpbW1hcF81MzI5LmggYW5kIG01MzI5LmggdG8gaW1tYXAuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyYmQ4MDZmZTRmYzIzOTU4YjhmNzg3NzgxOTllN2E2ZTNmOGY2YWQ1CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6MTc6MzYgMjAwNyAtMDUwMAoKICAgIFJlbmFtZSBtY2ZzZXJpYWwuYy4gVXBkYXRlIGluY2x1ZGUgaGVhZGVyCgogICAgUmVuYW1lZCBtY2ZzZXJpYWwuYyB0byBtY2Z1YXJ0LmMuIE1vZGlmaWVkIE1ha2VmaWxlIGZvciBtY2Z1YXJ0Lm8gZnJvbSBtY2ZzZXJpYWwuby4gUmVwbGFjZSBpbW1hcF81MzI5LmggYW5kIG01MzI5LmggdG8gaW1tYXAuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmMjIwOGZiYzJlYjlkZTNmNDI4NWJmYWEwMjFjNmViYWUxNmM5YjBlCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjM6MTM6NTggMjAwNyAtMDUwMAoKICAgIEhlYWRlciBmaWxlIHVwZGF0ZSwgY2xlYW4gdXAgYW5kIGNhY2hlIGhhbmRsaW5nCgogICAgUmVwbGFjZWQgaW1tYXBfNTMyOS5oIGFuZCBtNTMyOS5oIHdpdGggaW1tYXAuaC4gSW5jbHVkZWQgY2FjaGVfaW52YWxpZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMmUzZjI1YWU5MDgyZGFhOWY1ZDE4MWRiNDVkZmJjMmU1MmNlMGY5NwpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjEwOjQwIDIwMDcgLTA1MDAKCiAgICBDcmVhdGUgaW50ZXJydXB0cy5jIGFuZCBtb2RpZnkgTWFrZWZpbGUKCiAgICBpbnRlcnJ1cHRfaW5pdCgpIGFuZCBkdGltZXJfaW50cl9zZXR1cCgpIGFyZSBwbGFjZWQgaW4gaW50ZXJydXB0cy5jLiBBZGRlZCBpbnRlcnJ1cHRzLm8gdG8gTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZGRkMTA0ZjFlZDY1NWVkYTUwYzA2YmE2MzYyMzdhODNlZDk0M2YzNApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjA2OjU1IDIwMDcgLTA1MDAKCiAgICBFbmFibGUgSWNhY2hlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI5YmYzZGUzNzdiMmJhZTcwYzk4M2M5Yjk3ZmVhZTkxNDk5OWU3MzUKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzowNTozMSAyMDA3IC0wNTAwCgogICAgVXBkYXRlIGhlYWRlciBmaWxlIGFuZCBzb21lIGNsZWFuIHVwCgogICAgUmVwbGFjZWQgaW1tYXBfNTMyOS5oIGFuZCBtNTMyOS5oIHdpdGggaW1tYXAuaC4gUmVtb3ZlZCB3aGl0ZXNwYWNlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODRhMDE1YjUyZWM4MjBhNWFlMTczNzE3ZDc4NTE2ZGU3MzFjODljMgpBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIzOjAzOjI4IDIwMDcgLTA1MDAKCiAgICBVcGRhdGUgaGVhZGVyIGZpbGUgYW5kIGVuYWJsZSBpY2FjaGUKCiAgICBSZXBsYWNlZCBpbW1hcF81MzI5LmggYW5kIG01MzI5Lmggd2l0aCBpbW1hcC5oLiBFbmFibGVkIGljYWNoZV9lbmFibGUoKSBpbiBjcHVfaW5pdF9yKCkuCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdhMTdlNzU5YzdhOGI1OGU5MTBkYWY1NGRmNjExZTk0ZmM4Y2EwNzQKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMzowMToyMiAyMDA3IC0wNTAwCgogICAgVXBkYXRlIGhlYWRlciBmaWxlIGFuZCByZW1vdmVkIGludGVycnVwdF9pbml0KCkKCiAgICBSZXBsYWNlIGltbWFwXzUzMjkuaCBhbmQgbTUzMjkuaCB3aXRoIGltbWFwLmguIFJlbW92ZWQgaW50ZXJydXB0X2luaXQoKSBhbmQgcGxhY2VkIGl0IGluIGludGVycnVwdHMuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzYjYzNTQ5MmM5NWJkMGQ2ZTA4ZjkzZjY5OTgyMWNiYTFmNjAyYTY0CkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjI6NTc6NDYgMjAwNyAtMDUwMAoKICAgIFVwZGF0ZSBmb3IgZmxhc2gubyBhbmQgbWlpLm8KCiAgICBSZW1vdmVkIGZsYXNoLm8gYW5kIGFkZGVkIG1paS5vCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM1ZGVkMjc1ZDgzOWU0ZmY3OWY0MTcxOGQ1MGE4MzVkOTg5ZjU3YmMKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMjo1NjoxOSAyMDA3IC0wNTAwCgogICAgTUlJIGZ1bmN0aW9ucyBjYWxscy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDI3YzgxNDEwNDU2MGUyOWJkYTE0OTU1YzY3NzAzMjQ1YWFhYTViNApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIyOjU0OjQyIDIwMDcgLTA1MDAKCiAgICBSZW1vdmVkIE1JSSBmdW5jdGlvbnMgYW5kIHJlcGxhY2VkIGltbWFwXzUzMjkuaCBhbmQgbTUzMjkuaCB3aXRoIGltbWFwLmguCgogICAgVGhlIHJlbW92ZWQgTUlJIHJvdXRpbmVzIHdpbGwgYmUgcGxhY2VkIGluIG1paS5jLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwMWE3OTNmZGEwOWM2M2RmNWE0OTZmMDlkYzFjN2NiMjZlNjc1MWEyCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjI6NTE6MDUgMjAwNyAtMDUwMAoKICAgIER1cGxpY2F0ZSBjb2RlCgogICAgVGhlcmUgaXMgYSBDb21tb24gRmxhc2ggSW50ZXJmYWNlIERyaXZlciBleGlzdGVkLiBUbyB1c2UgdGhlIENGSSBkcml2ZXIsIGRlZmluZSBDRkdfRkxBU0hfQ0ZJIGluIGNvbmZpZ3VyYXRpb24gZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjc0NDM1NGE4NDM3YjhmNzhkYjE3OGUzMDY2MDIxNTY4OGJmZjU3MApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIyOjQ2OjM4IDIwMDcgLTA1MDAKCiAgICBTZXBlcmF0ZSBvbGQgc3RydWN0dXJlIGRlZmluZXMgYW5kIG5ldyBzdHJ1Y3R1cmUgZGVmaW5lcwoKICAgIFJlbW92ZWQgbmV3IHVhcnQgc3RydWN0dXJlIGFuZCBkZWZpbmVzIHRvIHVhcnQuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyYmQ1ODYwOGRiY2ZmODg5MGNhOWEwYzU5ZTg2MWFjMjRmOGJiMjMwCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjI6NDU6MDEgMjAwNyAtMDUwMAoKICAgIFNlcGVyYXRlIG9sZCBzdHJ1Y3R1cmUgZGVmaW5lcyBhbmQgbmV3IHN0cnVjdHVyZSBkZWZpbmVzCgogICAgTmV3IHRpbWVyIHN0cnVjdHVyZSBhbmQgZGVmaW5lcyB3aWxsIG1vdmUgdG8gbmV3IHRpbWVyLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGNkNWNkNmRlNGZmOTJlMDM5NzgzMzhlZDdhZWIzY2U3YjdiOTc4NApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIyOjQyOjIzIDIwMDcgLTA1MDAKCiAgICBDbGVhbiB1cAoKICAgIFJlbW92ZWQgd2hpdGVzcGFjZQoKICAgIFNpZ25lZC1vZmYtYnk6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1MTQ4NzFmNTY1ZGQ4YmQxMTIxZTRhM2FjMTY2NWE3OTBlMjBiOGYyCkF1dGhvcjogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMjI6NDE6MjQgMjAwNyAtMDUwMAoKICAgIENsZWFuIHVwCgogICAgUmVwbGFjZWQgd2hpdGVzcGFjZSB3aXRoIHRhYnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDhkYmZlYWJjN2FmZmZlMzA2MDlhNDQ4OWYxMGMyMmNiNjdlZjdkZApBdXRob3I6IFRzaUNodW5nTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDIyOjM5OjA3IDIwMDcgLTA1MDAKCiAgICBDcmVhdGUgbmV3IGhlYWRlciBmaWxlIGFuZCBtb3ZlIHBlcmlwaGVyYWxzIGJhc2UgYWRkcmVzcyBmcm9tIGNvbmZpZ3MgZmlsZSB0byBuZXcgaGVhZGVyIGZpbGUuCgogICAgQ3JlYXRlIG5ldyBoZWFkZXIgZmlsZSB0byBpbmNsdWRlIGltbWFwXzV4eHguaCBhbmQgbTV4eHguaCBhbmQgdG8gc2hhcmUgYW1vbmcgZHJpdmVycyB3aXRob3V0IHVwZGF0ZSBpbiBkcml2ZXIgZmlsZSBlYWNoIHByb2Nlc3NvciBpcyBhZGRlZC4gTW92ZWQgcGVyaXBoZXJhbHMgYmFzZSBhZGRyZXNzIGFuZCBkZWZpbmVzIGZyb20gY29uZmlncyBmaWxlIHRvIGltbWFwLmguCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJlMjk2ZTMxYzQ0MTFmOTZkOWNiM2QyYWZjOGZjYjAwNjg2N2FiZmEKQXV0aG9yOiBUc2lDaHVuZ0xpZXcgPFRzaS1DaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAyMjoyNDo1OCAyMDA3IC0wNTAwCgogICAgUmV2ZXJ0IGZpbGUgbW9kZQoKICAgIENoYW5nZWQgTUFLRUFMTCBmaWxlIG1vZGUgdG8gZXhlY3V0YWJsZSwgcmVtb3ZlZCBleGVjdXRhYmxlIGZpbGUgbW9kZSBmcm9tIE1ha2VmaWxlCgogICAgU2lnbmVkLW9mZi1ieTogVHNpQ2h1bmdMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIzYWZmMGNiOWVjZjIzNmQ3ZThjOTM3NjFkZDFkYWRmNjgzN2E1ODIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDExOjE5OjUwIDIwMDcgLTA1MDAKCiAgICBkaXNrLyBkb2MvIGxpYl8qLyBhbmQgdG9vbHMvOiBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgRml4ZWQgc29tZSBicm9rZW4gaW5zdGFuY2VzIG9mICIjaWZkZWYgQ01EX0NGR19JREUiIHRvby4KICAgIFRob3NlIGFsd2F5cyBldmFsdWF0ZWQgVFJVRSwgYW5kIHRodXMgd2VyZSBhbHdheXMgY29tcGlsZWQKICAgIGV2ZW4gd2hlbiBJREUgcmVhbGx5IHdhc24ndCBkZWZpbmVkL3dhbnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRkYjVkODZmMDIxNWJjYjZjMjkzNTEwYzUwZWIwNTBlOTI4ODNiN2EKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDExOjEzOjIxIDIwMDcgLTA1MDAKCiAgICBkcml2ZXJzLzogUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIEZpeGVkIHNvbWUgYnJva2VuIGluc3RhbmNlcyBvZiAiI2lmZGVmIENNRF9DRkdfSURFIiB0b28uCiAgICBUaG9zZSBhbHdheXMgZXZhbHVhdGVkIFRSVUUsIGFuZCB0aHVzIHdlcmUgYWx3YXlzIGNvbXBpbGVkCiAgICBldmVuIHdoZW4gSURFIHJlYWxseSB3YXNuJ3QgZGVmaW5lZC93YW50ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNDBhN2YzZTM4ODhiNDJhNDM2NzRiMDk5ZTU0NzAwMjJjOGM1NDRjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAxMTowNzo1NiAyMDA3IC0wNTAwCgogICAgZnMvOiBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgRml4ZWQgc29tZSBicm9rZW4gaW5zdGFuY2VzIG9mICIjaWZkZWYgQ01EX0NGR19JREUiIHRvby4KICAgIFRob3NlIGFsd2F5cyBldmFsdWF0ZWQgVFJVRSwgYW5kIHRodXMgd2VyZSBhbHdheXMgY29tcGlsZWQKICAgIGV2ZW4gd2hlbiBJREUgcmVhbGx5IHdhc24ndCBkZWZpbmVkL3dhbnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDYxMGYyZTljMjhhOWMxMDFlMDlmYTFiNzgxNDNjZjVmMDBlZDE1OTMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDExOjA1OjAyIDIwMDcgLTA1MDAKCiAgICBuZXQvOiBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgRml4ZWQgc29tZSBicm9rZW4gaW5zdGFuY2VzIG9mICIjaWZkZWYgQ01EX0NGR19JREUiIHRvby4KICAgIFRob3NlIGFsd2F5cyBldmFsdWF0ZWQgVFJVRSwgYW5kIHRodXMgd2VyZSBhbHdheXMgY29tcGlsZWQKICAgIGV2ZW4gd2hlbiBJREUgcmVhbGx5IHdhc24ndCBkZWZpbmVkL3dhbnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDkwMjUzMTc4ODM3NjA0NmRhMjEyYWZkMTY2MWNmZmI2MmYzZGFhMWMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDExOjAyOjQ0IDIwMDcgLTA1MDAKCiAgICBjb21tb24vOiBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgRml4ZWQgc29tZSBicm9rZW4gaW5zdGFuY2VzIG9mICIjaWZkZWYgQ01EX0NGR19JREUiIHRvby4KICAgIFRob3NlIGFsd2F5cyBldmFsdWF0ZWQgVFJVRSwgYW5kIHRodXMgd2VyZSBhbHdheXMgY29tcGlsZWQKICAgIGV2ZW4gd2hlbiBJREUgcmVhbGx5IHdhc24ndCBkZWZpbmVkL3dhbnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQzOWI1NzQxNTgzOGM3M2ZiMGEzN2VjYTg0ZGUzYzY4YmE5OTA1ODYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVsIDEwIDEwOjQ4OjIyIDIwMDcgLTA1MDAKCiAgICBib2FyZC9bai16XSo6IFJlbW92ZSBsaW5nZXJpbmcgcmVmZXJlbmNlcyB0byBDRkdfQ01EXyogc3ltYm9scy4KCiAgICBGaXhlZCBzb21lIGJyb2tlbiBpbnN0YW5jZXMgb2YgIiNpZmRlZiBDTURfQ0ZHX0lERSIgdG9vLgogICAgVGhvc2UgYWx3YXlzIGV2YWx1YXRlZCBUUlVFLCBhbmQgdGh1cyB3ZXJlIGFsd2F5cyBjb21waWxlZAogICAgZXZlbiB3aGVuIElERSByZWFsbHkgd2Fzbid0IGRlZmluZWQvd2FudGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzdhMzE4NTQ1ZDU3YWVmYTg0NDc1MjQ2NWI5NGM3ZTA5YTNmMjZkMApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMTA6Mzk6MTAgMjAwNyAtMDUwMAoKICAgIGJvYXJkL1tBLVphLWldKjogUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIEZpeGVkIHNvbWUgYnJva2VuIGluc3RhbmNlcyBvZiAiI2lmZGVmIENNRF9DRkdfSURFIiB0b28uCiAgICBUaG9zZSBhbHdheXMgZXZhbHVhdGVkIFRSVUUsIGFuZCB0aHVzIHdlcmUgYWx3YXlzIGNvbXBpbGVkCiAgICBldmVuIHdoZW4gSURFIHJlYWxseSB3YXNuJ3QgZGVmaW5lZC93YW50ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwNjhiNjBhMGViN2U3M2IyNDNjYTU1Mzk5ZjJhN2RmNzZlMmMzZjNkCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAxMDoyNzozOSAyMDA3IC0wNTAwCgogICAgY3B1LyBydGMvIGluY2x1ZGUvOiBSZW1vdmUgbGluZ2VyaW5nIHJlZmVyZW5jZXMgdG8gQ0ZHX0NNRF8qIHN5bWJvbHMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwNzlhMTM2YzM1ODg4MTQ3ODQ1NjFkNmU0ODU2OTcwZWU4MmQ2ZTJhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1bCAxMCAxMDoxMjoxMCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzL1twLXpdKiArIG1pc2M6IENsZWFudXAgQk9PVFAgYW5kIGxpbmdlcmluZyBDRkdfQ01EXyouCgogICAgRXhwbGljaXRseSBhZGQgaW4gZGVmYXVsdCBDT05GSUdfQk9PVFBfKiBvcHRpb25zIHdoZXJlIGNtZF9jb25mZGVmcy5oCiAgICB1c2VkIHRvIGJlIGluY2x1ZGVkIGJ1dCBDT05GSUdfQk9PVFBfTUFTSyB3YXMgbm90IGRlZmluZWQuCgogICAgUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2Y1YzAxNTc3NDAwYzc0Y2M1YmFjNzRmNDFkZDBkM2M3OWRmNjIzYwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMDk6Mzg6MDIgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlncy9bZy1vXSo6IENsZWFudXAgQk9PVFAgYW5kIGxpbmdlcmluZyBDRkdfQ01EXyouCgogICAgRXhwbGljaXRseSBhZGQgaW4gZGVmYXVsdCBDT05GSUdfQk9PVFBfKiBvcHRpb25zIHdoZXJlIGNtZF9jb25mZGVmcy5oCiAgICB1c2VkIHRvIGJlIGluY2x1ZGVkIGJ1dCBDT05GSUdfQk9PVFBfTUFTSyB3YXMgbm90IGRlZmluZWQuCgogICAgUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODBmZjRmOTliODRiNjRlZGNhM2ZkMTBkYTM2NWVjMTQ5M2JlMWM5NQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMDk6Mjk6MDEgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlncy9bYS1lXSo6IENsZWFudXAgQk9PVFAgYW5kIGxpbmdlcmluZyBDRkdfQ01EXyouCgogICAgRXhwbGljaXRseSBhZGQgaW4gZGVmYXVsdCBDT05GSUdfQk9PVFBfKiBvcHRpb25zIHdoZXJlIGNtZF9jb25mZGVmcy5oCiAgICB1c2VkIHRvIGJlIGluY2x1ZGVkIGJ1dCBDT05GSUdfQk9PVFBfTUFTSyB3YXMgbm90IGRlZmluZWQuCgogICAgUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTFhYTBiYjUwMmUyNWZkNTk4YjVlMGNjZGZiMmMxNzQ5MjFkNzE0YQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMDk6MjI6MjMgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlncy9bUC1aXSo6IENsZWFudXAgQk9PVFAgYW5kIGxpbmdlcmluZyBDRkdfQ01EXyouCgogICAgRXhwbGljaXRseSBhZGQgaW4gZGVmYXVsdCBDT05GSUdfQk9PVFBfKiBvcHRpb25zIHdoZXJlIGNtZF9jb25mZGVmcy5oCiAgICB1c2VkIHRvIGJlIGluY2x1ZGVkIGJ1dCBDT05GSUdfQk9PVFBfTUFTSyB3YXMgbm90IGRlZmluZWQuCgogICAgUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjU5ZTJmNjczNjIzMmEwOGFjY2E4Nzg1YzIwNmUyYjRkOWNkMDdkNwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMDk6MTA6NDkgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlncy9bSi1PXSo6IENsZWFudXAgQk9PVFAgYW5kIGxpbmdlcmluZyBDRkdfQ01EXyouCgogICAgRXhwbGljaXRseSBhZGQgaW4gZGVmYXVsdCBDT05GSUdfQk9PVFBfKiBvcHRpb25zIHdoZXJlIGNtZF9jb25mZGVmcy5oCiAgICB1c2VkIHRvIGJlIGluY2x1ZGVkIGJ1dCBDT05GSUdfQk9PVFBfTUFTSyB3YXMgbm90IGRlZmluZWQuCgogICAgUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTE3OTk0MzRjNWZmMTVhNjEyNTc3YmIxYWQxZjRlYTFhMDU5NWU0YgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdWwgMTAgMDk6MDI6NTcgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlncy9bQS1JXSo6IENsZWFudXAgQk9PVFAgYW5kIGxpbmdlcmluZyBDRkdfQ01EXyouCgogICAgRXhwbGljaXRseSBhZGQgaW4gZGVmYXVsdCBDT05GSUdfQk9PVFBfKiBvcHRpb25zIHdoZXJlIGNtZF9jb25mZGVmcy5oCiAgICB1c2VkIHRvIGJlIGluY2x1ZGVkIGJ1dCBDT05GSUdfQk9PVFBfTUFTSyB3YXMgbm90IGRlZmluZWQuCgogICAgUmVtb3ZlIGxpbmdlcmluZyByZWZlcmVuY2VzIHRvIENGR19DTURfKiBzeW1ib2xzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWZlODBkNzljNWM0ZTUyZDM0MTBhN2FiNGI4NTE1ZGEwOTVjZGFiMwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAyMjowODozNCAyMDA3IC0wNTAwCgogICAgRmluYWxseSByZXRpcmUgY21kX2NvbmZkZWZzLmggYW5kIENPTkZJR19CT09UUF9NQVNLIQoKICAgIEFsbCBvZiB0aGUgY2hvaWNlcyBmb3IgQ09ORklHX0JPT1RQXyBhcmUgbm93IGRvY3VtZW50ZWQgaW4KICAgIHRoZSBSRUFETUUgZmlsZS4gIFlvdSBtdXN0IG5vdyBpbmRpdmlkdWFsbHkgc2VsZWN0IGV4YWN0bHkKICAgIHRoZSBzZXQgdGhhdCB5b3Ugd2FudCB1c2luZyBhIHNlcmllcyBvZgoJI2RlZmluZSBDT05GSUdfQk9PVFBfPHg+CiAgICBzdGF0ZW1lbnRzIGluIHRoZSBib2FyZCBwb3J0IGNvbmZpZyBmaWxlcyBub3cuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkM2I4YzFhNzQzZGNkMzE2MjVjOTllNmE0NDU5MGYyMDdlYjAwMDI4CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDIxOjU3OjMxIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3MvW20tel0qOiBEaXJlY3RseSB1c2UgQ09ORklHX0JPT1RQXyogc3ltYm9scyByYXRoZXIgdGhhbiBDT05GSUdfQk9PVFBfTUFTSy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDJmZDkwY2U1NzViMDJkMTg5Y2JmNDQzYzg1MzA5YmNkMDAxYWEzOTMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMjE6NDg6MjYgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlncy9bYS1tXSo6IERpcmVjdGx5IHVzZSBDT05GSUdfQk9PVFBfKiBzeW1ib2xzIHJhdGhlciB0aGFuIENPTkZJR19CT09UUF9NQVNLLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzdkNGJiNzA1ODY2NTlkZWRlZjE2NThjZTFiZWQwNzFiZTA5OGFlYwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAyMTozODowMiAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzL1tULVpdKjogRGlyZWN0bHkgdXNlIENPTkZJR19CT09UUF8qIHN5bWJvbHMgcmF0aGVyIHRoYW4gQ09ORklHX0JPT1RQX01BU0suCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxODIyNWU4ZGQxOTUwYmQ2ZGJmMzUwMTFlNDM2ZGI3ZjQ3NGMxODdkCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDIxOjMxOjI0IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3MvW1AtU10qOiBEaXJlY3RseSB1c2UgQ09ORklHX0JPT1RQXyogc3ltYm9scyByYXRoZXIgdGhhbiBDT05GSUdfQk9PVFBfTUFTSy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdiZTA0NGU0ZWE2NDRiMGVmMWM0ODZkYWRjMWE0YzI2NjViNDM3NGQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMjE6MjQ6MTkgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlncy9bSC1OXSo6IERpcmVjdGx5IHVzZSBDT05GSUdfQk9PVFBfKiBzeW1ib2xzIHJhdGhlciB0aGFuIENPTkZJR19CT09UUF9NQVNLLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWQyZWJlMWIzZWYwMDU1YzY2MWJiMWEwZDI1MmJmMjUyMzgwMDY5ZgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAyMToxNjo1MyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzL1tBLUddKjogRGlyZWN0bHkgdXNlIENPTkZJR19CT09UUF8qIHN5bWJvbHMgcmF0aGVyIHRoYW4gQ09ORklHX0JPT1RQX01BU0suCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNTVmN2Y4ZDgzZjM2MDIxYWIxZjBlM2Q3MzhmNWQ4YzgwODNhN2UzCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE5OjEyOjMwIDIwMDcgLTA1MDAKCiAgICBSZXRpcmUgQ09ORklHX0NPTU1BTkRTIGZpbmFsbHkuCiAgICBTdHJpcCBvbGQgQ0ZHX0NNRF8qIHN5bWJvbHMgb3V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjU1MDFmN2Q3MjBmZWQ5OWFiMGI0MmM4M2Y1ZGVhNTI4NjhjZTAwNwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxOToxMDowMyAyMDA3IC0wNTAwCgogICAgVXBkYXRlIFJFQURNRS4qIHRvIHJlZmVyZW5jZSBuZXcgQ09ORklHX0NNRF8qIG5hbWVzIG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ0MzEyODNjN2U2ZDU0YWUxODBkNDY2ZTUxYmYyZDk3NDcxYTBhZDkKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTk6MDY6MDAgMjAwNyAtMDUwMAoKICAgIGNwdS9tKjogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzYTFlZDFlMWY5MjJjNDE5YmI3MWY3ZGY0OTQ5ZDc4M2FkZTM2OWZhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE4OjU3OjIyIDIwMDcgLTA1MDAKCiAgICBjcHUvWzdhLWxuLXpdKjogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhYjNhYmNiYWJkODQwOTI4ZmIxZWI1MTIyMTE4Y2E0NjZiNWU1MDEzCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE4OjQ1OjE2IDIwMDcgLTA1MDAKCiAgICBib2FyZC9bcS16XSo6IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgM2ZlMDAxMDlhNWYxMmRlNTViNmUyNWIxZjk4ZGZjMjRiYzkwOTBjOQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxODozODozOSAyMDA3IC0wNTAwCgogICAgYm9hcmQvW20tcF0qOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGM1MDhhNGNlZmQ4YTk1M2ZjNjQ5NTc2NTA1MDZhMDM1ZTZlM2Q5ZDEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTg6MzE6MjggMjAwNyAtMDUwMAoKICAgIGJvYXJkL1tmLWxdKjogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiOTMwNzI2MmY4YTlmM2I1YzllMTVhNjA2N2VhZGMxNzQwNzE0NmY2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE4OjI0OjU1IDIwMDcgLTA1MDAKCiAgICBib2FyZC9bZC1lXSo6IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZmNlYzJlYjkzZTEyNjQwMDAwOTcyOTMyOGU3OTdmMTJiYzk0ZjFmZApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxODoxOTowOSAyMDA3IC0wNTAwCgogICAgYm9hcmQvW0EtWmEtY10qOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE1OTM4MTRmMmJlMGM5Y2RjMzEzM2NkNTUwYjE2N2I4YTk4ODMyOGYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTg6MTA6NTAgMjAwNyAtMDUwMAoKICAgIHJ0Yy86IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjczNTA1NjhmOWQ0NmU2NmMyMTgyOWYzNTEzYjNkYjBjYWViOTQ4YgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxODowNTozOCAyMDA3IC0wNTAwCgogICAgbGliX3thcm0sYXZyMzIsYmxhY2tmaW4sZ2VuZXJpYyxpMzg2fS86IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgN2RlZjZiMzRmOTEwZjA4ZDdlZjBhMTQ2NDZkYTA2NzcxOTIzN2NhMgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxODowMjoxMSAyMDA3IC0wNTAwCgogICAgbGliX3ttNjhrLG1pY3JvYmxhemUsbWlwcyxwcGN9LzogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZDYwZDEyMjNiOTlhODhhNzIxNmYzZTA0MWZlNDA2MzRhZDRjMmJiCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDE3OjU2OjUwIDIwMDcgLTA1MDAKCiAgICBmcy86IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzkxODk4YmJjNTA1YWZmM2UxMmE4MDdhZjg4ZTc2ZGExOGVmYjdlZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxNzo0NjowOSAyMDA3IC0wNTAwCgogICAgdG9vbHMvOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY0M2QxYWIyMzk2MDk1MGI1MmUwYTI4MDNjMmQzZWE0YzU1OGZhMDEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gSnVsIDkgMTc6NDU6MTQgMjAwNyAtMDUwMAoKICAgIG5ldC86IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2I1MWMwYmY4OGY5NWExYmNhNjgzMjRiMDEyNmY4ZWVkOGI0MzI3MwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxNzozOTo0MiAyMDA3IC0wNTAwCgogICAgZHJpdmVycy9bbi16XSo6IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDdkMzhhMTdlOTY0YWVjNGM3ODI3ZjBlZTlhNTgzYmM4Y2MxYWQ2YgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxNzozMDowMSAyMDA3IC0wNTAwCgogICAgZHJpdmVycy9bYS1tXSo6IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2RlNWM2NGQxN2NmNDgzNGFhN2I1YzM3M2YyODhiYzdkYWQyN2IyOQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxNzoyMjozNyAyMDA3IC0wNTAwCgogICAgZGlzay86IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjM5MjIxYzc2Yzg4MjE1YmQ1NWFmODNhZDE3NGZjMzBkMTk0MGY4ZgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKdWwgOSAxNzoxNTo0OSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS86IFJlbW92ZSBvYnNvbGV0ZSByZWZlcmVuY2VzIHRvIENPTkZJR19DT01NQU5EUwogICAgTW9zdGx5IHJlbW92ZWQgZnJvbSBjb21tZW50cyBoZXJlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGVmMjE4ZjZmZGY4ZDc0N2Y0NTg5ZGE1MjUyYjAwNGU3ZDJjMjg3NgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBKdWwgMTAgMDA6MDE6MjggMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwOyB1cGRhdGUgQ0hBTkdFTE9HLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgYzg2MDNjZmJkNDU3MzM3OWE2MDc2YzljMjA4NTQ1YmEyYmJmMDE5YQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEp1bCA5IDExOjAwOjI0IDIwMDcgKzAyMDAKCiAgICBTbWFsbCBjb2Rpbmcgc3R5bGUgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwZjkyYzdlN2M5YTYyNzU1YjE0NTdkM2M0NmY5M2M4YzFmNmMxOWZjCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CU1vbiBKdWwgOSAxMDoxMDowOCAyMDA3ICswMjAwCgogICAgTWlncmF0ZSBlc2QgNDA1RVAgYm9hcmRzIHRvIG5ldyBOQU5EIHN1YnN5c3RlbQoKICAgIFJlbW92ZSB1bnVzZWQgQ0ZHX05BTkRfTEVHQUNZIGRlZmluZQoKICAgIFRoZXNlIGJvYXJkcyB0byBub3QgaGF2ZSBOQU5ELgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGJkODRlZTRjMjAyMGMzYTY4NjFmNGJiMmU3ZWEwZmI0OWY4MmU4MDMKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDEwOjEwOjA2IDIwMDcgKzAyMDAKCiAgICBNaWdyYXRlIGVzZCA0MDVFUCBib2FyZHMgdG8gbmV3IE5BTkQgc3Vic3lzdGVtCgogICAgTWlncmF0ZSBlc2QgNDA1RVAgYm9hcmRzIHRvIG5ldyBOQU5EIHN1YnN5c3RlbQoKICAgIC1jbGVhbnVwCiAgICAtdXNlIGNvcnJlY3QgaW8gYWNjZXNzb3JzIChpbi9vdXRfYmUzMigpKQoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGUwOWY3YWI1NzQ5YzM0NWY5MjRkYTI3MmJlYTA1MjFhNzNhZjViMTEKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJTW9uIEp1bCA5IDEwOjEwOjA0IDIwMDcgKzAyMDAKCiAgICBNaWdyYXRlIGVzZCA0MDVFUCBib2FyZHMgdG8gbmV3IE5BTkQgc3Vic3lzdGVtCgogICAgVGhpcyBwYXRjaCBwcmVwYXJlcyB0aGUgbWlncmF0aW9uIGZyb20gdGhlIGxlZ2FjeSBOQU5EIGRyaXZlcgogICAgdG8gVS1Cb290J3MgbmV3IE5BTkQgc3Vic3lzdGVtIGZvciBlc2QgYm9hcmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGMzNTE3ZjkxOWQwZjYxNjUwY2YzMDI3ZmQ0ZmFmMGY2MzExNDJmNmMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTg6MTA6MDggMjAwNyAtMDUwMAoKICAgIGNvbW1vbi8qIG5vbi1jbWQqOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGZkOWJjYWEzNWJlNjRmZTQxYTQyMjNmZGI2ZWNkYmFkNTI0NzBiMzkKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTg6MDU6MzkgMjAwNyAtMDUwMAoKICAgIGNvbW1vbi9jbWRfW3AteF0qOiBSZW1vdmUgb2Jzb2xldGUgcmVmZXJlbmNlcyB0byBDT05GSUdfQ09NTUFORFMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjNzZmZTQ3NDI1YWZjN2Q1ZDY3MGZmMDUzOTgyM2M4NWQ2NWQ5YzQyCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE4OjAyOjIzIDIwMDcgLTA1MDAKCiAgICBjb21tb24vY21kX1tpLW5dKjogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmFhMjZkYjQxMTM2NzliODA5NzBmZjQ0N2Q5MWNjMTAyMTc3NDJhNgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxNzo1MTozOSAyMDA3IC0wNTAwCgogICAgY29tbW9uL2NtZF9bYWZdKjogUmVtb3ZlIG9ic29sZXRlIHJlZmVyZW5jZXMgdG8gQ09ORklHX0NPTU1BTkRTLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWYwNzVlZTk2ZTUyZGRhN2I2YmNhNmM5Mzc1ODhhZWFhZWM1ZjJjZApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxNzowMjowMSAyMDA3IC0wNTAwCgogICAgQ2xlYXIgdXAgY29uZnVzaW9uIG92ZXIgdGhlIENNRF9QT1NUIGFuZCBQT1NUX0RJQUcgbWVzcy4KCiAgICBGb3Igc29tZSByZWFzb24sIENPTkZJR19QT1NUIHBlcm1lYXRlZCBhcyBDT05GSUdfQ01EX1BPU1RfRElBRwogICAgd2hlbiBpdCByZWFsbHkgbWVhbnMganVzdCBDT05GSUdfQ01EX0RJQUcuCVRoZXJlIGlzIG5vIENNRF9QT1NULgogICAgQ2xlYXIgdGhpcyBtZXNzIHVwIHNvbWUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiMzYzMTQ4NzEwNWE1N2FiN2NiYWRmYzI2ZWZiYWY5Njc2Mjc1MDE4CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE1OjQ1OjA4IDIwMDcgLTA1MDAKCiAgICBSZW1vdmUgcmVmZXJlbmNlcyB0byB0aGUgb2xkIGNtZF9jb25mZGVmcy5oIGluY2x1ZGUgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGEyMmQ0ZGE5NWUyMDA0OWI0ZGFhMWMyYTAyMmY2MWU4YTcyZjJmYjYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTU6NDI6NTkgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogQ2F0Y2ggc29tZSBDT05GSUdfQ01EXyogY29udmVyc2lvbiBzdHJhZ2dsZXJzLgoKICAgIFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIGx3bW9uNS5oIGJvYXJkIGNvbmZpZyBmaWxlLgogICAgRml4IENPTkZJR19DTURfKiB0eXBvIGJyYWluZGFtYWdlIGluIG9tYXAxNTEwaW5uLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE1NTYyOTAxNjYxYmQ0MjhmN2U1ZmViMzMzZjc5NjM3MmNiODEwMTkKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTU6MzE6NTcgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBbVFVWV1pZWl0qIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGZlN2Y3ODJkNWI4YzY0YTAxOTVjNjhjMzFhMGExMWQ0ZjY0MTM1NWUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTU6MDI6NDQgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBTKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlOWEwZjhmMTVjMTFmMzM3OTY3YWEwNjAwYWQ2ZThhZjMzMDM3ZjUwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE1OjEyOjQwIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgUiogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTJhYTlmZDIzZDcyNGJkNmFiODhlMWJhYTBkYjM1MTMzYTI3MzAzZgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxNDo1NTowNyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIFEqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFjZjAyNjk3Nzk0MjJmM2UxNDdkMmRkZmI0OTljOWY2ZmYxMGFkNWUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTQ6NDk6NDQgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBQKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlMThhMTA2MWE4NjMwY2I2Nzk5NWZkZjk5YWZkM2ZiNTBkMWIxODdkCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU3VuIEp1bCA4IDE0OjIxOjQzIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgW05PXSogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODM1M2UxMzliZmFkOTA1OWM1NGY1YjI0MjFmMWEzMDkwZTE1YTJlMgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVN1biBKdWwgOCAxNDoxNDoxNyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIE0qIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM0OGYyNThmMjQyNTM0MzNlNGEyMzAyYTBiYmNlYjY3NDBhNjcyNDYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTM6NDY6MTggMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBbSUpLTF0qIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDZjNGY0ZGE5YmZjOWY5NDAzZjU0ZmNlNjc4ZWQwMzY0YjdjODZhNmEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTdW4gSnVsIDggMTA6MDk6MzUgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBIKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2MGEwODc2YjUxMDZiMzQyMjBlNDU5YzIwOGJiZjY0ODA3MzMwNmMwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU2F0IEp1bCA3IDIxOjA0OjI2IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgRiogYW5kIEcqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRjYWE3MTU2MjgyNmEyNDY2ZTg5NGM4NjhkMTMyNTA5ZGNkYTg0NDQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglTYXQgSnVsIDcgMjA6NTY6MDUgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBFKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzYzMyMjdmM2M3Mzc1MDIzMTFiMjViNzIwODQ1NzM5MDFjYmJmMTdkCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJU2F0IEp1bCA3IDIwOjQwOjQzIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgRCogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDljZjdlOGVlN2VmOTQzZmRmZTg2NmNlMjg0MTBiMGJmYmY2YTI2YwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdWwgNSAxOTo1MjozNSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIEMqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRlOGIyYTZlMzMyOThkY2RiMTBiZGRhNDhkYjI1ZTUzYzMwODllYmEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVsIDUgMTk6MzI6MDcgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBCKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0OThmZjlhMjI4NDg1YmQ0YjlmMjNkMDY2YmFkYTI2OGY5YWRkMWRkCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCA1IDE5OjEzOjUyIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgQSogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpbmNlIEFEUzg2MC5oIGluY2x1ZGVzICJib2FyZC9mYWRzL2ZhZHMuaCIgd2l0aCByYW1pZmljYXRpb25zCiAgICBvbiB0aGUgQ09ORklHX0NPTU1BTkQgdHJlYXRtZW50LCBpdCB0b28gaGFzIHRvIGJlIGFkanVzdGVkIHRvCiAgICBleGNsdWRlIGFscmVhZHkgY29uZmlndXJlZCBjb21tYW5kcyBpbiB0aGlzIHNhbWUgY29tbWl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTBlMDM4OTMyZjIyZWU4MGViZDUzZGUzMTI1MzFlNzBlNjU5MGEyZgpBdXRob3I6IFRob21hcyBLbm9ibG9jaCA8a25vYmxvY2hAc2llbWVucy5jb20+CkRhdGU6CUZyaSBKdWwgNiAxNDo1ODozOSAyMDA3ICswMjAwCgogICAgW05BTkRdIEJhZCBibG9jayBza2lwcGluZyBmb3IgY29tbWFuZCBuYm9vdAoKICAgIFRoZSBvbGQgaW1wbGVtZW50YXRpb24gb2YgY29tbWFuZCBuYm9vdCBkb2VzIG5vdCBzdXBwb3J0IHJlYWRpbmcgdGhlIGltYWdlIGZyb20KICAgIE5BTkQgZmxhc2ggd2l0aCBza2lwcGluZyBvZiBiYWQgYmxvY2tzLiBUaGUgcGF0Y2ggaW1wbGVtZW50cyBhIG5ldyB2ZXJzaW9uIG9mCiAgICB0aGUgbmJvb3QgY29tbWFuZDogYnkgY2FsbGluZyBuYm9vdC5qZmZzMiBmcm9tIHRoZSB1LWJvb3QgY29tbWFuZCBsaW5lIHRoZQogICAgY29tbWFuZCB3aWxsIGxvYWQgdGhlIGltYWdlIGZyb20gTkFORCBmbGFzaCB3aXRoIHJlc3BlY3QgdG8gYmFkIGJsb2NrcyAoYnkgdXNpbmcKICAgIG5hbmRfcmVhZF9vcHRzKCkpLiBUaGlzIGlzIHNpbWlsYXIgdG8gZS5nLiB0aGUgTkFORCByZWFkIGNvbW1hbmQ6ICJuYW5kCiAgICByZWFkLmpmZnMyIC4uLiIuCgogICAgU2lnbmVkLW9mZi1ieTogVGhvbWFzIEtub2Jsb2NoIDxrbm9ibG9jaEBzaWVtZW5zLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzMzQwNDNmNjAxYTkwYWM1M2U1ZWNjODQ2ZmJiNzNhMWVmMzhjYjFmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVsIDYgMTI6MjY6NTEgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIGx3bW9uNSBkZWZhdWx0IGVudmlyb25tZW50CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDVkMTg3NDMwYTA1NWQ2MmYxN2NhODRkNzVlNzI0NTQzOWQxZjdlNzUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdWwgNiAxMTo0ODoyNCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgbHdtb241IGJvYXJkCgogICAgQWRkIHVubG9jaz15ZXMgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gZGVmYXVsdCB2YXJpYWJsZXMgdG8gdW5sb2NrCiAgICB0aGUgQ0ZJIGZsYXNoIGJ5IGRlZmF1bHQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZiMGExNzRhMWU2ZjU1ZTFmNWExZmJiMjIzY2RhZDc2NDVhNDY0NmUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdWwgNiAwOTo0NTo0NyAyMDA3ICswMjAwCgogICAgRml4IHByb2JsZW0gd2l0aCBnZXQvc2V0ZGNyIGNvbW1hbmRzIGludHJvZHVjZWQgYnkgY2ZnIHBhdGNoZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjExNTJmOGMyOGRiNGEyMjA4N2MyMWM2MThhM2Y3YmFhNDhlOWE0ZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CUZyaSBKdWwgNiAwMjo1MDoxOSAyMDA3ICswMjAwCgogICAgQ29kZSBjbGVhbnVwIGFuZCBkZWZhdWx0IGNvbmZpZyB1cGRhdGUgZm9yIFNUQyBHUDMgU1NBIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgZTRkYmUxYjIxNWY1YzZjNDYyZTc2OTA5ZDI0MGJkOTY0NzJiODRkZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBKdWwgNSAxNzo1NjoyNyAyMDA3ICswMjAwCgogICAgRml4aW5nIHNvbWUgdHlwb3MgZXRjLiBpbnRyb2R1Y2VkIG1haW5seSBieSBjZmcgcGF0Y2hlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGI2YjQ2ODQ1NDY4MDlmODljOGJhYzcyODYzY2E0OWI1ZmQ4YWMwY2QKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgSnVsIDUgMTE6MTI6MTYgMjAwNyArMDIwMAoKICAgIE1pbm9yIGNvZGluZyBzdHlsZSBjbGVhbnVwLiBVcGRhdGUgQ0hBTkdFTE9HLgoKY29tbWl0IGRjYTNiM2Q2ZDYzOTZiNjdlNWU4NGFmNTM0NTIxNjQ5MjNjNzM0NDMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzM6NDYgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBbdi16XSogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmMxOGViOTgwNGI1MjVmM2U0ZjNiYjNkMDE0ZGQ2OWEyMDBkOWZhNwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMzozOCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIHQqIGFuZCB1KiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0NmRhMWU5NmI3ZGIxNGY0ZmNkMmM5MjU0NGU3YzA4NjIwMjRiYzc2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMzOjMwIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgcyogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTBjYzNlYjZkMmJlODU2ZDlkZGQ4MTQzNmRlOWNmMzQzYmM2YjVjOApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMzoyMyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIHEqIGFuZCByKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNmEzNDU2MGQ1NmE5ZGY1YmMyYWUyMzUyNWQ5MjI5NzM2MTM0NzU3CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMzOjE3IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgcCogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTVjYjIzMDkyYTdkMzE0OTBhMzNkNGVjODcxNDY4YjYzYmFiZmEzYwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMzoxMyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIG8qIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDkyOWEyYmZkMTQyNzM3MDAzYThmYzMyZTFiODZlMWYyYzE4NTAyNTcKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzM6MDcgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBuKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1ZGMxMWE1MTE5NjBkNDkwZjdmMDFmZmQ3NDZlZGZlNjI3N2Y5OWIwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMzOjAxIDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgbSogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOWJiYjFjMDgyMGMxZmJkMzgxMWFiNmVlNGJhMGY2YzZmNzZiMjdlNApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMjo1NyAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIGwqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJjMjM0YzEyOWZhMDRmYjlmYTMzNTMwOTMwZTVjYmM2MDg0Y2Q0N2EKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzI6NTEgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBqKiBhbmQgayogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWQyYzZiYzQ5MTk2OWY4ZDhmYjM0YzhlMzBlOGJlYTdhMmFmOWMzMQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMjozMiAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIGkqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ4ZDVkMTAyYTJmMmU2MTljOTIwNTBiOWFlZGJiNjk2ODkxODViYzAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzI6MjUgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBoKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MmViMGVmYWVkNzA0OGFmY2M2MWZjNmYwMDg1YzQ5Mzk0YjVkYzM2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMyOjE5IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgZyogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWJlYzNkMzAwMmQzYmJiYWU2ZjI0NjhhMGY3Mzc2ZGIxMTIwZDMzZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMjoxMCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIGUqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFiOTk5YmExYjMxZWJlNzhkZDE2Mzc0Mzk0YTU1ZDdjNmU1YWE2ZTQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzI6MDMgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBkKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzN2U0ZjI0Yjg3ZmEyNTVhZTQ1NmQxOTNiN2NkMjNjMThkZDFkNTZiCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMxOjU2IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgYyogbmFtZWQgYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmEyMzUxZjlkMWU4NDFiZDAwZWE2ZGFkMWUzYzE2ZDAyNTlhZDI2NApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMTo0OSAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiB2YXJpb3VzIGIqIG5hbWVkIGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBiMzYxYzkxNjYxN2FmZjc5ZTY0N2I0MGYwZTQzMzYxZTBiYmFjY2YKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzE6NDIgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gdmFyaW91cyBhKiBuYW1lZCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNzMwY2RhODJlMzYyZGY2YTIyZjRjNTljMGE5Yjk3ZTg4NWIxMDE0CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMxOjM1IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIG1wYzV4eCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkNzk0Y2ZlZmVhZDVmYzE3N2NmNGY0MTE2NGU4MDM4MmU5Yzk0ODRhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMxOjE1IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHZhcmlvdXMgNTIwMCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlZjBkZjUyYWI0OWVlYTRhMzBjMTUwODdmZDI3ZDU0YzFkOTQ2ZjJjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMxOjA3IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIFNUeCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4NjZlMzA4OWJmYzgyNmJiNGRjNzQ2MzdmOGFhZDg3YTNiYWI3OWZjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1bCA0IDIyOjMwOjU4IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIHNiYyogYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjY5NDY5MGUyODVhY2FhMzQ5MjJmNTVmNGI1YWUwMzBkYTYwYzU1YQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMDo1MCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiBUUU0gYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWNjNGM0NTgzMjk3NjViNThlNTg0YTE5ODIxZTc5NmIzYzEwZTk3NgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdWwgNCAyMjozMDoyOCAyMDA3IC0wNTAwCgogICAgaW5jbHVkZS9jb25maWdzOiBVc2UgbmV3IENPTkZJR19DTURfKiBpbiA4Mnh4IGJvYXJkIGNvbmZpZyBmaWxlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhlYTU0OTlhZmRhYmEwYWNmNjA5MjNkZDk5MDAxYzM5OWQ0YTdjOGUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVsIDQgMjI6MzA6MDYgMjAwNyAtMDUwMAoKICAgIGluY2x1ZGUvY29uZmlnczogVXNlIG5ldyBDT05GSUdfQ01EXyogaW4gODN4eCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNDQ4OTYyMTVhMDljNjBmYTQwY2FlOTA2ZjdlZDIwN2JiYzJjNDkyCkF1dGhvcjogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KRGF0ZToJVGh1IEp1bCA1IDA4OjE3OjM3IDIwMDcgKzAyMDAKCiAgICBNZXJnZWQgUE9TVCBmcmFtZXdvcmsgd2l0aCB0aGUgY3VycmVudCBUT1QuCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KCmNvbW1pdCBiMjQ2MjlmYTM3NzIxNGQ2M2JiNDBkMTM2MGUzNTRiNmQzZTRhZjU2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJV2VkIEp1biAxMyAxMzoyMzoxNSAyMDA3IC0wNTAwCgogICAgbXBjODZ4eDogUmVtb3ZlIG9sZCBDRkdfQ01EXyogcmVmZXJlbmNlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ2MTc1ZDk3NjRkYTEyOWJiNGZkMzQxY2QyNTU0ZGM3ZDU1ZjViMmEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVuIDEzIDEzOjIyOjU0IDIwMDcgLTA1MDAKCiAgICBBZGQgTVBDODU2OE1EUyB0byBNQUtFQUxMIDg1eHggdGFyZ2V0LgoKICAgIEl0IHdhcyBtaXNzaW5nIGZyb20gdGhlIG9yaWdpbmFsIHBvcnQgc3VibWlzc2lvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI4MzVlNTE4Yzk2OWU1MTI0YmExMTc0ZWVmM2U4Mzc1ZTEyZmE3ZDUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgSnVuIDEzIDEzOjIyOjA4IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlL2NvbmZpZ3M6IFVzZSBuZXcgQ09ORklHX0NNRF8qIGluIDg1eHggYm9hcmQgY29uZmlnIGZpbGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTZiMzA0YWMyMDkxNjg5NTA2MDg4YTlhZTY3ZjYzZmQ2MzAwY2YxNgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdW4gMTMgMTM6MjE6MzcgMjAwNyAtMDUwMAoKICAgIEZpeCAjaWYgdHlwbyBpbiBDT05GSUdfQ01EXyogY2hhbmdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY3ODBiODMzMTZkOWFmMWY2MWQ3MWNjODhiMTkxN2IzODdiOWI5OTUKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzZ2lnZXJAZ214LmNoPgpEYXRlOglXZWQgSnVuIDI3IDE4OjExOjM4IDIwMDcgKzAyMDAKCiAgICByZXN1Ym1pdDogcHBjNHh4OiBSZW1vdmUgc2VxdW9pYS9zZXF1aW9hLmguIENsZWFudXAgcHBjNDQwLmggZm9yIFBQQzQ0MEVQWAoKICAgIFNpZ25lZC1vZmYtYnk6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmVzdGFsLmNvbT4KCmNvbW1pdCAwNGU2YzM4Yjc2NmVhYTJmMzI4NzU2MTU2M2M5ZTIxNWUwYzNhMGQ0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSnVsIDQgMTA6MDY6MzAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIGx3bW9uNSBib2FyZAoKICAgIC0gQWRkIG9wdGlvbmFsIEVDQyBnZW5lcmF0aW9uIHJvdXRpbmUgdG8gcHJlc2VydmUgZXhpc3RpbmcKICAgICAgUkFNIHZhbHVlcy4gVGhpcyBpcyBuZWVkZWQgZm9yIHRoZSBMaW51eCBsb2ctYnVmZmVyIHN1cHBvcnQKICAgIC0gQWRkIG9wdGlvbmFsIEREUjIgc2V0dXAgd2l0aCBDTD00CiAgICAtIEdQSU81MCBub3QgdXNlZCBhbnltb3JlCiAgICAtIExpbWUgcmVnaXN0ZXIgc2V0dXAgYWRkZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNjgxMGEzNDY3N2RiYzQ0NjMzNGY1ZTQ1MWYxNjgyNDI2ZGQzM2I0OQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjE3OjI4IDIwMDcgLTA2MDAKCiAgICBGaXggTWFrZWZpbGUgdG8gdXNlICQoTUtDT05GSUcpIG1hY3JvIGZvciBhbGwgYm9hcmQgcG9ydHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgOTBiMWIyZDY5YjkzOTZmZjJmMDExNjVlYmMxNmM5YTU5NGViNTkyNgpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjE3OjI4IDIwMDcgLTA2MDAKCiAgICBGaXggTWFrZWZpbGUgdG8gdXNlICQoTUtDT05GSUcpIG1hY3JvIGZvciBhbGwgYm9hcmQgcG9ydHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgMDU3MDA0ZjRhNDg2MzU1NGQ1NmNjNTYyNjhiZmE3YzdkOTczOGUyNwpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjM0OjQ5IDIwMDcgLTA2MDAKCiAgICBDb3JyZWN0IGZpeHVwIHJlbG9jYXRpb24gZm9yIG1wYzgzeHgKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNWFmNjFiMmY0YjgzOGEwNWY3OWJlMjc0ZjNlNWE2NmVkZDJkOWM5NgpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjM0OjQ0IDIwMDcgLTA2MDAKCiAgICBDb3JyZWN0IGZpeHVwIHJlbG9jYXRpb24gZm9yIG1wYzgyNjAKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZjNhNTJmZTA1OTIzOTM1ZGI4Njk4NWRhZjk0MzhlMmY3MGFjMzlhYQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjM0OjM5IDIwMDcgLTA2MDAKCiAgICBDb3JyZWN0IGZpeHVwIHJlbG9jYXRpb24gZm9yIG1wYzgyNHgKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYTg1ZGQyNTRjMDU3N2ZjYTEzNjI3YzQ2ZTkzZmMyYWQ0YzRmMWYwMApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjM0OjM0IDIwMDcgLTA2MDAKCiAgICBDb3JyZWN0IGZpeHVwIHJlbG9jYXRpb24gZm9yIG1wYzgyMjAKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNmY3NTc2YjIwZWNmMGQwNDBjM2FjM2IwMzJiNWNiYzg2MGUzOGE5MApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjM0OjI5IDIwMDcgLTA2MDAKCiAgICBDb3JyZWN0IGZpeHVwIHJlbG9jYXRpb24gZm9yIE1QQzV4eHgKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgMzY0OWNkOTliYTgxNWI2NjAxODY4NzM1NzY1NjAyZjAwZWYzNjkyYgpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjM0OjI0IDIwMDcgLTA2MDAKCiAgICBDb3JyZWN0IHJlbG9jYXRpb24gZml4dXAgZm9yIG1wYzV4eAoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBmODJiM2I2MzA0YjYyMGVmN2UyOGJmYWExZWE4ODdhMmFkMmZhMzI1CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzQ6MTkgMjAwNyAtMDYwMAoKICAgIERvbid0IHNldCBnZC0+cmVsb2Nfb2ZmIGlmIHJlbG9jYXRpb24gb2YgLmZpeHVwIHdvcmtzIGNvcnJlY3RseQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBlMWE2MTQ0YzMyZGM3ZGU3M2JjZGQzMzk5NWRlMDE0OGNiZDBiZDI4CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzQ6MTQgMjAwNyAtMDYwMAoKICAgIFJlbW92ZSBvYnNvbGV0ZSBtcGM4M3h4IGxpbmtlciBzY3JpcHRzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDE3ZTMyZmMzOTA4YmY3MDg5ZDNmMTZmYzgyYTFjM2FlNjc0ZGQ2NWIKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozNDowOSAyMDA3IC0wNjAwCgogICAgQ29uc29saWRhdGUgbXBjODI2MCBsaW5rZXIgc2NyaXB0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBhZjdkMzhiMzkzNjkwZDdlZWFmNDE4YWM4NWExZTgzMWE1MGQ1ZmQwCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzQ6MDQgMjAwNyAtMDYwMAoKICAgIFJlbW92ZSBvYnNvbGV0ZSBtcGM4MjR4IGxpbmtlciBzY3JpcHRzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGY5NGEzYWVjZWJjNDBjYTA5MzljN2Q2NmQwMTAwMDljZjUxYmU5ZTIKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMzo1OSAyMDA3IC0wNjAwCgogICAgUmVtb3ZlIG9ic29sZXRlIG1wYzgyNHggbGlua2VyIHNjcmlwdHMgKDMgb2YgNCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYTcxYzA4NGYzYWM3ZmVkZjE0NDUzN2RiMmIyZGE0NzMyMzA2ODgzMwpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMzOjUzIDIwMDcgLTA2MDAKCiAgICBSZW1vdmUgb2Jzb2xldGUgbXBjODI0eCBsaW5rZXIgc2NyaXB0cyAoMiBvZiA0KQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBmNjcwYTE1NDY4ZDEzNjUyNDFkNDAwMjJiOTQwOGUxMDA0MTgxZjVlCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzM6NDggMjAwNyAtMDYwMAoKICAgIFJlbW92ZSBvYnNvbGV0ZSBtcGM4MjR4IGxpbmtlciBzY3JpcHRzICgxIG9mIDQpCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDA5NTU1YmQ0NWEwNGMwZTU0ZjE3MjUyOGQyMWJjMTg4OTY1NTBkMjgKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMzo0MyAyMDA3IC0wNjAwCgogICAgUmVtb3ZlIG9ic29sZXRlIG1wYzgyMjAgbGlua2VyIHNjcmlwdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNWVmYjk5MmYwNDZlNTEyMjVjOTNkNTJmODBmZWNiZTQzM2FiZDc4OQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMzOjM4IDIwMDcgLTA2MDAKCiAgICBSZW1vdmUgb2Jzb2xldGUgbXBjNXh4eCBsaW5rZXIgc2NyaXB0cyAoMyBvZiAzKQoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCAwN2MxM2RmZWY2NWIzMTY0N2U2OWQ4YjYxZGFhMWVlYzU5OGFkZDFhCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzM6MzMgMjAwNyAtMDYwMAoKICAgIFJlbW92ZSBvYnNvbGV0ZSBtcGM1eHh4IGxpbmtlciBzY3JpcHRzICgyIG9mIDMpCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGI0ZjY3NTEzYTYyNGNlODU4NjZjNjZjNTc1YmQyZDlkNzk3N2Q3ZjAKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMzoyOCAyMDA3IC0wNjAwCgogICAgUmVtb3ZlIG9ic29sZXRlIG1wYzV4eHggbGlua2VyIHNjcmlwdHMgKDEgb2YgMykKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgYjdkOGUwNWY4Njc1MjQ5YjVmMjA4YWE3M2JhYmVlZDM4NGE0NTE5ZApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMzOjIzIDIwMDcgLTA2MDAKCiAgICBSZW1vdmUgb2Jzb2xldGUgbXBjNXh4IGxpbmtlciBzY3JpcHRzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDQxNmEwYjZkNDBmNmViYTNhMmZjNTQ3MjUzYzE2YmRhMjhkOTIyZjcKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMzoxOCAyMDA3IC0wNjAwCgogICAgQ29uc29saWRhdGUgbXBjODN4eCBsaW5rZXIgc2NyaXB0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA1ZmM1OTE3NWI5Mjg4M2VkNWQyNjY2YTA0ZTZiYzQ5ZTcwYTRhMzY1CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzM6MTMgMjAwNyAtMDYwMAoKICAgIENvbnNvbGlkYXRlIG1wYzgyNjAgbGlua2VyIHNjcmlwdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNzM3ZjllYjAyZDczMzVkZjJiM2U0ZDdhNGQzMzQ4Nzg0ZDFkYTIwNwpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMzOjA4IDIwMDcgLTA2MDAKCiAgICBDb25zb2xpZGF0ZSBtcGM4MjR4IGxpbmtlciBzY3JpcHRzCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDljNzU3Yjc4OWE1OWE4NTVkYjU3YjQ0OGRkODI1MzI5YzRlOWM0YTAKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBKdWwgMyAwMDozMzowMyAyMDA3IC0wNjAwCgogICAgQ29uc29saWRhdGUgbXBjODIyMCBsaW5rZXIgc2NyaXB0cwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBkMTgxYzlhMTVjZDQxODYzZmUyNDg0MGQxNzg0ODQyOWYyN2QzYzhjCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgSnVsIDMgMDA6MzI6NTggMjAwNyAtMDYwMAoKICAgIENvbnNvbGlkYXRlIG1wYzV4eHggbGlua2VyIHNjcmlwdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgMjg3YWM5MjRhZGI3MjkxYmViZTUwODY2NTJhMzYyYTMwYWIyOGIxMwpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEp1bCAzIDAwOjMyOjUzIDIwMDcgLTA2MDAKCiAgICBDb25zb2xpZGF0ZSBtcGM1eHggbGlua2VyIHNjcmlwdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNTJiODcwNGQwMjQ1ZTU4OWY4NmQ0NjJlOWVjMjVhZWI3ZWNiYmJkZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKdWwgNCAwMDo0Mzo1MyAyMDA3ICswMjAwCgogICAgRml4IGEgZmV3IGZpbGUgcGVybWlzc2lvbiBwcm9ibGVtcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDc4ZTBjZjJkZTdiZTdmMWVhZWViNjIyZWI2MWZkNTBlNGQ1ZTIwNWMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgSnVsIDQgMDA6Mzg6MzggMjAwNyArMDIwMAoKICAgIE1pbm9yIGNvZGluZyBzdHlsZSBjbGVhbnVwLiBSZWJ1aWxkIENIQU5HRUxPRyBmaWxlLgoKY29tbWl0IDJmOWMxOWU0OTZhY2I2YmI1MGQ5Mjk5ZTFhYWIzNzc2MjVkNDhjMzgKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAzOjQ0IDIwMDcgLTA1MDAKCiAgICBjb25maWdzLyBtcGM4Nnh4OiBSZXdyaXRlIGNvbW1hbmQgbGluZSBvcHRpb25zIHVzaW5nIG5ldyBDT05GSUdfQ01ELSogc3R5bGUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2MDJhZDNiMzNkOWNlZWY4M2RiYWI0NmJlNjg2NDZkNjQ1ZDYzN2VlCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMzozOSAyMDA3IC0wNTAwCgogICAgUkVBRE1FOiBSZXdyaXRlIGNvbW1hbmQgbGluZSBjb25maWcgdG8gdXNlIENPTkZJR19DTURfKiBuYW1lcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDcyYTA3NGNlYzY4ZTViYWQ2MGQ2MzIwNmMwNTA5NzRlMDhhZmQ4MDQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAzOjM0IDIwMDcgLTA1MDAKCiAgICBpbmNsdWRlLyBub24tY29uZmlnOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1ZmNmNTQzZTBiNjYyOGM3NmZmNDg3MDViMWIwNTY2YmZkMTE1MDdiCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMzoyOCAyMDA3IC0wNTAwCgogICAgdG9vbHMvIDogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTEwN2ViZTBkMzUyNDIwODk1YWI2OWI3MTU2OTdiZGViYzhjYWY1MApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDM6MjMgMjAwNyAtMDUwMAoKICAgIGJvYXJkL1trLXpdKjogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNWUzNzgwMDNkNTkyZWE4MjhlYzY5ZDZkZWZjZDRkZTc5MDk2ZGQ1YwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDM6MTkgMjAwNyAtMDUwMAoKICAgIGJvYXJkL1tNYS1pXSo6IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDczNzE4NDExNGVjOWM5ZTBhYjk0ZDY3MTM1MzYxMjYwNzNiZDI0NzIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAzOjE1IDIwMDcgLTA1MDAKCiAgICBjcHUvIG5vbi1tcGMqOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNDgwNzBmZTVmZTQ0MGRmYjVlZTUyNjhjOTIwZGU3MGU0OGVhMzI3CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMzowOCAyMDA3IC0wNTAwCgogICAgY3B1L21wYyovIDogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGM1MDVkYjBhMGRjMWY2NzBiMTNjZTNiNGQzZmJmMWVjNWIzY2JkMgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDM6MDMgMjAwNyAtMDUwMAoKICAgIGxpYl8qLzogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzNmMDMyMDIxZWM1ZjEzY2RhOGZhYTRlMzRiNmRlODA5NjBlYjg2ZgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDI6NTggMjAwNyAtMDUwMAoKICAgIGxpYl9wcGMvOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5OGI3OTAwM2MyMWMyNTc4MjA2MDAzMjU2ZGU0ZTc4MWQ2YjM2Y2E4CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMjo1MyAyMDA3IC0wNTAwCgogICAgcnRjLzogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNmUyMTE1YWNiNmE4OTJkNTNhNjg4MWJmMjUzYWU0MWQzZGYzOTE1NgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDI6NDkgMjAwNyAtMDUwMAoKICAgIG5ldC86IEF1Z21lbnQgQ09ORklHX0NPTU1BTkRTIHRlc3RzIHdpdGggZGVmaW5lZChDT05GSUdfQ01EXyopLgoKICAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IHN0ZXAgdGhhdCBhbGxvd3MgYm90aCB0aGUgb2xkZXIgZm9ybQogICAgYW5kIHRoZSBuZXcgZm9ybSB0byBjby1leGlzdCBmb3IgYSB3aGlsZSB1bnRpbCB0aGUgb2xkZXIgY2FuCiAgICBiZSByZW1vdmVkIGVudGlyZWx5LgoKICAgIEFsbCB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9mIHRoZSBmb3JtOgogICAgQmVmb3JlOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpCiAgICBBZnRlcjoKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKSB8fCBkZWZpbmVkKENPTkZJR19DTURfQVVUT1NDUklQVCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ1Y2RiOWI3MmM5NDY1NWM3MzA4YjQ2NGEyNjY2MDU3YzBiMjg2ZTAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglNb24gSnVuIDExIDE5OjAyOjM0IDIwMDcgLTA1MDAKCiAgICBkaXNrLzogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGUxMDlhZTk4Mjk0YTVjYTdmZjg0OGI3NjUyYzdiZmQ0MDIzYTk0YQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDI6MjAgMjAwNyAtMDUwMAoKICAgIGZzLzogQXVnbWVudCBDT05GSUdfQ09NTUFORFMgdGVzdHMgd2l0aCBkZWZpbmVkKENPTkZJR19DTURfKikuCgogICAgVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgc3RlcCB0aGF0IGFsbG93cyBib3RoIHRoZSBvbGRlciBmb3JtCiAgICBhbmQgdGhlIG5ldyBmb3JtIHRvIGNvLWV4aXN0IGZvciBhIHdoaWxlIHVudGlsIHRoZSBvbGRlciBjYW4KICAgIGJlIHJlbW92ZWQgZW50aXJlbHkuCgogICAgQWxsIHRyYW5zZm9ybWF0aW9ucyBhcmUgb2YgdGhlIGZvcm06CiAgICBCZWZvcmU6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkKICAgIEFmdGVyOgoJI2lmIChDT05GSUdfQ09NTUFORFMgJiBDRkdfQ01EX0FVVE9TQ1JJUFQpIHx8IGRlZmluZWQoQ09ORklHX0NNRF9BVVRPU0NSSVBUKQoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDViZTQzZGU5M2ZmOTA1YzQ2NWU1MDlkNDVhMzE2NGVmNDhkMjZlNwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CU1vbiBKdW4gMTEgMTk6MDI6MTAgMjAwNyAtMDUwMAoKICAgIGRyaXZlcnMvOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNDUzOTYwZDRmZGI4N2IzOTcwZDk2MTE5YjkwZGYyZWQwMjRmYzRhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMjowNSAyMDA3IC0wNTAwCgogICAgY29tbW9uLyBub24tY21kOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2NWM0NTBiNDdhNjI2NTlkNTIyY2ZhOGY0ZmExZTRlNWM2MGRjY2QwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMTo1NCAyMDA3IC0wNTAwCgogICAgY29tbW9uL2NtZF9baS16XSogOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhNzZhZGM4MTQyYzFkOTU2Mzg1YTEwOWUwYjcwZjkzMTllZGU0ZDY2CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMTo0MyAyMDA3IC0wNTAwCgogICAgY29tbW9uL2NtZF9bYS1mXSogOiBBdWdtZW50IENPTkZJR19DT01NQU5EUyB0ZXN0cyB3aXRoIGRlZmluZWQoQ09ORklHX0NNRF8qKS4KCiAgICBUaGlzIGlzIGEgY29tcGF0aWJpbGl0eSBzdGVwIHRoYXQgYWxsb3dzIGJvdGggdGhlIG9sZGVyIGZvcm0KICAgIGFuZCB0aGUgbmV3IGZvcm0gdG8gY28tZXhpc3QgZm9yIGEgd2hpbGUgdW50aWwgdGhlIG9sZGVyIGNhbgogICAgYmUgcmVtb3ZlZCBlbnRpcmVseS4KCiAgICBBbGwgdHJhbnNmb3JtYXRpb25zIGFyZSBvZiB0aGUgZm9ybToKICAgIEJlZm9yZToKCSNpZiAoQ09ORklHX0NPTU1BTkRTICYgQ0ZHX0NNRF9BVVRPU0NSSVBUKQogICAgQWZ0ZXI6CgkjaWYgKENPTkZJR19DT01NQU5EUyAmIENGR19DTURfQVVUT1NDUklQVCkgfHwgZGVmaW5lZChDT05GSUdfQ01EX0FVVE9TQ1JJUFQpCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlYzYzYjEwYjYxZmQ2ODIzOGQ0YzE1YzFjZDA0YzBiMzgyMjhlMmMxCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxOTowMTozNCAyMDA3IC0wNTAwCgogICAgSW50cm9kdWNlIGluaXRpYWwgdmVyc2lvbnMgb2YgbmV3IENvbW1hbmQgQ29uZmlnIGZpbGVzLgoKICAgIERlcml2ZSB0aHJlZSBuZXcgZmlsZXMgZnJvbSBjbWRfY29uZmRlZnMuaDoKCWNvbmZpZ19ib290cC5oIC0gSGFzIEJPT1RQIHJlbGF0ZWQgY29uZmlnIG9wdGlvbnMsIG5vdCBjb21tYW5kcwoJY29uZmlnX2NtZF9hbGwuaCAtIEhhcyBhIENPTkZJR19DTURfKiBkZWZpbml0aW9uIGZvciBldmVyeSBjb21tYW5kCgljb25maWdfY21kX2RlZmF1bHQuaCAtIEhhcyBhIENPTkZJR19DTURfKiBkZWZpbml0aW9uIGZvciBkZWZhdWx0IGNtZHMuCgogICAgRm9yIG5vdywgaW5jbHVkZSAiY29uZmlnX2Jvb3RwLmgiIGZvciBjb21wYXRhYmlsaXR5IHVudGlsIGFsbAogICAgdXNlcnMgb2YgaXQgZGlyZWN0bHkgaW5jbHVkZSBpdCBwcm9wZXJseS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDFmMmEwNTg5ODY1ODkwMGRjNTcxNzc2MWUyN2FiZjIwNTJlNjdlMTMKQXV0aG9yOiBNdXNodGFxIEtoYW4gPG11c2h0YXFrXzkyMUB5YWhvby5jby5pbj4KRGF0ZToJU2F0IEp1biAzMCAxODo1MDo0OCAyMDA3ICswMjAwCgogICAgRml4IFMtQVRBIHN1cHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogbXVzaHRhcSBraGFuIDxtdXNodGFxa185MjFAeWFob28uY28uaW4+Cgpjb21taXQgYTVkNzFlMjkwZjM2NzMyNjliZThlZWZiNGVjNDRmNTM0MTJmOTQ2MQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIEp1biAyNSAxOToxMTozNyAyMDA3ICswMjAwCgogICAgW1BDUzQ0MEVQXQlnZXQgcmlkIG9mIENPTkZJR19QUEM0eHhfVVNFX1NQRF9ERFJfSU5JVF9IQU5HCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgYTFiZDYyMDBlY2NkM2EwMjA0MGE5NTVkNWY0M2QzZWUxZmM5ZjkzYgpBdXRob3I6IE5pa2xhdXMgR2lnZXIgPG5pa2xhdXMuZ2lnZXJAbmVzdGFsLmNvbT4KRGF0ZToJTW9uIEp1biAyNSAxNzowMzoxMyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBQUEM0NDBFUHggRW1pdCBERFIwIHJlZ2lzdGVycyBvbiBtYWNoaW5lIGNoZWNrIGludGVycnVwdAoKICAgIFRoaXMgcGF0Y2ggcHJpbnRzIHRoZSBERFIgc3RhdHVzIHJlZ2lzdGVycyB1cG9uIG1hY2hpbmUgY2hlY2sKICAgIGludGVycnVwdCBvbiB0aGUgNDQwRVB4L0dSeC4gVGhpcyBjYW4gYmUgdXNlZnVsIGVzcGVjaWFsbHkgd2hlbgogICAgRUNDIHN1cHBvcnQgaXMgZW5hYmxlZC4KCiAgICBJIGFkZGVkIHNvbWUgc21hbGwgY2hhbmdlcyB0byB0aGUgb3JpZ2luYWwgcGF0Y2ggZnJvbSBOaWtsYXVzIHRvCiAgICBtYWtlIGl0IGNvbXBpbGUgY2xlYW4uCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXN0YWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDgwNzAxOGZiN2ZhY2ViNDI5Y2UwY2I0N2JhYTIwNzM3NDZiMzNhNGUKQXV0aG9yOiBOaWtsYXVzIEdpZ2VyIDxuaWtsYXVzLmdpZ2VyQG5lc3RhbC5jb20+CkRhdGU6CU1vbiBKdW4gMjUgMTY6NTA6NTUgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4IE89YnVpbGRpciBidWlsZHMKCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBwcm9ibGVtIHRvIGFzc2VtYmxlIGNwdS9wcGM0eHgvc3RhcnQuUwogICAgZXhwZXJpZW5jZWQgbGFzdCB3ZWVrIHdoZXJlIGJ1aWxkaW5nIGZhaWxlZCBoYXZpbmcgc3BlY2lmaWVkCiAgICBPPS4uL2J1aWxkLnNlcXVvaWEuCgogICAgU2lnbmVkLW9mZi1ieTogTmlrbGF1cyBHaWdlciA8bmlrbGF1cy5naWdlckBuZXN0YWwuY29tPgoKY29tbWl0IDQ2NmZmZjFhN2JiNWZlNzY0YTA2NDUwNjI2ZjYwOTgyMTlmNDQ2YjgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKdW4gMjUgMTU6NTc6MzkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIHBjaV9wcmVfaW5pdCgpIGZvciA0MDUgYm9hcmRzCgogICAgVGhpcyBwYXRjaCByZW1vdmVzIHRoZSBDRkdfUENJX1BSRV9JTklUIG9wdGlvbiBjb21wbGV0ZWx5LCBzaW5jZQogICAgaXQncyBub3QgbmVlZGVkIGFueW1vcmUgd2l0aCB0aGUgcGF0Y2ggZnJvbSBNYXR0aGlhcyBGdWNocyB3aXRoCiAgICB0aGUgIndlYWsiIHBjaV9wcmVfaW5pdCgpIGltcGxlbWVudGF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2ZjM1YzUzMTY2MjEzYzI0YTVhMGUyMzkwZWQ4NjExMzZmZjczODcwCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVN1biBKdW4gMjQgMTc6NDE6MjEgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogTWFpbnRlbmFuY2UgcGF0Y2ggZm9yIGVzZCdzIENQQ0k0MDUgZGVyaXZhdHMKCiAgICAtYWRkIHBjaV9wcmVfaW5pdCgpIGZvciBwY2kgaW50ZXJydXB0IGZpeHVwIGNvZGUKICAgIC1kaXNhYmxlIHBoeSBzbGVlcCBtb2RlIHZpYSByZXNldF9waHkoKSBmdW5jdGlvbgogICAgLXVzZSBjb3JyZWN0IGlvIGFjY2Vzc29ycwogICAgLWNsZWFudXAKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA1YTFjOWZmMGM0NDMwNWI1N2NiNGQ4ZjkzNjliYmE5MGJjZjBlMWY4CkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVN1biBKdW4gMjQgMTc6MjM6NDEgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIHBjaV9wcmVfaW5pdCgpIGZvciA0MDUgYm9hcmRzCgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGNhbGxpbmcgYSBwbGF0dGZvcm0gZGVwZW5kYW50CiAgICBwY2lfcHJlX2luaXQoKSBmdW5jdGlvbiBmb3IgNDA1IGJvYXJkcy4gVGhpcyBjYW4gYmUgdXNlZCB0bwogICAgbW92ZSB0aGUgY3VycmVudCBwY2lfNDA1Z3BfZml4dXBfaXJxKCkgZnVuY3Rpb24gaW50byB0aGUKICAgIGJvYXJkIGNvZGUuCgogICAgVGhpcyBwYXRjaCBhbHNvIG1ha2VzIHRoZSBDRkdfUENJX1BSRV9JTklUIGRlZmluZSBvYnNvbGV0ZS4KICAgIEEgZGVmYXVsdCBmdW5jdGlvbiB3aXRoICd3ZWFrJyBhdHRyaWJ1dGUgaXMgdXNlZCB3aGVuCiAgICBhIGJvYXJkIHNwZWNpZmljIHBjaV9wcmVfaW5pdCgpIGlzIG5vdCBpbXBsZW1lbnRlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCAxNjM2ZDFjODUyOWMwMDZkMTA2Mjg3Y2ZiYzIwY2QwYTI0NmZlMWNiCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAyMiAyMzo1OTowMCAyMDA3ICswMjAwCgogICAgQ29kaW5nIHN0eWxrZSBjbGVhbnVwOyByZWJ1aWxkIENIQU5HRUxPRwoKY29tbWl0IDJkYzY0NDUxYjRjMDhmZmQ2MTkzNzJhYmZkYzI1MDZhMmUyMzYzYjkKQXV0aG9yOiBJZ29yIExpc2l0c2luIDxpZ29yQGVtY3JhZnQuY29tPgpEYXRlOglXZWQgQXByIDE4IDE0OjU1OjE5IDIwMDcgKzA0MDAKCiAgICBBZGFwdCBsb2cgYnVmZmVyIGNvZGUgdG8gc3VwcG9ydCBMaW51eCAyLjYKCiAgICBBIG5ldyBlbnZpcm9ubWVudCB2YXJpYWJsZSwgImxvZ3ZlcnNpb24iLCBzZWxlY3RzIHRoZSBsb2cgYnVmZmVyCiAgICBiZWhhdmlvdXIuIElmIGl0IGlzIG5vdCBzZXQgb3Igc2V0IHRvIGEgdmFsdWUgb3RoZXIgdGhhbiAyLCB0aGVuIHRoZQogICAgb2xkLCBMaW51eCAyLjQuNCwgYmVoYXZpb3VyIGlzIHNlbGVjdGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IElnb3IgTGlzaXRzaW4gPGlnb3JAZW1jcmFmdC5jb20+CiAgICAtLQoKY29tbWl0IGExMWUwNjk2NWVjOTEyNzBjNTE4NTM0MDdmZjEyNjFkM2M3NDAzODYKQXV0aG9yOiBJZ29yIExpc2l0c2luIDxpZ29yQGVtY3JhZnQuY29tPgpEYXRlOglXZWQgTWFyIDI4IDE5OjA2OjE5IDIwMDcgKzA0MDAKCiAgICBFeHRlbmQgUE9TVCBzdXBwb3J0IGZvciBQUEM0NDAKCiAgICBBZGRlZCBtZW1vcnksIENQVSwgVUFSVCwgSTJDIGFuZCBTUFIgUE9TVCB0ZXN0cyBmb3IgUFBDNDQwLgoKICAgIFNpZ25lZC1vZmYtYnk6IElnb3IgTGlzaXRzaW4gPGlnb3JAZW1jcmFmdC5jb20+CiAgICAtLQoKY29tbWl0IDU2NmE0OTRmNTkyYWUzYjNjMDc4NWQ5MGQ0ZTFiYTQ1NTc0ODgwYzQKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMjIgMTk6MTE6NTQgMjAwNyArMDIwMAoKICAgIFtQQ1M0NDBFUF0JICAgIHVwZ3JhZGUgdGhlIFBDUzQ0MEVQIGJvYXJkOgoJCSAgICAtIFNob3cgb24gdGhlIFN0YXR1cyBMRURzLCBzb21lIFN0YXRlcyBvZiB0aGUgYm9hcmQuCgkJICAgIC0gR2V0IHRoZSBNQUMgYWRkcmVzc2VzIGZyb20gdGhlIEVFUHJvbQoJCSAgICAtIHVzZSBQUkVCT09UCgkJICAgIC0gdXNlIHRoZSBDRiBvbiB0aGUgYm9hcmQuCgkJICAgIC0gY2hlY2sgdGhlIFUtQm9vdCBpbWFnZSBpbiB0aGUgRmxhc2ggd2l0aCBhIFNIQTEKCQkgICAgICBjaGVja3N1bS4KCQkgICAgLSB1c2UgZHluYW1pYyBUTEIgZW50cmllcyBnZW5lcmF0aW9uIGZvciB0aGUgU0RSQU0KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCAzYTFmNWM4MWIwYjk1NTc4MTdhNzg5YmVjZTgzOTkwNTU4MWMyMjA1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDIyIDE2OjU4OjQwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBwcm9ibGVtIHdpdGggZXh0ZW5kZWQgcHJvZ3JhbV90bGIoKSBmdW50aW9uCgogICAgVGhlIHJlY2VudGx5IGV4dGVuZGVkIHByb2dyYW1fdGxiKCkgZnVuY3Rpb24gaGFkIGEgcHJvYmxlbSB3aGVuCiAgICBtdWx0aXBsZSBUTEIncyBoYWQgdG8gYmUgc2V0dXAgKGZvciBleGFtcGxlIHdpdGggNTEyTUIgb2YgU0RSQU0pLiBUaGUKICAgIHZpcnR1YWwgYWRkcmVzcyB3YXMgbm90IGluY3JlbWVudGVkLiBUaGlzIHBhdGNoIGZpeGVzIHRoaXMgaXNzdWUKICAgIGFuZCBpcyB0ZXN0ZWQgb24gS2F0bWFpIHdpdGggNTEyTUIgU0RSQU0uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDAyMDMyZThmMTQ3NTFhMWE3NTFiMDkyNDBhNGYxY2Y5ZjhhMjA3N2YKQXV0aG9yOiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgSnVuIDIyIDE0OjU4OjA0IDIwMDcgKzAyMDAKCiAgICBbcHBjXSBGaXggYnVpbGQgYnJlYWthZ2UgZm9yIGFsbCBub24tNHh4IFBvd2VyUEMgdmFyaWFudHMuCgogICAgLSBhZGFwdCB0byB0aGUgbW9yZSBnZW5lcmljIEVYQ0VQVElPTl9QUk9MT0cgYW5kIENSSVRfRVhDRVBUSU9OIG1hY3JvcwogICAgLSBtaW5vciA0eHggY2xlYW51cAoKY29tbWl0IGQ2NzdiMzI4NTVmNTc3YWUyNjkwZGNkNjRhMTcyY2RkNzA2ZTBmZmMKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CUZyaSBKdW4gMjIgMTA6MzQ6MTIgMjAwNyArMDIwMAoKICAgIFtwYXRjaF0gYWRkIG5hbmRfaW5pdCgpIHByb3RvdHlwZSB0byBuYW5kLmgKCiAgICBzaW5jZSBuYW5kX2luaXQoKSBpcyBleHBlY3RlZCB0byBiZSBjYWxsZWQgYnkgb3RoZXIgcGFydHMgb2YgdS1ib290LCB0aGVyZQogICAgc2hvdWxkIGJlIGEgcHJvdG90eXBlIGZvciBpdCBpbiBuYW5kLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODNiNGNmYTNkNjI5ZGZmMDI2NDM2NjI2M2M1ZTk0ZDlhNTBhZDgwYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKdW4gMjAgMTg6MTQ6MjQgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsZSBjbGVhbnVwLiBSZWZyZXNoIENIQU5HRUxPRy4KCmNvbW1pdCBiM2Y5ZWM4NmUzODgyMDdmZDAzZGNkZjdiMTQ1YjllZDA4MGJmMDI0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSnVuIDE5IDE3OjIyOjQ0IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEFkZCBib290c3RyYXAgY29tbWFuZCBmb3IgQU1DQyBTZXF1b2lhICg0NDBFUHgpIGV2YWwgYm9hcmQKCiAgICBUaGlzIHBhdGNoIGFkZHMgYSBib2FyZCBjb21tYW5kIHRvIGNvbmZpZ3VyZSB0aGUgSTJDIGJvb3RzdHJhcCBFRVBST00KICAgIHZhbHVlcy4gUmlnaHQgbm93IDUzMyBhbmQgNjY3TUh6IGFyZSBzdXBwb3J0ZWQgZm9yIGJvb3RpbmcgZWl0aGVyIHZpYSBOT1IKICAgIG9yIE5BTkQgRkxBU0guIEhlcmUgdGhlIHVzYWdlOgoKICAgID0+IGJvb3RzdHJhcCA1MzMgbm9yCTt0byBjb25maWd1cmUgdGhlIGJvYXJkIGZvciA1MzNNSHogTk9SIGJvb3RpbmcKICAgID0+IGJvb3RzdHJhcCA2NjcgbmFuZAk7dG8gY29uZmlndXJlIHRoZSBib2FyZCBmb3IgNjY3TUh6IE5OQU5EIGJvb3RpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZGY4YTI0Y2RkMzAxNTE1MDVjZjU3YmJlZTUyODllOTFiZjUzYmQxYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEp1biAxOSAxNjo0MjozMSAyMDA3ICswMjAwCgogICAgW3BwYzR4eF0gRml4IHByb2JsZW0gd2l0aCBOQU5EIGJvb3Rpbmcgb24gQU1DQyBBY2FkaWEKCiAgICBUaGUgbGF0ZXN0IGNoYW5nZXMgc2hvd2VkIGEgcHJvYmxlbSB3aXRoIHRoZSBsb2NhdGlvbiBvZiB0aGUgTkFORC1TUEwKICAgIGltYWdlIGluIHRoZSBPQ00gYW5kIHRoZSBpbml0LWRhdGEgYXJlYSAoaW5jbC4gY2FjaGUpLiBUaGlzIHBhdGNoCiAgICBmaXhlcyB0aGlzIHByb2JsZW0uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg2YmE5OWUzNDE5NDM5NDA1MmQyNGMwNGRjNDBkMTI2M2QyOWEyNmYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKdW4gMTkgMTY6NDA6NTggMjAwNyArMDIwMAoKICAgIFtwcGM0eHhdIENoYW5nZSBib2FyZC9hbWNjL2FjYWRpYS9jcHIuYyB0byBwbGwuYwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4ZTU4NWYwMmY4MmMxN2NjNjZjZDIyOWRiZjBmZDMwNjZiYmJmNjU4CkF1dGhvcjogVHNpQ2h1bmcgTGlldyA8VHNpLUNodW5nLkxpZXdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1biAxOCAxMzo1MDoxMyAyMDA3IC0wNTAwCgogICAgQWRkZWQgTTUzMjlBRkVFIGFuZCBNNTMyOUJGRUUgUGxhdGZvcm1zCgogICAgQWRkZWQgYm9hcmQvZnJlZXNjYWxlL201MzI5ZXZiLCBjcHUvbWNmNTMyeCwgZHJpdmVycy9uZXQsCiAgICBkcml2ZXJzL3NlcmlhbCwgIGltbWFwXzUzMjkuaCwgbTUzMjkuaCwgbWNmcnRjLmgsCiAgICBpbmNsdWRlL2NvbmZpZ3MvTTUzMjlFVkIuaCwgbGliX202OGsvaW50ZXJydXB0cy5jLCBhbmQKICAgIHJ0Yy9tY2ZydGMuYwoKICAgIE1vZGlmaWVkIENSRURJVFMsIE1BS0VGSUxFLCBNYWtlZmlsZSwgUkVBRE1FLCBjb21tb24vY21kX2JkaW5mby5jLAogICAgY29tbW9uL2NtZF9taWkuYywgaW5jbHVkZS9hc20tbTY4ay9ieXRlb3JkZXIuaCwgaW5jbHVkZS9hc20tbTY4ay9mZWMuaCwKICAgIGluY2x1ZGUvYXNtLW02OGsvaW8uaCwgaW5jbHVkZS9hc20tbTY4ay9tY2Z0aW1lci5oLAogICAgaW5jbHVkZS9hc20tbTY4ay9tY2Z1YXJ0LmgsIGluY2x1ZGUvYXNtLW02OGsvcHRyYWNlLmgsCiAgICBpbmNsdWRlL2FzbS1tNjhrL3UtYm9vdC5oLCBsaWJfbTY4ay9NYWtlZmlsZSwgbGliX202OGsvYm9hcmQuYywKICAgIGxpYl9tNjhrL3RpbWUuYywgbmV0L2V0aC5jIGFuZCBydGMvTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBUc2lDaHVuZyBMaWV3IDxUc2ktQ2h1bmcuTGlld0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDA5MzE3MmYwOGQ2YWZiM2YzNGQ4YTJmMjZlZTBlZTg3NDI2MWNmMjcKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVN1biBKdW4gMTcgMTk6MDQ6MTEgMjAwNyArMDIwMAoKICAgIFtmaXhdIGVtYWlsIHJlcGFyYXRpb24KCmNvbW1pdCAzNjY2YWZmZmU3YmFmODU5YzZhZTBjZTJiZWJiYzhhYjdlNTEyZGRjCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTdW4gSnVuIDE3IDE5OjAzOjIxIDIwMDcgKzAyMDAKCiAgICBbRklYXSBmaXggbWljcm9ibGF6ZSBmaWxlIHBlcm1pdGlzc2lvbgoKY29tbWl0IGU3Mzg0NmI3Y2YxZTI5YWU2MzViZjliYjU1NzAyNjk2NjNkZjJlZTUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMTUgMTE6MzM6NDEgMjAwNyArMDIwMAoKICAgIFtwcGM0eHhdIENoYW5nZSBsd21vbjUgcG9ydCB0byB3b3JrIHdpdGggcmVjZW50IDQ0MCBleGNlcHRpb24gcmV3b3JrCgogICAgTm93IENPTkZJR180NDAgaGFzIHRvIGJlIGRlZmluZWQgaW4gYWxsIFBQQzQ0MCBib2FyZCBjb25maWcgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGVmYTM1Y2YxMmQ5MTRkNGNhYmE5NDJhY2Q1YTZjNDVmMjE3ZGUzMDIKQXV0aG9yOiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KRGF0ZToJRnJpIEp1biAxNSAxMToxOToyOCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBDbGVhbiB1cCA0NDAgZXhjZXB0aW9ucyBoYW5kbGluZwoKICAgIC0gSW50cm9kdWNlZCBkZWRpY2F0ZWQgc3dpdGNoZXMgZm9yIGJ1aWxkaW5nIDQ0MCBhbmQgNDA1IGltYWdlcyByZXF1aXJlZAogICAgICBmb3IgNDQwLXNwZWNpZmljIG1hY2hpbmUgaW5zdHJ1Y3Rpb25zIGxpa2UgJ3JmbWNpJyBldGMuCgogICAgLSBFeGNlcHRpb24gdmVjdG9ycyBtb3ZlZCB0byB0aGUgcHJvcGVyIGxvY2F0aW9uIChfc3RhcnQgbW92ZWQgYXdheSBmcm9tCiAgICAgIHRoZSBjcml0aWNhbCBleGNlcHRpb24gaGFuZGxlciBzcGFjZSwgd2hpY2ggaXQgb2NjdXBpZWQpCgogICAgLSBDcml0aWNhbElucHV0IG5vdyBzZXJ2aWNlZCAod2l0aCBkZWZhdWx0IGhhbmRsZXIpCgogICAgLSBNYWNoaW5lQ2hlY2sgcHJvcGVybHkgc2VydmljZWQgKGFkZGVkIGEgZGVkaWNhdGVkIGhhbmRsZXIgYW5kIHJldHVybgogICAgICBzdWJyb3V0aW5lKQoKICAgIC0gT3ZlcmFsbCBjbGVhbnVwIG9mIGV4Y2VwdGlvbnMgZGVjbGFyZWQgd2l0aCBTVERfRVhDRVBUSU9OIG1hY3JvICh1bnVzZWQsCiAgICAgIHVuaGFuZGxlZCBhbmQgdGhvc2Ugbm90IHJlbGV2YW50IGZvciA0eHggd2VyZSBlbGltaW5hdGVkKQoKICAgIC0gRWxpbWluYXRlZCBMaW51eCBsZWZ0b3ZlcnMsIHJlbW92ZWQgZGVhZCBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSYWZhbCBKYXdvcm93c2tpIDxyYWpAc2VtaWhhbGYuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGI3NjVmZmI3NzNmNWEzY2Q1YWE5NGVjNzZiNmEwNTI3NmI4Y2Q1YjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMTUgMDg6MTg6MDEgMjAwNyArMDIwMAoKICAgIFtwcGM0eHhdIEFkZCBpbml0aWFsIGx3bW9uNSBib2FyZCBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRzIGluaXRpYWwgc3VwcG9ydCBmb3IgdGhlIExpZWJoZXJyIGx3bW9uNSBib2FyZCBldXFpcHBlZAogICAgd2l0aCBhbiBBTUNDIDQ0MEVQeCBQb3dlclBDLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4NWY3MzczNzZkNWZmM2Q1ZjBkNDVhOGI2NTc2ODYzMjZkMTc1MzA3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDE1IDA3OjM5OjQzIDIwMDcgKzAyMDAKCiAgICBbcHBjNHh4XSBFeHRlbmQgNDR4IEdQSU8gc2V0dXAgd2l0aCBkZWZhdWx0IG91dHB1dCBzdGF0ZQoKICAgIFRoZSBib2FyZCBjb25maWcgYXJyYXkgQ0ZHXzQ0MF9HUElPX1RBQkxFIGZvciB0aGUgcHBjNDQwIEdQSU8gc2V0dXAKICAgIGlzIGV4dGVuZGVkIHdpdGggdGhlIGRlZmF1bHQgR1BJTyBvdXRwdXQgc3RhdGUgKGxldmVsKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZGJjYTIwODUxOGU1ZTdmMDFhNjQyMDU4OGQxY2Q2ZTYwZGI3NGMyYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEp1biAxNCAxMToxNDozMiAyMDA3ICswMjAwCgogICAgW3BwYzR4eF0gRXh0ZW5kIHByb2dyYW1fdGxiKCkgd2l0aCB2aXJ0dWFsICYgcGh5c2ljYWwgYWRkcmVzc2VzCgogICAgTm93IHByb2dyYW1fdGxiKCkgYWxsb3dzIHRvIHByb2dyYW0gYSBUTEIgKG9yIG11bHRpcGxlKSB3aXRoCiAgICBkaWZmZXJlbnQgdmlydHVhbCBhbmQgcGh5c2ljYWwgYWRkcmVzc2VzLiBXaXRoIHRoaXMgY2hhbmdlLCBub3cgb25lCiAgICBwaHlzaWNhbCByZWdpb24gKGUuZy4gU0RSQU0pIGNhbiBiZSBtYXBwZWQgMiB0aW1lcywgb25jZSB3aXRoIGNhY2hlcwogICAgZGlhYmxlZCBhbmQgb25jZSB3aXRoIGNhY2hlcyBlbmFibGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5OTEyMTIxZjdlZDgwNGVhNThmZDYyZjNmMjMwYjVkY2ZjMzU3ZDg4CkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CVdlZCBNYXkgMjMgMTk6MDI6NDEgMjAwNyArMDIwMAoKICAgIENoYW5nZSAncmVwZWF0YWJsZScgYXR0cmlidXRlIG9mIHNvbWUgY29tbWFuZHMgdG8gc2Vuc2libGUgdmFsdWVzLgoKICAgIE1vc3QgcHJvbWluZW50bHkgdGhpcyBjaGFuZ2VzICdlcmFzZScgdG8gYmUgbm9uLXJlcGVhdGFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+Cgpjb21taXQgNWFmYjIwMjA5M2Y2YTAwMTc5N2RiOTJjZjY5NWI5M2E3MGVhOWFiNApBdXRob3I6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgpEYXRlOglXZWQgTWF5IDIzIDE4OjQ3OjQ4IDIwMDcgKzAyMDAKCiAgICBGaXggJ3J1bicgbm90IHRvIGNvbnRpbnVlIGFmdGVyIGludGVycnVwdGVkIGNvbW1hbmQKCiAgICBTaWduZWQtb2ZmLWJ5OiBEZXRsZXYgWnVuZGVsIDxkenVAZGVueC5kZT4KCmNvbW1pdCA5Yjc0NjRhMmM4ODYxNGUxMDYxZjUwOWM0ODkzMGEzZDI0MGQxYTM1CkF1dGhvcjogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEp1biAxMSAxNToxNDoyNCAyMDA3ICswMjAwCgogICAgVVNCOiBUaGlzIHBhdGNoIGZpeCByZWFkbCBpbiBvaGNpIHN3YXAgcmVnIGFjY2Vzcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhmODQxNmZhZGE5ZmFmOTRiOWE5MmYyMWZlNjAwMDY0M2NiNTIxZDUKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgSnVuIDggMTQ6NTI6MjIgMjAwNyArMDIwMAoKICAgIFRRTTUyMDA6IEFkZCBGbGF0IERldmljZSBUcmVlIHN1cHBvcnQsIHVwZGF0ZSBkZWZhdWx0IGVudi4gYWNjb3JkaW5nbHkuCgogICAgU2lnbmVkLW9mZi1ieTogSmFuIFdyb2JlbCA8d3JyQHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDkwNDVmMzNjMDIzZjY5ODY2MGEyZTQ1ZDFiMjE5NGMwNzExYWJlYmMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDggMTA6MjQ6NTggMjAwNyArMDIwMAoKICAgIEZpeCBjb25maWcgcHJvYmxlbXMgb24gU0MzIGJvYXJkOyBtYWtlIGlkZV9yZXNldF90aW1lb3V0IHdvcmsuCgpjb21taXQgZmJhM2ZiMDQ0OWI4YTU0NTQyYWVkMWU3MjlkZTc2ZTdmNWEyZmYxYgpBdXRob3I6IEJlbm/DrnQgTW9uaW4gPGJtb25pbkBhZGVuZW8uZXU+CkRhdGU6CUZyaSBKdW4gOCAwOTo1NToyNCAyMDA3ICswMjAwCgogICAgW1BBVENIXSBmaXggZ3BpbyBzZXR0aW5nIHdoZW4gdXNpbmcgQ0ZHXzQ0MF9HUElPX1RBQkxFCgogICAgU2V0IHRoZSBjb3JyZWN0IHZhbHVlIGluIEdQSU94X1RDUiB3aGVuIGNvbmZpZ3VyaW5nIHRoZSBncGlvCiAgICB3aXRoIENGR180NDBfR1BJT19UQUJMRS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW5vaXQgTW9uaW4gPGJtb25pbkBhZGVuZW8uZXU+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjUzOWVkYzA3NmNmZTUyYmZmOTE5ZGQ1MTJiYThkN2FmMGUyMjA5MgpBdXRob3I6IFZhZGltIEJlbmRlYnVyeSA8dmJlbmRlYkBnb29nbGUuY29tPgpEYXRlOglUaHUgTWF5IDI0IDE1OjUyOjI1IDIwMDcgLTA3MDAKCiAgICBjb3NtZXRpYyBjaGFuZ2VzIHRvIGJjbTU3MHggZHJpdmVyCgogICAgVGhpcyBpcyBhIGNvc21ldGljIG9ubHkgY2hhbmdlcyBzdWJtaXNzaW9uLgogICAgSXQgYWZmZWN0cyBmaWxlcyByZWxldmFudCB0byBiY201NzB4IGRyaXZlci4KICAgIHRoZSBjb21tYW5kcyB1c2VkIHRvIGdlbmVyYXRlIHRoaXMgY2hhbmdlIHdhcwoKICAgIGNkIGRyaXZlcnMKICAgIExpbmRlbnQgLXBjcyAtbDgwICBiY201NzB4LmMgICBiY201NzB4X2xtLmggICBiY201NzB4X21tLmgJdGlnb24zLmMgIHRpZ29uMy5oCgogICAgVGhlIEJNVyB0YXJnZXQgKHRoZSBvbmx5IG9uZSB1c2luZyB0aGlzIGNoaXAgc28gZmFyKSBidWlsZHMgY2xlYW5seSwgdGhlCiAgICBgYmVmb3JlIGFuZCBhZnRlcicgZ2VuZXJhdGVkIG9iamVjdCBmaWxlcyBmb3IgZHJpdmVycy9iY201NzB4LmMgYW5kCiAgICBkcml2ZXJzL3RpZ29uMy5vIGFyZSBpZGVudGljYWwgYXMgcmVwb3J0ZWQgYnkgb2JqZHVtcCAtZAoKICAgIFNpZ25lZC1vZmYtYnk6IFZhZGltIEJlbmRlYnVyeSA8dmJlbmRlYkBnb29nbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgNzI1NjcxY2NkMmNkMDRjOWViYzUwYzllNWE5NGRkOGNiYWRlNjZiNwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBKdW4gNiAxNjoyNjo1NiAyMDA3ICswMjAwCgogICAgQ29kaW5nIFN0eWxlIGNsZWFudXA7IGdlbmVyYXRlIG5ldyBDSEFOR0VMT0cgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDE5ZDc2M2MzNWUwYjU1NjhlYWYwYjhhZGJmN2E2OGNjZmU3ZmEyNDMKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglXZWQgSnVuIDYgMTE6NDk6NDQgMjAwNyArMDIwMAoKICAgIFRSQUIsIFVTQjogdXBkYXRlIHRyYWIgYm9hcmQgY29uZmlndXJhdGlvbiBmb3IgdXNlIG9mIGdlbmVyaWMgb2hjaSBkcml2ZXIKCmNvbW1pdCBkYWNlNDVhY2QxYzEzNTdkYWE5MzIyMDk5ZDA3YzlhOWUwOGIwMDI0CkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJV2VkIEp1biA2IDExOjQ5OjQzIDIwMDcgKzAyMDAKCiAgICBVU0I6IG9oY2kgZml4ZXMgYW5kIGNsZWFudXAgZm9yIHBwYzR4eCBhbmQgeW9zZW1pdGUgYm9hcmQuCgpjb21taXQgNzI2NTc1NzBiNjE2MzVjNzRmYTBjM2YwZTllN2QwNjcxYTlkMDhkZgpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVdlZCBKdW4gNiAxMTo0OTo0MyAyMDA3ICswMjAwCgogICAgVVNCOiBvaGNpIGZpeGVzIGFuZCBjbGVhbnVwIGZvciBtcGM1eHh4IGFuZCBJY2VDdWJlIGJvYXJkIGNvbmZpZwoKY29tbWl0IGZjNDNiZTQ3OGYyYWEzN2NlMzhhY2Q4NTM1NTAzODg2NmU0MTYyYWYKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglXZWQgSnVuIDYgMTE6NDk6MzUgMjAwNyArMDIwMAoKICAgIFVTQi9PSENJOiBlbmRpYW5uZXNzIGNsZWFudXAgaW4gdGhlIGdlbmVyaWMgb2hjaSBkcml2ZXIKCmNvbW1pdCBjNDQwYmZlNmQ2ZDkyZDY2NDc4YTdlODQ0MDJiMzFmNDg0MTM2MTdiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSnVuIDYgMTE6NDI6MTMgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIE5BTkQgYm9vdGluZyBzdXBwb3J0IGZvciBBTUNDIEFjYWRpYSAoNDA1RVopIGV2YWwgYm9hcmQKCiAgICBUaGlzIHBhdGNoIGFkZHMgTkFORCBib290aW5nIHN1cHBvcnQgZm9yIHRoZSBBTUNDIEFjYWRpYSBldmFsIGJvYXJkLgoKICAgIFBsZWFzZSBtYWtlIHN1cmUgdG8gY29uZmlndXJlIGp1bXBlciBKNyB0byBwb3NpdGlvbiAyLTMgd2hlbiBib290aW5nCiAgICBmcm9tIE5PUiwgYW5kIHRvIHBvc2l0aW9uIDEtMiB3aGVuIGJvb3RpbmcgZm9yIE5BTkQuCgogICAgSSBhbHNvIGFkZGVkIGEgYm9hcmQgY29tbWFuZCB0byBjb25maWd1cmUgdGhlIEkyQyBib290c3RyYXAgRUVQUk9NCiAgICB2YWx1ZXMuIFJpZ2h0IG5vdyBvbmx5IDI2N01IeiBpcyBzdXBwb3J0IGZvciBib290aW5nIGVpdGhlciB2aWEgTk9SCiAgICBvciBOQU5EIEZMQVNILiBIZXJlIHRoZSB1c2FnZToKCiAgICA9PiBib290c3RyYXAgMjY3IG5vcgk7dG8gY29uZmlndXJlIHRoZSBib2FyZCBmb3IgMjY3TUh6IE5PUiBib290aW5nCiAgICA9PiBib290c3RyYXAgMjY3IG5hbmQJO3RvIGNvbmZpZ3VyZSB0aGUgYm9hcmQgZm9yIDI2N01IeiBOTkFORCBib290aW5nCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDE4MTM1MTI1ZjkwOTk0OGI4NWQxZDY4ODFhYjRhYzBlZmI0YTFjNTgKQXV0aG9yOiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBsaW51eC5pdD4KRGF0ZToJV2VkIEp1biA2IDEwOjA4OjE0IDIwMDcgKzAyMDAKCiAgICBGaWxlcyBpbmNsdWRlL2xpbnV4L2J5dGVvcmRlci97YmlnLGxpdHRsZX1fZW5kaWFuLmggZGVmaW5lCiAgICBfX0JJR19FTkRJQU4gYW5kIF9fTElUVExFX0VORElBTi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBsaW51eC5pdD4KCmNvbW1pdCBhODFkMWMwYjg1YjEzZTlkNDVmMmQ4N2RlOTZhNTFhNmUwZWYwZjgyCkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biA2IDEwOjA4OjE0IDIwMDcgKzAyMDAKCiAgICBBZGQgVVNCIFBDSS1PSENJLCBVU0Iga2V5Ym9hcmQgYW5kIGV2ZW50IHBvbGwgc3VwcG9ydCB0byB0aGUKICAgIE1QQzg2NDFIUENOIGJvYXJkIGNvbmZpZyBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGRhZTE0Y2U4ZmJkZjM4MDAxN2RjNTRmMTcyMjE4ZTdkMmFjYzg4OQpBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gNiAxMDowODoxNCAyMDA3ICswMjAwCgogICAgVVNCIFBDSS1PSENJLCBpbnRlcnJ1cHQgcGlwZSBhbmQgdXNiIGV2ZW50IHBvbGwgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkZWQgVVNCIFBDSS1PSENJIGNoaXBzIHN1cHBvcnQsIGludGVycnVwdCBwaXBlIHN1cHBvcnQKICAgIGFuZCB1c2IgZXZlbnQgcG9sbCBzdXBwb3J0LiBGb3Igc3VwcG9ydGluZyB0aGUgVVNCIGludGVycnVwdCBwaXBlLCB0aGUKICAgIGdsb2JlIHVyYl9wcml2IGlzIG1vdmVkIHRvIHB1cmIgaW4gZWQgc3RydWN0LiBOb3csIHdlIGNhbiBwcm9jZXNzCiAgICBzZXZlcmFsIHVyYnMgYXQgb25lIHRpbWUuIFRoZSBpbnRlcnJ1cHQgcGlwZSBzdXBwb3J0IGNvZGVzIGFyZSBwb3J0ZWQKICAgIGZyb20gTGludXgga2VybmVsIDIuNC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGZkY2ZhYTFiMDIyNjhiMjg5OWUzNzRiMzVhZGY5MzZjOTExYTQ3ZWIKQXV0aG9yOiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDYgMTA6MDg6MTMgMjAwNyArMDIwMAoKICAgIFVTQiBldmVudCBwb2xsIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGFkZHMgVVNCIGV2ZW50IHBvbGwgc3VwcG9ydCwgd2hpY2ggY291bGQgYmUgdXNlZCBpbiB1c2JrYmQKICAgIGFuZCBvdGhlciB1c2IgZGV2aWNlcyBkcml2ZXIgd2hlbiB0aGUgYXN5bmNocm9ub3VzIGludGVycnVwdAogICAgcHJvY2Vzc2luZyBpcyBzdXBwb3J0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbQoKY29tbWl0IDlhMWQwMGZhNDdjMWUwNWUzZmRiNjBiMzMyMTNhZjRlMThkNGMxOGUKQXV0aG9yOiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBsaW51eC5pdD4KRGF0ZToJV2VkIEp1biA2IDEwOjA4OjEyIDIwMDcgKzAyMDAKCiAgICBJU1AxMTZ4OiBkZWxheSBmb3IgY3JhcHB5IFVTQiBrZXlzCgogICAgVXNpbmcgc29tZSAodmVyeSkgc2xvdyBVU0Iga2V5cyBjYXVzZSB0aGUgVVNCIGhvc3QgY29udHJvbGxlciBidWZmZXJzCiAgICBhcmUgbm90IHJlYWR5IHRvIGJlIHJlYWQgYnkgdGhlIENQVSBzbyB3ZSBuZWVkIGFuIGV4dHJhIGRlbGF5IGJlZm9yZQogICAgcmVhZGluZyB0aGUgVVNCIHN0b3JhZ2UgZGF0YS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBsaW51eC5pdD4KCmNvbW1pdCAwOTQ0NDE0MzY3MGM5YzIyNDNjYjdhYmE5ZjcwYjM3MTNkMzNiZWQxCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJV2VkIEp1biA2IDEwOjA4OjEyIDIwMDcgKzAyMDAKCiAgICBDaGFuZ2UgZHVwbGljYXRlIHVzYl9jcHVfaW5pdF9mYWlsIHRvIHVzYl9ib2FyZF9pbml0X2ZhaWwKCiAgICBUaGFua3MgdG8gTGlldyBUc2kgQ2h1bmcgPFRzaS1jaHVuZy5MaWV3QGZyZWVzY2FsZS5jb20+IGZvciBwb2ludGluZwogICAgdGhpcyBvdXQuCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCAzMjkyMmNkYzQ3MGZkZmQzOWJlYTBjMWM0ZjU4MmQzZmIzNDA0MjFlCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biA1IDEyOjMwOjUyIDIwMDcgLTA1MDAKCiAgICBtcGM4NjQxIGltYWdlIHNpemUgY2xlYW51cAoKICAgIGU2MDAgZG9lcyBub3QgaGF2ZSBhIGJvb3RwZyByZXN0cmljdGlvbi4KICAgIE1vdmUgdGhlIHZlcnNpb24gc3RyaW5nIHRvIGJlZ2lubmluZyBvZiBpbWFnZSBhdCBmZmYwMDAwMC4KICAgIFJlc2V0dmVjLlMgaXMgbm90IG5lZWRlZC4KICAgIFVwZGF0ZSBmbGFzaCBjb3B5IGluc3RydWN0aW9ucy4KICAgIEFkZCB0ZnRwZmxhc2ggZW52IHZhcmlhYmxlCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTNjYmUxZjkzYzU3MjJmOGViYmFkNDY4ZTMwYzA2OWEyYjUxMTA5NwpBdXRob3I6IEJlbm/DrnQgTW9uaW4gPGJtb25pbkBhZGVuZW8uZXU+CkRhdGU6CU1vbiBKdW4gNCAwODozNjowNSAyMDA3ICswMjAwCgogICAgW1BBVENIXSBGaXggcHBjNHh4IGJvb3RzdHJhcCBsZXR0ZXIgZGlzcGxheWVkIG9uIHN0YXJ0dXAKCiAgICBUaGUgYXR0YWNoZWQgcGF0Y2ggaXMgbWFpbmx5IGNvc21ldGljLCBhbGxvd2luZyB1LWJvb3QgdG8KICAgIGRpc3BsYXkgdGhlIGNvcnJlY3QgYm9vdHN0cmFwIG9wdGlvbiBsZXR0ZXIgYWNjb3JkaW5nIHRvIHRoZQogICAgZGF0YXNoZWV0cy4KCiAgICBUaGUgb3JpZ2luYWwgcGF0Y2ggd2FzIGV4dGVuZGVkIHdpdGggNDA1RVogc3VwcG9ydCBieSBTdGVmYW4KICAgIFJvZXNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbm9pdCBNb25pbiA8Ym1vbmluQGFkZW5lby5ldT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1YjEzMTNmYjI3NThmZmNlOGI2MjQ0NTdmNzc3ZDhjYzY3MDk2MDhkCkF1dGhvcjogTmlraXRhIFYuIFlvdXNoY2hlbmtvIDx5b3VzaEBkZWJpYW4ub3JnPgpEYXRlOglXZWQgTWF5IDIzIDEyOjQ1OjE5IDIwMDcgKzA0MDAKCiAgICBmaXggY29tcGlsYXRpb24gcHJvYmxlbSBmb3IgbXBjODM0OWl0eCBDRkdfUkFNQk9PVAoKICAgIEN1cnJlbnQgaW5jbHVkZS9jb25maWdzL01QQzgzNDlJVFguaCBkb2VzIGNvbnRhaW4gc29tZSBzdXBwb3J0IGZvciBidWlsZGluZwogICAgaW1hZ2UgdGhhdCB3aWxsIGJlIHN0YXJ0ZWQgZnJvbSBtZW1vcnkgKHdpdGhvdXQgcHV0dGluZyBpbiBpbnRvIGZsYXNoKS4KICAgIEl0IGNvdWxkIGJlIHRyaWdnZXJlZCBieSBidWlsZGluZyB3aXRoIFRFWFRfQkFTRSBzZXQgdG8gYSBsb3cgdmFsdWUuCgogICAgSG93ZXZlciwgdGhpcyBzdXBwb3J0IGlzIGluY29tcGxldGU6IHVzaW5nIG9mIGxvdyBURVhUX0JBU0UgY2F1c2VzCiAgICBkZWZpbmluZyBjb25maWd1cmF0aW9uIG1hY3JvcyBpbiBpbmNvbnNpc3RlbnQgd2F5LCB3aGljaCBsYXRlciBsZWFkcwogICAgdG8gY29tcGlsYXRpb24gZXJyb3JzLiBJbiBwYXJ0aWN1bGFyLiBmbGFzaCBzdXBwb3J0IGlzIGJlaW5nIGRpc2FibGVkLAogICAgYnV0IHRoZW4gZmxhc2ggc3RydWN0dXJlcyBnZXQgcmVmZXJlbmNlZC4KCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoaXMsIG1ha2luZyBpdCBwb3NzaWJsZSB0byBidWlsZCB3aXRoIGxvdyBURVhUX0JBU0UuCgogICAgU2lnbmVkLU9mZi1CeTogTmlraXRhIFlvdXNoY2hlbmtvIDx5b3VzaEBkZWJpYW4ub3JnPgoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOGEzNjRmMDk3MGRlNDk5NDlkNjM1ZTYwYWNjZjQ2M2M2NDQzZWY4YwpBdXRob3I6IE5pa2l0YSBWLiBZb3VzaGNoZW5rbyA8eW91c2hAZGViaWFuLm9yZz4KRGF0ZToJV2VkIE1heSAyMyAxMjo0NToyNSAyMDA3ICswNDAwCgogICAgYWRkIG1pc3NpbmcgJ2NvbnNvbGUnIHZhciB0byBkZWZhdWx0IG1wYzgzNDlpdHggY29uZmlnCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxOGQxNTZlYjM3YzkwZmFkYzhlYzdhODFhM2I4OTE3NjE2MWY4NWI3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDEgMTY6MTg6MTcgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIG1pc3NpbmcgZmlsZSBmb3IgQmFtYm9vIE5BTkQgYm9vdGluZyBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDE1NWE5NjQ3OGEwODgxZTZkYTk2Y2JiYmNmMzQ5NTJkNmEzYjFiNGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMSAxNTo1ODoxOSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVbmRvIFNlcXVvaWEgcGF0Y2ggZm9yIGR5bmFtaWMgRUJDIHNwZWVkIHN1cHBvcnQgb2YgODNNSHoKCiAgICBUaGlzIHBhdGNoIHVuZG9lcyB0aGUgcGF0Y2ggYnkgSmVmZiBNYW5uIHdpdGggY29tbWl0LWlkIGFkYTQ2OTdkLiBBcwogICAgc3VnZ2VzdGVkIGJ5IEFNQ0MgaXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIGR5bmFtaWNhbGx5IGNoYW5nZSB0aGUgRUJDCiAgICBzcGVlZCBhZnRlciBib290dXAuIFNvIHdlIHVuZG8gdGhpcyBjaGFuZ2UgdG8gYmUgb24gdGhlIHNhZmUgc2lkZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOWQ5MDk2MDQzZThmNzEzZDRiZjE3NDNkMzJlMTQ1OWU2YTExNjQ0YgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxIDE1OjI5OjA0IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBTZXF1b2lhIE5BTkQgYm9vdGluZyBzdXBwb3J0IHdpdGggRUNDCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNmOTU5YzdkNjY4NzU2N2MzMDhlMzY2ZTk1ODFlMWE1YWZmNWNjNWIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBKdW4gMSAxNToyNzoxMSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgTkFORCBib290aW5nIHN1cHBvcnQgZm9yIEFNQ0MgQmFtYm9vICg0NDBFUCkgZXZhbCBib2FyZAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBOQU5EIGJvb3Rpbmcgc3VwcG9ydCBmb3IgdGhlIEFNQ0MgQmFtYm9vIGV2YWwgYm9hcmQuCiAgICBTaW5jZSB0aGUgTkFORC1TUEwgYm9vdCBpbWFnZSBpcyBsaW1pdGVkIHRvIDRrYnl0ZXMsIHRoaXMgdmVyc2lvbgogICAgb25seSBzdXBwb3J0cyB0aGUgb25ib2FyZCA2NE1CeXRlcyBvZiBERFIuIFRoZSBESU1NIG1vZHVsZXMgY2FuJ3QgYmUKICAgIHN1cHBvcnRlZCwgc2luY2UgdGhlIHNldHVwIGNvZGUgZm9yIEkyQyBESU1NIGF1dG9kZXRlY3Rpb24gYW5kCiAgICBjb25maWd1cmF0aW9uIGlzIHRvbyBiaWcgZm9yIHRoaXMgTkFORCBib290bG9hZGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0MmJlNTZmNTNjOGIxMDc4NjhlNjEyNWM4NTI0YWU4NDI5M2U5NWE3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDEgMTU6MjM6MDQgMjAwNyArMDIwMAoKICAgIE5BTkQ6IEFkZCBFQ0Mgc3VwcG9ydCB0byBOQU5EIGJvb3Rpbmcgc3VwcG9ydCBpbiBuYW5kX3NwbC9uYW5kX2Jvb3QuYwoKICAgIFRoZSBVLUJvb3QgTkFORCBib290aW5nIHN1cHBvcnQgaXMgbm93IGV4dGVuZGVkIHRvIHN1cHBvcnQgRUNDCiAgICB1cG9uIGxvYWRpbmcgb2YgdGhlIE5BTkQgVS1Cb290IGltYWdlLgoKICAgIFRlc3RlZCBvbiBBTUNDIFNlcXVvaWEgKDQ0MEVQeCkgYW5kIEJhbWJvbyAoNDQwRVApLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhNDcxZGIwN2ZiYjY1YTg0MWZmYzlmNGYxMTI1NjJiOTQ1MjMwZjk4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDEgMTU6MTk6MjkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogUHJlcGFyZSBCYW1ib28gcG9ydCBmb3IgTkFORCBib290aW5nIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgdGhlICJub3JtYWwiIEJhbWJvbyBOT1IgYm9vdGluZyBwb3J0LCBzbwogICAgdGhhdCBpdCBpcyBjb21wYXRpYmxlIHdpdGggdGhlIGNvbWluZyBzb29uIE5BTkQgYm9vdGluZwogICAgQmFtYm9vIHBvcnQuCgogICAgSXQgYWxzbyBlbmFibGVzIHRoZSAybmQgTkFORCBmbGFzaCBvbiB0aGUgQmFtYm9vLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1M2FkMDIxMDNmYjhiZTQxMzhhOTkzN2E4YWI5MWZjZGZmN2I0OTg3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDEgMTU6MTY6NTggMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIGluX2JlMzIoKSBmdW5jdGlvbnMgYW5kIGZyaWVuZHMgdG8gbGF0ZXN0IExpbnV4IHZlcnNpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOTFkYTA5Y2ZiY2UwYzFkZTA1ZDZkODRhYTgzNjNkNjY2ZmE3ZWEzYwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxIDE1OjE1OjEyIDIwMDcgKzAyMDAKCiAgICBOQU5EOiBBZGQgaGFyZHdhcmUgRUNDIHN1cHBvcnQgdG8gdGhlIFBQQzR4eCBOQU5EIGRyaXZlciBuZGZjLmMKCiAgICBUaGlzIHBhdGNoIGFkZHMgaGFyZHdhcmUgRUNDIHN1cHBvcnQgdG8gdGhlIE5ERkMgZHJpdmVyLiBJdCBhbHNvCiAgICBjaGFuZ2VzIHRoZSByZWdpc3RlciBhY2Nlc3MgZnJvbSB1c2luZyB0aGUgInNpbXBsZSIgaW4zMi9vdXQzMgogICAgZnVuY3Rpb25zIHRvIHRoZSBpbl9iZTMyL291dF9iZTMyIGZ1bmN0aW9ucywgd2hpY2ggbWFrZSBzdXJlCiAgICB0aGF0IHRoZSBhY2Nlc3MgaXMgY29ycmVjdGx5IHN5bmNlZC4gVGhpcyBpcyB0aGUgb25seSByZWNvbW1lbmRlZAogICAgYWNjZXNzIHRvIFNvQyByZWdpc3RlcnMgaW4gdGhlIGN1cnJlbnQgTGludXgga2VybmVsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxN2I1ZTg2MjI4N2NjYTc2ZjE5ZGNmOGI3NDFlNjFhN2QwNjYxN2YyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDEgMTU6MTI6MTUgMjAwNyArMDIwMAoKICAgIE5BTkQ6IFVwZGF0ZSBuYW5kX2VjYy5jIHRvIGxhdGVzdCBMaW51eCB2ZXJzaW9uCgogICAgVGhpcyBwYXRjaCB1cGRhdGVzIHRoZSBuYW5kX2VjYyBjb2RlIHRvIHRoZSBsYXRlc3QgTGludXggdmVyc2lvbi4KICAgIFRoZSBtYWluIHJlYXNvbiBmb3IgdGhpcyBpcyB0aGUgbW9yZSBjb21wYWN0IGNvZGUuIFRoaXMgbWFrZXMKICAgIGl0IHBvc3NpYmxlIHRvIGluY2x1ZGUgdGhlIEVDQyBjb2RlIGludG8gdGhlIE5BTkQgYm9vdGxvYWRlcgogICAgaW1hZ2UgKE5BTkRfU1BMKSBmb3IgUFBDNHh4LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkMmQ0MzI3NjBkMjE5OWQwZTg1NThmZGQ5ZDE3ODliODEzMWFiY2Y3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDEgMTU6MDk6NTAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogNDR4IEREUiBkcml2ZXIgY29kZSBjbGVhbnVwIGFuZCBzbWFsbCBmaXggZm9yIEJhbWJvbwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlNGJiZWQyODAzYTJhZDA1MjFjNzM2MmY1ZDNlMDY1Zjk5YWJhZWRjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSnVuIDEgMTM6NDU6MjQgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ2hhbmdlIEx1YW4gY29uZmlnIGZpbGUgdG8gc3VwcG9ydCBFQ0MKCiAgICBXaXRoIHRoZSB1cGRhdGVkIDQ0eCBERFIyIGRyaXZlciB0aGUgTHVhbiBib2FyZCBub3cgc3VwcG9ydHMKICAgIEVDQyBnZW5lcmF0aW9uIGFuZCBjaGVja2luZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNzE4N2RiNzM0OTFjOGRlMGZiNTZlZmI1ZTUxMzRiYTVlYzQ0MzA4OQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEp1biAxIDEzOjQ1OjAwIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSA0NHhfc3BkX2RkcjIgY29kZSAoNDQwU1AvNDQwU1BlKQoKICAgIEFkZCBjb25maWcgb3B0aW9uIGZvciAxODAgZGVncmVlIGFkdmFuY2UgY2xvY2sgY29udHJvbCBhcyBuZWVkZWQKICAgIGZvciB0aGUgQU1DQyBMdWFuIGV2YWwgYm9hcmQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGVlMTUyOTgzOGFiYmZhYTM1ZjE0ZTNmZmJlYWFiYTY5MzE1OTQ3NWYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgTWF5IDMxIDE3OjIwOjA5IDIwMDcgKzAyMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgU1RYIEdQM1NTQSAoc3R4c3NhKSBCb2FyZCB3aXRoIDQgTWlCIGZsYXNoLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgNzA0OTI4OGZiMWYxNmYxYjMxNzE0MDIyNmNkZWJkMDdiZDQxNjM5NQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVN1biBNYXkgMjcgMTc6MjY6NDYgMjAwNyArMDIwMAoKICAgIE1vdGlvbi1QUk86IENvZGUgY2xlYW51cCwgZml4IG9mIGEgdHlwbyBpbiBPRl9TVERPVVRfUEFUSC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDQ1MjBmZDRkMmM0NTBkYTQ5NjM3MjE2YWEwZTUzNzM5YjYxYzYwYWMKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglTdW4gTWF5IDI3IDE3OjA2OjM2IDIwMDcgKzAyMDAKCiAgICBNb3Rpb24tUFJPOiBBZGQgc3VwcG9ydCBmb3IgcmVkdW5kYW50IGVudmlyb25tZW50LgoKICAgIEVuYWJsZSByZWR1bmRhbnQgZW52aXJvbm1lbnQsIGFkZCBhIE1URCBwYXJ0aXRpb24gZm9yIGl0OyBhbHNvIGFkZCBlbnYuCiAgICB2YXJpYWJsZSBjb21tYW5kIGZvciBwYXNzaW5nIE1URCBwYXJ0aXRpb25zIHRvIHRoZSBrZXJuZWwgY29tbWFuZCBsaW5lLgoKICAgIFNpZ25lZC1vZmYtYnk6IFBpb3RyIEtydXN6eW5za2kgPHBwa0BzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBhMjZlYWJlZWMzMTc0NmYwNmQzMDkxMDM2OTA4OTI4MDU2OTZlMzQ0CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJU3VuIE1heSAyNyAxNzowNToxMSAyMDA3ICswMjAwCgogICAgTW90aW9uLVBSTzogQ2hhbmdlIG1heGltdW0gY29uc29sZSBidWZmZXIgc2l6ZSBmcm9tIDI1NiB0byAxMDI0IGJ5dGVzLgoKICAgIEFsbG93IHBhc3NpbmcgbG9uZ2VyIGNvbW1hbmQgbGluZSB0byB0aGUga2VybmVsIC0gdXNlZnVsIGVzcGVjaWFsbHkKICAgIGZvciBwYXNzaW5nIE1URCBwYXJ0aXRpb24gbGF5b3V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFBpb3RyIEtydXN6eW5za2kgPHBwa0BzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCA5MTYwYjk2ZjcxNDgzYTExNmRlODFjNjg5ODVlOGVlMzA2ZDM2NzY0CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJU3VuIE1heSAyNyAxNzowNDoxOCAyMDA3ICswMjAwCgogICAgRml4OiBBZGQgbWlzc2luZyBOVUxMIHRlcm1pbmF0aW9uIGluIHN0cmluZ3MgZXhwYW5kZWQgYnkgbWFjcm9zIHBhcnNlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQaW90ciBLcnVzenluc2tpIDxwcGtAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgNjMwZWM4NGFlZjcyMjhmYzFkYmZiMzhkZWM3ODU0MTQwM2E3ODZjZApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVN1biBNYXkgMjcgMTc6MDM6MzcgMjAwNyArMDIwMAoKICAgIE1vdGlvbi1QUk86IFVwZGF0ZSBFRVBST00ncyBwYWdlIHdyaXRlIGJpdHMgYW5kIHdyaXRlIGRlbGF5LgoKICAgIENoYW5nZSBFRVBST00gY29uZmlndXJhdGlvbiBhY2NvcmRpbmcgdG8gdGhlIGRhdGFzaGVldDogIlRoZSAyNEMwMUEgYW5kIDI0QzAyQQogICAgaGF2ZSBhIHBhZ2Ugd3JpdGUgY2FwYWJpbGl0eSBvZiB0d28gYnl0ZXMiLCBhbmQgIlRoaXMgZGV2aWNlIG9mZmVycyBmYXN0ICgxbXMpCiAgICBieXRlIHdyaXRlIi4gQWRkIDNtcyBvZiBleHRyYSBkZWxheS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQaW90ciBLcnVzenluc2tpIDxwcGtAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgYzAwMTI1ZTA3YzFlYmMxMjViYWI0MGUxZTE4YmNlZWQ4YmUwYzE2MgpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVN1biBNYXkgMjcgMTY6NTg6NDUgMjAwNyArMDIwMAoKICAgIE1QQzVYWFgsIE1vdGlvbi1QUk86IEZpeCBQSFkgaW5pdGlhbGl6YXRpb24gcHJvYmxlbS4KCiAgICBBZnRlciBiZWluZyByZXNldCBpbiBtcGM1eHh4X2ZlY19pbml0X3BoeSgpLCBQSFkgZ29lcyBpbnRvIEZYIG1vZGUsIGluIHdoaWNoCiAgICBuZXR3b3JraW5nIGRvZXMgbm90IGZ1bmN0aW9uLiBUaGlzIGNvbW1pdCBzd2l0Y2hlcyBQSFkgdG8gVFggbW9kZSBieSBjbGVhcmluZwogICAgdGhlIEZYX1NFTCBiaXQgb2YgTW9kZSBDb250cm9sIFJlZ2lzdGVyLiBJdCBhbHNvIHJldmVyc2VzIGNvbW1pdAogICAgMDA4ODYxYTJmM2VmMmMwNjI3NDRkNzMzNzg3YzdlNTMwYTFiODc2MSwgaS5lLiwgYSB0ZW1wb3Jhcnkgd29ya2Fyb3VuZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBCZXJuYWNraSA8Z2piQHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IDkzYjc4ZjUzNGE2ZTcwOGI0Y2YxYTRmZmI0ZDg0MzhjNjdhMDA3ZGIKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglTdW4gTWF5IDI3IDE2OjU3OjE1IDIwMDcgKzAyMDAKCiAgICBNb3Rpb24tUFJPOiBBZGQgc3VwcG9ydCBmb3IgdGhlIHRlbXBlcmF0dXJlIHNlbnNvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBQaW90ciBLcnVzenluc2tpIDxwcGtAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgYzc1ZTYzOTYzMGNjMTMyZGMxOWNkMWVjZGE1OTIyYzBkYjBiZmJiYQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVN1biBNYXkgMjcgMTY6NTU6MjMgMjAwNyArMDIwMAoKICAgIE1vdGlvbi1QUk86IEFkZCBkaXNwbGF5aW5nIG9mIENQTEQgcmV2aXNpb24gaW5mb3JtYXRpb24gZHVyaW5nIGJvb3QuCgogICAgU2lnbmVkLW9mZi1ieTogSmFuIFdyb2JlbCA8d3JyQHNlbWloYWxmLmNvbT4KICAgIEFja2VkLWJ5OiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgoKY29tbWl0IGM5OTUxMmQ2YmQzOTczZjAxY2EyZmM0ODk2ZDgyOWI0NmU2OGYxNTAKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglTdW4gTWF5IDI3IDE2OjUzOjQzIDIwMDcgKzAyMDAKCiAgICBNUEM1eHh4OiBDaGFuZ2UgbmFtZXMgb2YgZGVmaW5lcyByZWxhdGVkIHRvIElQQiBhbmQgUENJIGNsb2Nrcy4KCiAgICBCb3RoIENGR19QQ0lTUEVFRF82NiBhbmQgQ0ZHX0lQQlNQRUVEXzEzMyBhcmUgbWlzbmFtZWQsIGFzIGRlZmluaW5nCiAgICB0aGVtIGRvZXMgbm90IGNhdXNlIFBDSSBvciBJUEIgY2xvY2tzIHRvIHJ1biBhdCB0aGUgc3BlY2lmaWVkIHNwZWVkLgogICAgSW5zdGVhZCwgdGhleSBjb25maWd1cmUgZGl2aXNvcnMgdXNlZCB0byBjYWxjdWxhdGUgc2FpZCBjbG9ja3MuIFRoaXMKICAgIHBhdGNoIHJlbmFtZXMgdGhlIGRlZmluZXMgYWNjb3JkaW5nIHRvIHRoZWlyIHJlYWwgZnVuY3Rpb24uCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogQmVybmFja2kgPGdqYkBzZW1paGFsZi5jb20+CiAgICBBY2tlZC1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KCmNvbW1pdCBhMTFjMGI4NWRjMzY2NGJiM2MxZTc4MTEzNzExODczMGM4ZjYxOWFiCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJU3VuIE1heSAyNyAxNjo1MTo0OCAyMDA3ICswMjAwCgogICAgTW90aW9uLVBSTzogQWRkIExFRCBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IEphbiBXcm9iZWwgPHdyckBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgogICAgQWNrZWQtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+Cgpjb21taXQgN2ViYjQ0NzliMDdmZjI5NGViNGQ3NmU0MjA3NTNhMDM0OWY3YzkzYgpBdXRob3I6IFVsZiBTYW11ZWxzc29uIDx1bGZAYXRtZWwuY29tPgpEYXRlOglUaHUgTWF5IDI0IDEyOjEyOjQ3IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdW05BTkRdIERlZmluZSB0aGUgVmVuZG9yIElkIGZvciBNaWNyb24gTkFORCBGbGFzaAoKICAgIFNpZ25lZC1vZmYtYnk6IFVsZiBTYW11ZWxzc29uIDx1bGZAYXRtZWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQ3NTY4OTQ3MjJjODg4ZDA5YTlmYTFkZjgzMjM3NTM3NzJkM2RjY2UKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXkgMjQgMDk6NDk6MDAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4IHNtYWxsIDQwNUVaIE9DTSBpbml0aWxpemF0aW9uIGJ1ZyBpbiBzdGFydC5TCgogICAgQXMgcG9pbnRlZCBvdXQgYnkgQnJ1Y2UgQWRsZXIgPGJydWNlLmFkbGVyQGFjbS5vcmc+IHRoaXMgcGF0Y2gKICAgIGZpeGVzIGEgc21hbGwgYnVnIGluIHRoZSA0MDVFWiBPQ00gaW5pdGlhbGl6YXRpb24uIFRoYW5rcyBmb3IKICAgIHNwb3R0aW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1ZDRhMTc5MDEzZDU5YTc2NDQ2NDYyZTFlYjBhOTY5ZmJhNjNlYjgxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTWF5IDI0IDA4OjIyOjA5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBBTUNDIEFjYWRpYSBzdXBwb3J0IGZvciBib2FyZCByZXZpc2lvbiAxLjEKCiAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgdGhlIEFjYWRpYSAoNDA1RVopIHN1cHBvcnQgZm9yIHRoZSBuZXcgMS4xIGJvYXJkCiAgICByZXZpc2lvbi4gSXQgYWxzbyBhZGRzIHN1cHBvcnQgZm9yIE5BTkQgRkxBU0ggdmlhIHRoZSA0eHggTkRGQy4KCiAgICBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBqdW1wZXIgSjcgbXVzdCBiZSBpbiBwb3NpdGlvbiAyLTMgZm9yIHRoaXMKICAgIE5BTkQgc3VwcG9ydC4gUG9zaXRpb24gMS0yIGlzIGZvciBOQU5EIGJvb3Rpbmcgb25seS4gTkFORCBib290aW5nCiAgICBzdXBwb3J0IHdpbGwgZm9sbG93IGxhdGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4MjJkNTUzNjViYjU1N2UwODRkMGUzMzYyNWE2ZGVkY2M4NjYxMTBiCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1heSAyMyAxNDowOTo0NiAyMDA3IC0wNTAwCgogICAgQWRkIExJU1RfODZ4eCBNQUtFQUxMIHRhcmdldCBmb3IgUG93ZXJQQyBidWlsZHMuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5ZjAwNzdhYmQ2OWY3YTdjNzU2YTkxNWI5NjEwMzczMDJiZTNlNmYyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgTWF5IDIyIDEyOjQ4OjA5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVzZSBkbyB7IC4uLiB9IHdoaWxlICgwKSBmb3IgQ1BSICYgU0RSIGFjY2VzcyBtYWNyb3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmYzZGZjMTM5YTgzOGIwODQxYzE1MWVmZTAwYWQ0N2RiMjM2NmU3OQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE1heSAyMiAxMjo0NjoxMCAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBBZGQgNDA1IHN1cHBvcnQgdG8gNHh4IE5BTkQgZHJpdmVyIG5kZmMuYwoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciA0MDUgUFBDJ3MgdG8gdGhlIDR4eCBOQU5EIGRyaXZlcgogICAgbmRmYy5jLiBUaGlzIGlzIGluIHByZXBhcmF0aW9uIGZvciB0aGUgbmV3IEFNQ0MgNDA1RVouCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDEwNjAzZDc2NzY3NDI2YmU4MDNkYWRkNGZiNjg4Yjk3ZWI2OTQ4MWMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBNYXkgMjEgMDc6NDE6MjIgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogRml4IHByb2JsZW0gaW4gNDA1RVogT0NNIGluaXRpYWxpemF0aW9uCgogICAgQXMgc3BvdHRlZCBieSBCcnVjZSBBZGxlciB0aGlzIHBhdGNoIGZpeGVzIGFuIGluaXRpYWxpemF0aW9uIHByb2JsZW0KICAgIGZvciB0aGUgNDA1RVogT0NNLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzZTNiOTU2OTA2ZWJhOWU0YWQ3OTMxNTgxZWNlZGFhZDEwZWNjY2U4CkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJRnJpIE1heSAxOCAxNjo0NzowMyAyMDA3ICswMTAwCgogICAgUmVkdWNlIGxpbmUgbGVuZ3RocyB0byA4MCBjaGFyYWN0ZXJzIG1heC4KCmNvbW1pdCA5M2VmNDVjOWRkZmRkOWZjMTdjNGU3NGJkOGUyZjI0NTY1ODBlYjcyCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJRnJpIE1heSAxOCAxNDozNDowNyAyMDA3ICswMTAwCgogICAgTWFrZWZpbGUgcGVybWlzc2lvbnMKCmNvbW1pdCAxNDQzYTMxNDU3ZDY4ZjdlOGYwYjk0MDNlOTgzMmVjMWU3OWRjNTlkCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJRnJpIE1heSAxOCAxNDozMzoxMSAyMDA3ICswMTAwCgogICAgTWFrZWZpbGUgcGVybWlzc2lvbnMKCmNvbW1pdCAyNTVhMzU3N2M4NDg3MDY0NDFkYWVlMDE3NDU0M2VmZTIwNWE3N2Y4CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE1heSAxNiAxNjo1MjoxOSAyMDA3IC0wNTAwCgogICAgUmVkdWNlIENPTkZJR19NUEM4WVhYX1RTRUN4IHRvIENPTkZJR19UU0VDeAoKICAgIEZvciBhbGwgcHJhY3RpY2FsIHUtYm9vdCBwdXJwb3NlcywgVFNFQ3MgZG9uJ3QgZGlmZmVyIHRocm91Z2hvdXQgdGhlCiAgICBtcGM4WzM1Nl14eCBmYW1pbGllczsgcmVkdWNlIENPTkZJR19NUEM4WVhYX1RTRUN4IHRvIENPTkZJR19UU0VDeC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDcwMTI0YzI2MDJhZTJkNGM1ZDNkYmEwNWI0ODJkOTE1NDgyNDJkZTgKQXV0aG9yOiBTdGVmYW5vIEJhYmljIDxzYmFiaWNAZGVueC5kZT4KRGF0ZToJV2VkIE1heSAxNiAxNDo0OToxMiAyMDA3ICswMjAwCgogICAgRml4IGNvbXBpbGUgcHJvYmxlbSBjYXVzZSBteSBNaWNyb2JsYXplIG1lcmdlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFubyBCYWJpYyA8c2JhYmljQGRlbnguZGU+Cgpjb21taXQgYWRhNDY5N2QwMjMwZDZkYTU1Mjg2Nzc3N2Y5OGE2N2VjM2JhMjU3OQpBdXRob3I6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgpEYXRlOglXZWQgTWF5IDE2IDEzOjIzOjEwIDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIFJ1biBuZXcgc2VxdW9pYSBib2FyZHMgd2l0aCBhbiBFQkMgc3BlZWQgb2YgODNNSHoKCiAgICBCZWNhdXNlIHRoZSBTZXF1b2lhIGJvYXJkIGRvZXMgbm90IGJvb3Qgd2l0aCBhbiBFQkMgZmFzdGVyIHRoYW4gNjZNSHosCiAgICB0aGUgY2xvY2sgZGl2aWRlciBhcmUgY2hhbmdlZCBhZnRlciB0aGUgaW5pdGlhbCBib290IHByb2Nlc3MuCgogICAgVGhpcyBhbGxvd3MgZm9yIG1heGltdW0gY2xvY2tpbmcgc3BlZWRzICB0byBiZSBhY2hpZXZlZCBvbiBuZXdlciBib2FyZHMuCiAgICBTZXF1b2lhIGJvYXJkcyB3aXRoIDY2Ni42NiBNSHogcHJvY2Vzc29ycyByZXF1aXJlIHRoYXQgdGhlIEVCQyBkaXZpZGVyCiAgICBiZSBzZXQgdG8gMyBpbiBvcmRlciB0byBzdGFydCB0aGUgaW5pdGlhbCBib290IHByb2Nlc3MgYXQgYSBzbG93ZXIgRUJDCiAgICBzcGVlZC4gQWZ0ZXIgdGhlIGluaXRpYWwgYm9vdCBwcm9jZXNzLCB0aGUgZGl2aWRlciBjYW4gYmUgc2V0IGJhY2sgdG8gMiwKICAgIHdoaWNoIHdpbGwgY2F1c2UgdGhlIGJvYXJkcyB0byBydW4gYXQgODMuMzMzTUh6LiBUaGlzIGlzIGJhY2t3YXJkCiAgICBjb21wYXRpYmxlIHdpdGggYm9hcmRzIHdpdGggNTMzLjMzIE1IeiBwcm9jZXNzb3JzLCBhcyB0aGVzZSBib2FyZHMgd2lsbAogICAgYWxyZWFkeSBiZSBzZXQgd2l0aCBhbiBFQkMgZGl2aWRlciBvZiAyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgoKY29tbWl0IGE3Njc2ZWE3NzMyZjNjNTk2ODA1MDc5ZmVkN2U1YzlmYWM2NTJjZmMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgTWF5IDE2IDAxOjE2OjUzIDIwMDcgKzAyMDAKCiAgICBNaW5vciBDb2RpbmcgU3R5bGUgY2xlYW51cCwgdXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGQ2MmY2NGNjMjNhOTQwZWFmZTcxMmM3NzZiMzI0OWU0MTYwNzUzZDEKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgTWF5IDE2IDAwOjEzOjMzIDIwMDcgKzAyMDAKCiAgICBDb2RpbmcgU3R5bGUgQ2xlYW51cCwgbmV3IENIQU5HRUxPRwoKY29tbWl0IDMxNjJlYjgzNjkwM2M4YjI0N2ZkYzc0NzBkZDM5YmZhNjk5NmY0OTUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUdWUgTWF5IDE1IDIzOjM4OjA1IDIwMDcgKzAyMDAKCiAgICBNaW5vciBjb2Rpbmcgc3R5bGUgY2xlYW51cC4KCmNvbW1pdCA2NmQ5ZGJlYzFjYzI3ZDYzOThlZTZjZjg0NjM5ZGJlMTQ5NzEyNTFlCkF1dGhvcjogbXVzaHRhcSBraGFuIDxtdXNodGFxX2tAcHJvY3N5cy5jb20+CkRhdGU6CUZyaSBBcHIgMjAgMTQ6MjM6MDIgMjAwNyArMDUzMAoKICAgIEFkZCBkcml2ZXIgZm9yIFMtQVRBLWNvbnRyb2xsZXIgb24gSW50ZWwgcHJvY2Vzc29ycyB3aXRoIFNvdXRoCiAgICBCcmlkZ2UsIElDSC01LCBJQ0gtNiBhbmQgSUNILTcuCgogICAgSW1wbGVtZW50YXRpb246CgogICAgMS4gQ29kZSBpcyBkaXZpZGVkIGluIHRvIHR3byBmaWxlcy4gQWxsIGZ1bmN0aW9ucywgd2hpY2ggYXJlCiAgICAgICBjb250cm9sbGVyIHNwZWNpZmljIGFyZSBrZXB0IGluICJkcml2ZXJzL2F0YV9waWl4LmMiIGZpbGUgYW5kCiAgICAgICBmdW5jdGlvbnMsIHdoaWNoIGFyZSBub3QgY29udHJvbGxlciBzcGVjaWZpYywgYXJlIGtlcHQgaW4KICAgICAgICJjb21tb24vY21kX3NhdGEuYyIgZmlsZS4KCiAgICAyLiBSZWFkaW5nIGFuZCBXcml0aW5nIGZyb20gdGhlIFMtQVRBIGRyaXZlIGlzIGRvbmUgdXNpbmcgUElPIG1ldGhvZC4KCiAgICAzLiBEcml2ZXIgY2FuIGJlIGNvbmZpZ3VyZWQgZm9yIDQ4LWJpdCBhZGRyZXNzaW5nIGJ5IGRlZmluaW5nIG1hY3JvCiAgICAgICBDT05GSUdfTEJBNDgsIGlmIHRoaXMgbWFjcm8gaXMgbm90IGRlZmluZWQgZHJpdmVyIHVzZXMgdGhlIDI4LWJpdAogICAgICAgYWRkcmVzc2luZy4KCiAgICA0LiBTLUFUQSByZWFkIGZ1bmN0aW9uIGlzIGhvb2tlZCB0byB0aGUgRmlsZSBzeXN0ZW0sIGNvbW1hbmRzIGxpa2UKICAgICAgIGV4dDJscyBhbmQgZXh0MmxvYWQgZmlsZSBjYW4gYmUgdXNlZC4gVGhpcyBoYXMgYmVlbiB0ZXN0ZWQuCgogICAgNS4gVS1Cb290IGNvbW1hbmQgIlNBVEFfaW5pdCIgaXMgYWRkZWQsIHdoaWNoIGluaXRpYWxpemVzIHRoZSBTLUFUQQogICAgICAgY29udHJvbGxlciBhbmQgaWRlbnRpZmllcyB0aGUgUy1BVEEgZHJpdmVzIGNvbm5lY3RlZCB0byBpdC4KCiAgICA2LiBVLUJvb3QgY29tbWFuZCAic2F0YSIgaXMgYWRkZWQsIHdoaWNoIGlzIHVzZWQgdG8gcmVhZC93cml0ZSwgcHJpbnQKICAgICAgIHBhcnRpdGlvbiB0YWJsZSBhbmQgZ2V0IGluZm8gYWJvdXQgdGhlIGRyaXZlcyBwcmVzZW50LiBUaGlzIEkgaGF2ZQogICAgICAgaW1wbGVtZW50ZWQgaW4gc2FtZSB3YXkgYXMgImlkZSIgY29tbWFuZCBpcyBpbXBsZW1lbnRlZCBpbiBVLUJvb3QuCgogICAgNy4gVGhpcyBkcml2ZXIgaXMgZm9yIFMtQVRBIGluIG5hdGl2ZSBtb2RlLgoKICAgIDguIFRoaXMgZHJpdmVyIGRvZXMgbm90IHN1cHBvcnQgdGhlIE5hdGl2ZSBjb21tYW5kIHF1ZXVpbmcgYW5kCiAgICAgICBIb3QtcGx1Z2dpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogTXVzaHRhcSBLaGFuIDxtdXNodGFxX2tAcHJvY3N5cy5jb20+Cgpjb21taXQgNjQ0ZTZmYjRlYjhiZTkwZWEwNGJhMzRiNjQzYThiZjAxOWQ2ODBlMApBdXRob3I6IG11c2h0YXEga2hhbiA8bXVzaHRhcV9rQHByb2NzeXMuY29tPgpEYXRlOglNb24gQXByIDMwIDE1OjU3OjIyIDIwMDcgKzA1MzAKCiAgICBGaXhlcyBidWcgY2xlYXJpbmcgdGhlIGJzcyBzZWN0aW9uIGZvciBpMzg2CgogICAgSGksCiAgICBUaGVyZSBpcyBhIGJ1ZyBpbiB0aGUgY29kZSBvZiBjbGVhcmluZyB0aGUgYnNzIHNlY3Rpb24gZm9yIHByb2Nlc3NvcgogICAgaTM4Ni4oRmlsZTogY3B1L2kzODYvc3RhcnQuUykKICAgIEluIHRoZSBjb2RlLCBic3Nfc3RhcnQgYWRkciAoc3RhcnRpbmcgYWRkciBvZiBic3Mgc2VjdGlvbikgaXMgcHV0IGludG8KICAgIHRoZSByZWdpc3RlciAlZWF4LCBidXQgdGhlIGNvZGUgd2hpY2ggY2xlYXJzIHRoZSBic3Mgc2VjdGlvbiByZWZlcnMgdG8KICAgIHRoZSBhZGRyIHBvaW50ZWQgYnkgJWVkaS4KCiAgICBUaGlzIHBhdGNoIGZpeGVzIHRoaXMgYnVnIGJ5IHB1dHRpbmcgYnNzX3N0YXJ0IGludG8gJWVkaSByZWdpc3Rlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNdXNodGFxIEtoYW4gPG11c2h0YXFfa0Bwcm9jc3lzLmNvbT4KCmNvbW1pdCBjMzI0M2NmN2I0OTAwNTcyNzdkNjFhY2ZmZTRhZDA5NDZmOWViNGE0CkF1dGhvcjogSm9lIEhhbW1hbiA8am9lLmhhbW1hbkBlbWJlZGRlZHNwZWNpYWx0aWVzLmNvbT4KRGF0ZToJTW9uIEFwciAzMCAxNjo0NzoyOCAyMDA3IC0wNTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIEJDTTU0NjQgUXVhZCBQaHkKCiAgICBBZGRlZCBzdXBwb3J0IGZvciBCcm9hZGNvbSdzIEJDTTU0NjQgUXVhZCBQaHkKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2UgSGFtbWFuIDxqb2UuaGFtbWFuQGVtYmVkZGVkc3BlY2lhbHRpZXMuY29tPgoKY29tbWl0IDFiMzA1YmRjNzU0Yzg0NjhlMWQ1ZDg1OGY1ZGNmOGE3YTBhNGJiN2EKQXV0aG9yOiBaYW5nIFJveS1yNjE5MTEgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWF5IDkgMDg6MTA6NTcgMjAwNyArMDgwMAoKICAgIFNlYXJjaCB0aGUgZXhjZXB0aW9uIHRhYmxlIHdpdGggbGluZWFyIGFsZ29yaXRobQoKICAgIFNlYXJjaCB0aGUgZXhjZXB0aW9uIHRhYmxlIHdpdGggbGluZWFyIGFsZ29yaXRobSBpbnN0ZWFkIG9mCiAgICBiaXNlY3RpbmcgYWxnb3JpdGhtLgogICAgQmVjYXVzZSB0aGUgZXhjZXB0aW9uIHRhYmxlIG1pZ2h0IGJlIHVuc29ydGVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA1ZGZhYTUwZWI4MTk2ODZiZmJhMTkyN2U4YzViOGE3MGE0ZDY1ZmQzCkF1dGhvcjogQXVicmV5LkxpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJTW9uIE1heSAxNCAxMTo0NzozNSAyMDA3ICswODAwCgogICAgRml4IGNvbXBpbGF0aW9uIGlzc3VlcyBvbiBNQUNPU1gKCiAgICBTaW5nZWQtb2ZmLWJ5OiBNYXJjIEhvZmZtYW4gPE1hcmMuSG9mZm1hbkBhbmFsb2cuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KCmNvbW1pdCA1NmZkNzE2Mjk4NWM0MTIzMTdiYmY3NjNhMjI1ZmJhMjNjNjRmZDMxCkF1dGhvcjogU3RlcGhlbiBXaWxsaWFtcyA8c3RldmVAaWNhcnVzLmNvbT4KRGF0ZToJVHVlIE1heSAxNSAwNzo1NTo0MiAyMDA3IC0wNzAwCgogICAgRml4IGZvciBjb21waWxlIG9mIEpTRSB0YXJnZXQKCiAgICBUaGUgYXR0YWNoZWQgcGF0Y2ggZml4ZXMgdGhlIGNvbXBpbGUgb2YgdGhlIEpTRSBib2FyZCBpbiB0aGUKICAgIGRlbnggZ2l0IGFzIG9mIDE0IG1heSAyMDA3LiBJdCBpcyBhbiBleHRyZW1lbHkgc2ltcGxlIHBhdGNoLAogICAgaXQganVzdCBhZGRzIHRoZSBtaXNzaW5nIGRlZmluZSBvZiBDRkdfU1lTVEVNQUNFX1dJRFRILgoKICAgICBGaXggdG8gY29tcGlsZSBKU0UgYWdhaW5zdCAyMDA3MDUxNCBnaXQgb2YgdS1ib290Cgpjb21taXQgNjlkZjNjNGRhMGM5MzAxN2NjZWIyNWEzNjZlNzk0NTcwYmQwZWQ5OApBdXRob3I6IE5vYnVoaXJvIEl3YW1hdHN1IDxpd2FtYXRzdUByYWh1dGUuKG5vbmUpPgpEYXRlOglTdW4gTWF5IDEzIDIxOjAxOjAzIDIwMDcgKzA5MDAKCiAgICBzaDogTVM3NzUwU0Ugc3VwcG9ydC4KCiAgICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgdGhlIEhpdGFjaGkgTVM3NzUwU0UuCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDBiMTM1Y2ZjMmU1MjRkYzI0OWI3NTA1N2I1NWRkNGNjMDk4NDJlMjcKQXV0aG9yOiBOb2J1aGlybyBJd2FtYXRzdSA8aXdhbWF0c3VAcmFodXRlLihub25lKT4KRGF0ZToJU3VuIE1heSAxMyAyMDo1ODowMCAyMDA3ICswOTAwCgogICAgc2g6IEZpcnN0IHN1cHBvcnQgY29kZSBvZiBTdXBlckguCgogICAgU2lnbmVkLW9mZi1ieTogTm9idWhpcm8gSXdhbWF0c3UgPGl3YW1hdHN1QG5pZ2F1cmkub3JnPgoKY29tbWl0IDYxOTM2NjY3ZTg2YTI1MGFlMTJmZDJkYzE4OWQzNTg4ZjBhNTllMGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CUZyaSBNYXkgMTEgMTI6MDE6NDkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIG10Y3ByL21mY3ByIGFjY2VzcyBtYWNyb3MKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzQzYzQ4YmQ4NDYwNmM0MDI1YzhhN2M3MjYzZmRhNDY1ZDZlMjg0YwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE1heSAxMSAxMjowMTowNiAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBTZXQgYmQtPmJpX3BjaV9idXNmcmVxIG9uIDQ0MEVQeC9HUnggdG9vCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDdkOThiYTc3MGE3ZWFlZmEyOWNlOTI3ZjMxYTA5NTZkZjg1YmY2NTAKQXV0aG9yOiBQaW90ciBLcnVzenluc2tpIDxwcGtAc2VtaWhhbGYuY29tPgpEYXRlOglUaHUgTWF5IDEwIDE2OjU1OjUyIDIwMDcgKzAyMDAKCiAgICBbTW90aW9uLVBST10gQWRkIE1URCBhbmQgSkZGUzIgc3VwcG9ydCwgYWxzbyBhZGQgZGVmYXVsdCBwYXJ0aXRpb24KICAgIGRlZmluaXRpb24uCgpjb21taXQgNjVmYjZhNjc2ZTgyMWY5NTcwYTJhMzc2ZGMyMDRiZjYxMWNlNWY4MQpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVdlZCBNYXkgOSAxMTo0Mjo0NCAyMDA3ICswMTAwCgogICAgQWRkIHRoZSBib2FyZCBkaXJlY3RvcnkgZm9yIFNNTjQyCgpjb21taXQgMTYwMTMxYmY5NjU3ODU0MTk2MjZkZjZjMzg4NzI5ZmUwYjU5Nzk5MgpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVdlZCBNYXkgOSAxMTo0MTo1OCAyMDA3ICswMTAwCgogICAgQWRkIHRoZSBmaWxlcyBmb3IgdGhlIFNNTjQyIGJvYXJkCgpjb21taXQgNWM2ZDJiNWE1MDBmOGM0OTY3MGRlODkxMDE1MGI3OGE0MWY3ODFmYwpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVdlZCBNYXkgOSAxMTo0MDozNCAyMDA3ICswMTAwCgogICAgUmVtb3ZlIHRoZSBkZWxldGVkIGZpbGVzIGZvciB0aGUgU01ONDIgcGF0Y2gKCmNvbW1pdCBiMGQ4ZjViZjBkMjE1YWRjOTQyNGNiMjI4YjI0ODRkYmYwN2Y3NzYxCkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJV2VkIE1heSA5IDExOjM3OjU2IDIwMDcgKzAxMDAKCiAgICBOZXcgYm9hcmQgU01ONDIgYnJhbmNoCgpjb21taXQgMjlmM2JlMGNhZjA3OTljYTZiODlkZmQ5ODI0YzE1NjE5YTUwMDAwZgpBdXRob3I6IFBldGVyIFBlYXJzZSA8cGV0ZXIucGVhcnNlQGFybS5jb20+CkRhdGU6CVdlZCBNYXkgOSAxMDoyNDozOCAyMDA3ICswMTAwCgogICAgTWFrZWZpbGUgcGVybWlzc2lvbnMKCmNvbW1pdCBiODQyODliNTk1NzMxZTg4NTFkZjQ2ZTg5Mzg0NWNjMTMyMmM5YjliCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1heSA4IDE0OjE3OjA3IDIwMDcgLTA1MDAKCiAgICA4NjQxaHBjbjogRml4IE1ha2VmaWxlIGFmdGVyIG1vdmluZyBwaXhpcyB0byBib2FyZC9mcmVlc2NhbGUuCgogICAgVGhlIE9CSlRSRUUgIT0gU1JDVFJFRSBidWlsZCBzY2VuYXJpbyB3YXMgYnJva2VuLgogICAgVGhpcyBmaXhlcyBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBlNjlmNjZjNmViZTgyYmJiZDFkYTc2NmJjNGVkYTQwZWM3ZWU1YWYxCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglUdWUgTWF5IDggMTU6NTc6NDMgMjAwNyArMDIwMAoKICAgIGFkZDogcmVhZGluZyBzcGVjaWFsIHB1cnBvc2UgcmVnaXN0ZXJzCgpjb21taXQgMWE1MGYxNjRiZWIwNjVmMzYwZmJkZGI3NjAyOTYwN2Q2YjA5OTY5OApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJVHVlIE1heSA4IDE0OjUyOjUyIDIwMDcgKzAyMDAKCiAgICBhZGQ6IE1pY3JvYmxhemUgVjUgZXhjZXB0aW9uIGhhbmRsaW5nCgpjb21taXQgYWI4NzRkNTA0N2U1ZDMwZGJjMWU1MTdmZjI2MDgzZWZmZmE5OGVjYgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJVHVlIE1heSA4IDE0OjM5OjExIDIwMDcgKzAyMDAKCiAgICBhZGQ6IEZTTCBjb250cm9sIHJlYWQgYW5kIHdyaXRlCgpjb21taXQgZGUxZGUwMmE3Y2JmMDVlNmI2M2UwZDhmZmM2MjRmMTI0OTNmNmJhMwpBdXRob3I6IFBpb3RyIEtydXN6eW5za2kgPHBwa0BzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBNYXkgOCAxMzowNTo0NCAyMDA3ICswMjAwCgogICAgW01vdGlvbi1QUk9dIEFkZCBzdXBwb3J0IGZvciBJMkMsIEVFUFJPTSBhbmQgUlRDLgoKY29tbWl0IGZhNWMyYmExMjNiMWJmODg0NTViZmMyMWRiNWU3ODZjYTA0NTAyOWQKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgTWF5IDggMTA6MjM6NTYgMjAwNyArMDIwMAoKICAgIFtNb3Rpb24tUFJPXSBBZGQgQVRBIHN1cHBvcnQuIEFkZCBDRi1ib290aW5nIGNvbW1hbmRzIHRvIHRoZSBkZWZhdWx0CiAgICBlbnZpcm9ubWVudC4KCmNvbW1pdCAwNjI0MWQ1MGEzYWIxYjIwYTBiMDhiYWVlYWZmY2FhMjNhZTRiODM5CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIE1heSA4IDA5OjM5OjEyIDIwMDcgKzAyMDAKCiAgICBbTW90aW9uLVBST10gQ2hhbmdlIElQQiBjbG9jayBmcmVxdWVuY3kgZnJvbSA1ME1IeiB0byAxMDBNSHouIFRoaXMKICAgIGVsaW1pbmF0ZXMgbmV0d29ya2luZyBwcm9ibGVtcyBpbiBMaW51eCAodGltZW91dHMpLgoKY29tbWl0IDFmMTM2OWMzNGI2MjliZTk0NzAyNjg0ZDQxZDNmZGRmMGY2MTkzZTcKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgTWF5IDggMDk6MjE6NTcgMjAwNyArMDIwMAoKICAgIFtNb3Rpb24tUFJPXSBFbmFibGUgRmxhdCBEZXZpY2UgVHJlZSBzdXBwb3J0IGFuZCBtb2RpZnkgZGVmYXVsdCBlbnZpcm9ubWVudAogICAgdG8gYWxsb3cgYm9vdGluZyBvZiBGRFQtZXhwZWN0aW5nIGtlcm5lbHMuCgpjb21taXQgZmIwNWY2ZGEzNWVhMWMxNWM1NTNhYmU2ZjIzZjY1NmJmMThkYzVkYgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIE1heSA3IDIzOjU4OjMxIDIwMDcgKzAyMDAKCiAgICBuZXc6IFVTRV9NU1JfSU5UUiBzdXBwb3J0Cgpjb21taXQgMDA4ODYxYTJmM2VmMmMwNjI3NDRkNzMzNzg3YzdlNTMwYTFiODc2MQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CU1vbiBNYXkgNyAyMjozNjoxNSAyMDA3ICswMjAwCgogICAgW01QQzV4eHhdIFRoZXJlIGFyZSBuZXR3b3JraW5nIHByb2JsZW1zIG9uIHRoZSBNb3Rpb24tUFJPIGJvYXJkIHdpdGgKICAgIGN1cnJlbnQgUEhZIGluaXRhbGl6YXRpb24gY29kZSAodGZ0cCB0aW1lb3V0cyBhbGwgdGhlIHRpbWUpLiBUaGlzIGNvbW1pdAogICAgdGVtcG9yYXJpbHkgZGlzYWJsZXMgUEhZIGluaXRhbGl6YXRpb24gc2VxdWVuY2UgdG8gbWFrZSB0aGUgbmV0d29ya2luZwogICAgb3BlcmF0aW9uYWwsIHVudGlsIGEgZml4IGlzIGZvdW5kLgoKY29tbWl0IGFiY2E5MDE4NjljMzc2MGI2YzVmZWNiODI1ZGI2YzFkOTFhNzhhOTMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gTWF5IDcgMjI6MTA6MzYgMjAwNyArMDIwMAoKICAgIEdldCByaWQgb2YgZHVwbGljYXRlZCBmaWxlIChzZWUgaW5jbHVkZS9jb25maWdzL3NiYzg1NjAuaCBpbnN0ZWFkKQoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMjA3YjdiMmM5ZDk3NTJlMGY2NDc4YzMwYzI5YjcwODdmNmU2Y2JiNgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CU1vbiBNYXkgNyAyMjowNzowOCAyMDA3ICswMjAwCgogICAgR2V0IHJpZCBvZiBkdXBsaWNhdGVkIGZpbGUgKHNlZSBkb2MvUkVBRE1FLlNCQzg1NjAgaW5zdGVhZCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IGE3YmFjN2U5YjU3YmE5NDgwNTFiZWIxOWVjNWJlM2E3NWNlNzUzODMKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBNYXkgNyAxOTo0MzoxMCAyMDA3ICswMjAwCgogICAgZml4OiByZWFkIGFuZCB3cml0ZSBNU1IgLSByZXBhaXIgbnVtYmVyIG9mIHBhcmFtZXRlcnMKCmNvbW1pdCAxOTNiNGEzYmIzYWNhZGRmNzk4ZGE4ZGUwZGEwNWQ5NGJhODc3NGVlCkF1dGhvcjogSmVmZnJleSBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CkRhdGU6CU1vbiBNYXkgNyAxOTo0Mjo0OSAyMDA3ICswMjAwCgogICAgW1BBVENIXSBwcGM0eHg6IEZpeCBDT05GSUdfU1lTX0NMS19GUkVRIGRlZmluaXRpb24gaW4gU2VxdW9pYSBjb25maWcgZmlsZQoKICAgIEEgJzMnIGdvdCBjdXQgb2ZmIGluIHRoZSBmb3JtYXR0aW5nIG9mIHRoZSBsYXN0IHBhdGNoIHRvIGF1dG9tYXRpY2FsbHkKICAgIGNoYW5nZSB0aGUgY2xvY2sgc3BlZWQgb2YgdGhlIHN5c3RlbSBjbG9jayBvbiBzZXF1b2lhIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDE5YmYxZmJhZDdmMTlkNWExMjBiZTliMWRhZjEzNmUwNTJmY2FiMzkKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBNYXkgNyAxOTozMzo1MSAyMDA3ICswMjAwCgogICAgbmV3OiBmc2wgaW50ZXJydXB0IHN1cHBvcnQKICAgIEZTTF9IYXNfZGF0YSBpcyBjb25uZWN0ZWQgdG8gSU5UQy4KCmNvbW1pdCA3OTIwMzJiYWE3ZDYyNWUzNGM5ODFhYjZkZjUyMTkxMWJkOGRjODYxCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gTWF5IDcgMTk6MzA6MTIgMjAwNyArMDIwMAoKICAgIGZpeDogaW50ZXJydXB0IGhhbmRsZXIKICAgIHJlbW92ZSBhc20gY29kZQoKY29tbWl0IGYzZjAwMWEzNDFlZjE4NWQwZjEzODQxYmU1YjVkYzMzOTVhYWNjMzEKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CU1vbiBNYXkgNyAxOToyNTowOCAyMDA3ICswMjAwCgogICAgZml4OiByZW1vdmUgYXNtIGNvZGUKCmNvbW1pdCBmYjdjMmRiZWYwMmM5ZjZmOGQ3YjA0ZWM0YzJiZmI5MTQxOGI5YzAxCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglNb24gTWF5IDcgMTk6MTI6NDMgMjAwNyArMDIwMAoKICAgIGZpeDogY2xlYW4gaW50ZXJydXB0Cgpjb21taXQgNDJlZmVkNjEzMGM4ZmNmN2RhODgxMzg1YjU0MjcwNjVkMjgwMTc1NwpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIE1heSA3IDE3OjIyOjI1IDIwMDcgKzAyMDAKCiAgICBmaXg6IGludGVycnVwdCBoYW5kbGVyIGZvciBtdWx0aXBsZSBzb3VyY2VzCgpjb21taXQgNDhmYmQzYTRjZGFiYmViYzFkZWJkN2VlZDczYzAwYzJjYWY5MTRmNgpBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJTW9uIE1heSA3IDE3OjExOjA5IDIwMDcgKzAyMDAKCiAgICBuZXc6IGFkZCB3cml0aW5nIHRvIG1zciByZWdpc3RlcgoKY29tbWl0IDNhNjE5ZGQ3YmVkMDNlOGI0ZDIyYTM5MTFmOTBmZDEyYWY1Mzc2YzIKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglNb24gTWF5IDcgMTY6NDM6NTYgMjAwNyArMDIwMAoKICAgIEZpeCBhbiBhbmNpZW50IENIQU5HRUxPRyBjb25mbGljdAoKY29tbWl0IGFjNGNkNTlkNTljOWJmM2Y4OWNiN2EzNDRhYmY4MTg0ZDY3OGY1NjIKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglTYXQgTWF5IDUgMDg6MTI6MzAgMjAwNyArMDIwMAoKICAgIDV4eHg6IHdyaXRlIE1BQyBhZGRyZXNzIHRvIG1hYy1hZGRyZXNzIGFuZCBsb2NhbC1tYWMtYWRkcmVzcwoKICAgIFNvbWUgZGV2aWNlIHRyZWVzIGhhdmUgYSBtYWMtYWRkcmVzcyBwcm9wZXJ0eSwgc29tZSBoYXZlIGxvY2FsLW1hYy1hZGRyZXNzLAogICAgYW5kIHNvbWUgaGF2ZSBib3RoLiAgVG8gc3VwcG9ydCBhbGwgb2YgdGhlc2UgZGV2aWNlIHRyZWVzLCBmdHBfY3B1X3NldHVwKCkKICAgIHNob3VsZCB3cml0ZSB0aGUgTUFDIGFkZHJlc3MgdG8gbWFjLWFkZHJlc3MgYW5kIGxvY2FsLW1hYy1hZGRyZXNzLCBpZiB0aGV5CiAgICBleGlzdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBhOWQ4N2UyNzA3ZGNiMjQ5ZjZiYjdmN2ZmN2UwMGFjZDhjZGE5ZmQyCkF1dGhvcjogR3J6ZWdvcnogV2lhbmVja2kgPGdyemVnb3J6LndpYW5lY2tpQGdtYWlsLmNvbT4KRGF0ZToJU3VuIEFwciAyOSAxNDowMTo1NCAyMDA3ICswMjAwCgogICAgW1BBVENIXSBVc2UgUFZSIHRvIGRpc3Rpbmd1aXNoIE1QQzUyMDBCIGZyb20gTVBDNTIwMCBpbiBib290IG1lc3NhZ2UKCiAgICBNUEM1MjAwQiBzeXN0ZW1zIGFyZSBpbmNvcnJlY3RseSByZXBvcnRlZCBhcyBNUEM1MjAwIGluIFUtQm9vdCBzdGFydC11cAogICAgbWVzc2FnZS4gVXNlIFBWUiB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZSB0d28gdmFyaWFudHMsIGFuZCBwcmludCBwcm9wZXIgQ1BVCiAgICBpbmZvcm1hdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcnplZ29yeiBXaWFuZWNraSA8Z3J6ZWdvcnoud2lhbmVja2lAZ21haWwuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA0ZWM1YmQ1NWVkMWZmYTkxYTc3NGFmMjk4NzY5NjIxZjRmYmIxOGMxCkF1dGhvcjogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgpEYXRlOglXZWQgQXByIDI1IDE2OjAxOjI2IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIHNpbXBsaWZ5IHNpbGVudCBjb25zb2xlCgogICAgU2lnbmVkLW9mZi1ieTogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBiNzU5OGE0M2YyYjQyMWE3MTNkODEzNWU5OGE0MmMzN2Q5ZWI5ZGYwCkF1dGhvcjogU2VyZ2VpIFNodHlseW92IDxzc2h0eWx5b3ZAcnUubXZpc3RhLmNvbT4KRGF0ZToJTW9uIEFwciAyMyAxNTozMDozOSAyMDA3ICswMjAwCgogICAgW1BBVENIXSBBdm9pZCBhc3NpZ25pbmcgUENJIHJlc291cmNlcyBmcm9tIHplcm8gYWRkcmVzcwoKICAgIElmIGEgUENJIElERSBjYXJkIGhhcHBlbnMgdG8gZ2V0IGEgemVybyBhZGRyZXNzIGFzc2lnbmVkIHRvIGl0LCB0aGUgTGludXggSURFCiAgICBjb3JlIGNvbXBsYWlucyBhbmQgSURFIGRyaXZlcnMgZmFpbHMgdG8gd29yay4gIEFsc28sIGFzc2lnbmluZyB6ZXJvIHRvIGEgQkFSCiAgICB3YXMgaWxsZWdhbCBhY2NvcmRpbmcgdG8gUENJIDIuMSAodGhlIGxhdGVyIHJldmlzaW9ucyBzZWVtIHRvIGhhdmUgZXhjbHVkZWQgdGhlCiAgICBzZW50ZW5jZSBhYm91dCAiMCIgYmVpbmcgY29uc2lkZXJlZCBhbiBpbnZhbGlkIGFkZHJlc3MpIC0tIHNvLCB1c2UgYSByZWFzb25hYmxlCiAgICBzdGFydGluZyB2YWx1ZSBvZiAweDEwMDAgKHRoYXQncyB3aGF0IHRoZSBtb3N0IExpbnV4IGFyY2hzIGFyZSB1c2luZykuCgogICAgQWx0ZXJuYXRpdmVseSwgb25lIG1pZ2h0IGhhdmUgZml4ZWQgdGhlIGNhbGxzIHRvIHBjaV9zZXRfcmVnaW9uKCkgaW5kaXZpZHVhbGx5CiAgICAoc29tZSBjb2RlIGV2ZW4gc2VlbXMgdG8gaGF2ZSB0YWtlbiBjYXJlIG9mIHRoaXMgaXNzdWUpIGJ1dCB0aGF0IHdvdWxkIGhhdmUKICAgIGJlZW4gYSBsb3QgbW9yZSB3b3JrLiA6LSkKCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgU2h0eWx5b3YgPHNzaHR5bHlvdkBydS5tdmlzdGEuY29tPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5ZmZkNDUxYWZlYjA4ZTViZTdkZGFlNjgwNDg3ZWM5NjJiMmJjYTI1CkF1dGhvcjogSmVmZnJleSBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CkRhdGU6CU1vbiBBcHIgMjMgMTQ6MDA6MTEgMjAwNyArMDIwMAoKICAgIFtwYXRjaF0gc2V0ZW52KC4uLikgY2FuIGRlbGV0ZSBlbnZpcm9ubWVudGFsdmFyaWFibGVzCgogICAgdXBkYXRlIHNldGVudigpIGZ1bmN0aW9uIHNvIHRoYXQgZW50ZXJpbmcgYSBOVUxMIHZhbHVlIGZvciB0aGUKICAgIHZhcmlhYmxlJ3MgdmFsdWUgd2lsbCBkZWxldGUgdGhlIGVudmlyb25tZW50YWwgdmFyaWFibGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWJkMGEwYWUwNWE0NDc2OWM0ZTI3NDU4YWQ0ZTlmMzQzODI1MDQ0MwpBdXRob3I6IE1pa2UgRnJ5c2luZ2VyIDx2YXBpZXJAZ2VudG9vLm9yZz4KRGF0ZToJTW9uIEFwciAyMyAxMzo1NDoyNCAyMDA3ICswMjAwCgogICAgW3BhdGNoXSB1c2UgdW5zaWduZWQgY2hhciBpbiBzbWM5MTExMSBkcml2ZXIgZm9yIG1hYwoKICAgIHRoZSB2X21hYyB2YXJpYWJsZSBpbiB0aGUgc21jOTExMTEgZHJpdmVyIGlzIGRlY2xhcmVkIGFzIGEgc2lnbmVkIGNoYXIgLi4uCiAgICB0aGlzIGNhdXNlcyBwcm9ibGVtcyB3aGVuIG9uZSBvZiB0aGUgYnl0ZXMgaW4gdGhlIE1BQyBpcyAic2lnbmVkIiBsaWtlIDB4RTAKICAgIGJlY2F1c2Ugd2hlbiBpdCBnZXRzIHByaW50ZWQgb3V0LCB5b3UgZ2V0IGEgZGlzcGxheSBsaWtlOgogICAgMHhGRkZGRkZFMCBhbmQgdGhhdCdzIG5vIGdvb2QKCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+Cgpjb21taXQgZmZjNTBmOWJiMTk0MzQzYzYzMDM1MTdhNTE3NzA4NDU3YTVlYjZiOApBdXRob3I6IE1pY2hhbCBTaW1layA8bW9uc3RyQG1vbnN0ci5ldT4KRGF0ZToJU2F0IE1heSA1IDE4OjU0OjQyIDIwMDcgKzAyMDAKCiAgICBuZXc6IEZTTCBhbmQgTVNSIHN1cHBvcnQgIzIKCmNvbW1pdCBmN2UyZTBlYjA2NjgxMzYzMDVmNzhiYjljMjFiZTc5YjQ4YTM0MjQ3CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTYXQgTWF5IDUgMTg6Mjc6MTYgMjAwNyArMDIwMAoKICAgIG5ldzogRlNMIGFuZCBNU1Igc3VwcG9ydAoKY29tbWl0IDJmMTUyNzhjMmViOTExYzY2OGI0ZmU1NjIxMzBiNzhjZjU1NGQxMzkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgTWF5IDUgMTg6MjM6MTEgMjAwNyArMDIwMAoKICAgIENvZGluZyBzdHlsa2UgY2xlYW51cDsgdXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDg4NWVjODliNjQ4YTg5OWEyZjMyMzkzZmQzZmZkOWY3MjM0YzQ0MDIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgTWF5IDUgMTg6MDU6MDIgMjAwNyArMDIwMAoKICAgIEFkZCBTVFggR1AzIFNTQSBib2FyZCB0byBNQUtFQUxMIHNjcmlwdDsgdXBkYXRlIENIQU5HRUxPRy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDU0OTk2NDViM2ZlMTdhNTQ4YWY5ZGZjNDc5Y2E2ZTI0NTVmMTc5YTIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgTWF5IDUgMTc6MTU6NTAgMjAwNyArMDIwMAoKICAgIE1ha2UgImZpbGUiIGNvbW1hbmQgaGFwcHkgd2l0aCBzb21lIGNvbmZpZy5tayBmaWxlczsgdXBkYXRlIENIQU5HRUxPRwoKY29tbWl0IGUzYjhjNzhiYzI0ODljMjdhZTAyMDk4NmVmMGVhY2E2ODQ4NjZjZWYKQXV0aG9yOiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KRGF0ZToJU2F0IE1heSA1IDA4OjMyOjE0IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IERldGVjdCBpZiB0aGUgc3lzY2xrIG9uIFNlcXVvaWEgaXMgMzMgb3IgMzMuMzMzIE1IegoKICAgIFRoZSBBTUNDIFNlY3F1b2lhIGJvYXJkIGhhcyBiZWVuIGNoYW5nZWQgaW4gYSBuZXcgcmV2aXNpb24gZnJvbSB1c2luZyBhCiAgICAzMy4wMDAgTUh6IGNsb2NrIHRvIGEgMzMuMzMzIE1IeiBzeXN0ZW0gY2xvY2suIEEgYml0IGluIHRoZSBDUExECiAgICBpbmRpY2F0ZXMgdGhlIGRpZmZlcmVuY2UuIFRoaXMgcGF0Y2ggcmVhZHMgdGhhdCBiaXQgYW5kIHVzZXMgdGhlIGNvcnJlY3QKICAgIGNsb2NrIHNwZWVkIGZvciB0aGUgYm9hcmQuIFRoaXMgY29kZSBpcyBiYWNrd2FyZCBjb21wYXRhYmxlIHdpbGwgYWxsCiAgICBwcmlvciBib2FyZHMuIEFsbCBwcmlvciBib2FyZHMgd2lsbCBiZSByZWFkIGFzIDMzLjAwMC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWZmcmV5IE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmNTQ0ZmY2NjU2ZmNhMjYzZWQxZWJlMzk4OTliNmQ5NWRhNjdjOGI4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTWF5IDUgMDg6Mjk6MDEgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogU2VxdW9pYTogUmVtb3ZlIGNwdS9wcGM0eHgvc3BlZWQuYyBmcm9tIE5BTkQgYm9vdGluZwoKICAgIFVzaW5nIGNwdS9wcGM0eHgvc3BlZWQuYyB0byBjYWxjdWxhdGUgdGhlIGJ1cyBmcmVxdWVuY3kgaXMgdG9vIGJpZwogICAgZm9yIHRoZSA0ayBOQU5EIGJvb3QgaW1hZ2Ugc28gZGVmaW5lIGJ1c19mcmVxdWVuY3kgdG8gMTMzTUh6IGhlcmUKICAgIHdoaWNoIGlzIHNhdmUgZm9yIHRoZSByZWZyZXNoIGNvdW50ZXIgc2V0dXAuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDJmNTUwYWI5NzY0MDUzMDBmNWIwN2JmMjg5MDgwMDg0MGQwYWEwNWYKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglTYXQgTWF5IDUgMDg6MTI6MzAgMjAwNyArMDIwMAoKICAgIDV4eHg6IHdyaXRlIE1BQyBhZGRyZXNzIHRvIG1hYy1hZGRyZXNzIGFuZCBsb2NhbC1tYWMtYWRkcmVzcwoKICAgIFNvbWUgZGV2aWNlIHRyZWVzIGhhdmUgYSBtYWMtYWRkcmVzcyBwcm9wZXJ0eSwgc29tZSBoYXZlIGxvY2FsLW1hYy1hZGRyZXNzLAogICAgYW5kIHNvbWUgaGF2ZSBib3RoLiAgVG8gc3VwcG9ydCBhbGwgb2YgdGhlc2UgZGV2aWNlIHRyZWVzLCBmdHBfY3B1X3NldHVwKCkKICAgIHNob3VsZCB3cml0ZSB0aGUgTUFDIGFkZHJlc3MgdG8gbWFjLWFkZHJlc3MgYW5kIGxvY2FsLW1hYy1hZGRyZXNzLCBpZiB0aGV5CiAgICBleGlzdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBhNzk4ODY1OTA1OTNiYTFkNjY3Yzg0MGNhYTQ5NDBjNjE2MzlmMThmCkF1dGhvcjogVGhvbWFzIEtub2Jsb2NoIDxrbm9ibG9jaEBzaWVtZW5zLmNvbT4KRGF0ZToJU2F0IE1heSA1IDA3OjA0OjQyIDIwMDcgKzAyMDAKCiAgICBOQU5EOiBXcm9uZyBjYWxjdWxhdGlvbiBvZiBwYWdlIG51bWJlciBpbiBuYW5kX2Jsb2NrX2JhZCgpCgogICAgSW4gY2FzZSB0aGF0IHRoZXJlIGlzIG5vIG1lbW9yeSBiYXNlZCBiYWQgYmxvY2sgdGFibGUgYXZhaWxhYmxlIHRoZQogICAgZnVuY3Rpb24gbmFuZF9ibG9ja19jaGVja2JhZCgpIGluIGRyaXZlcnMvbXRkL25hbmQvbmFuZF9iYXNlLmMgd2lsbCBjYWxsCiAgICBuYW5kX2Jsb2NrX2JhZCgpIGRpcmVjdGx5LiBXaGVuIHBhcmFtZXRlciAnZ2V0Y2hpcCcgaXMgc2V0IHRvIHplcm8sCiAgICBuYW5kX2Jsb2NrX2JhZCgpIHdpbGwgbm90IHJpZ2h0IHNoaWZ0IHRoZSBvZmZzZXQgdG8gY2FsY3VsYXRlIHRoZQogICAgY29ycmVjdCBwYWdlIG51bWJlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgS25vYmxvY2ggPGtub2Jsb2NoQHNpZW1lbnMuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDk4NzdkN2RjZDFlZWJlNjFhYTVkOGI4ZmZlOWMwNDhlYTQyNmU2ZjYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgTWF5IDQgMTA6MDI6MzMgMjAwNyArMDIwMAoKICAgIEZpeCBpbml0cmQgbGVuZ3RoIGNvcnJ1cHRpb24gaW4gYm9vdG0gY29tbWFuZC4KCiAgICBXaGVuIHVzaW5nIEZEVCBJbWFnZXMsIHRoZSBsZW5ndGggb2YgYW4gaW5pdGFsIHJhbWRpc2sgd2FzCiAgICBvdmVyd3JpdHRlbiAoYnVnIGludHJvZHVjZWQgYnkgY29tbWl0IDg3YTQ0OWM4LCAyMiBBdWcgMjAwNikuCgogICAgUGF0Y2hlcyBieSBUaW11ciBUYWJpICYgSm9obnMgRGFuaWVsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMDY4YWFiNjYwYmMzOTEyYjkzMGJlNTU0MGU2YjNmM2ZkNmFkM2M5NgpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBNYXkgMyAxOTo0Mzo1MiAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogZml4IHRyaXZpYWwgZXJyb3IgaW4gTUFLRUFMTAoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzY0YTg5ZDZjZTg1ODRiOWZjNjRmNGU4NWRhOWVjYWMzY2ZjMmMyYQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVRodSBNYXkgMyAxNjozNDo0MSAyMDA3ICswMjAwCgogICAgVXBkYXRlIGJvYXJkIGNvbmZpZ3VyYXRpb24gZm9yIFNUWCBHUDNTU0EgYm9hcmQ6CgogICAgRW5hYmxlIGh1c2ggc2hlbGwsIGVudmlyb25tZW50IGluIGZsYXNoIHJhdGhlciBpbiBFRVBST00sCiAgICBtb3JlIHVzZXItZnJpZW5kbHkgZGVmYXVsdCBlbnZpcm9ubWVudCwgZXRjLgogICAgVGhlIHNpbXBsZSBFRVBST00gZW52aXJvbm1lbnQgY2FuIGJlIHNlbGVjdGVkIGVhc2lseSBpbiB0aGUgYm9hcmQKICAgIGNvbmZpZyBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMmM2ZmIxOTlkYzU3NTZmYzcyZjQ5ZDFmNGRlMTA1ZTA4OTA0OWQ2NQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVR1ZSBBcHIgMjQgMTQ6Mzc6NDkgMjAwNyArMDIwMAoKICAgIENsZWFudXAgU1RYIEdQM1NTQSBjb2RlOyBmaXggYnVpbGQgYW5kIGNvbXBpbGUgcHJvYmxlbXMuCgpjb21taXQgMzUxNzFkYzA0ZTAyOGVjYWNjMjNhZDkxNmE2NjI5NTQ3MjU1NWRiZgpBdXRob3I6IERhbiBNYWxlayA8ZGFuQGVtYmVkZGVkYWxsZXkuY29tPgpEYXRlOglGcmkgSmFuIDUgMDk6MTU6MzQgMjAwNyArMDEwMAoKICAgIEFkZCBzdXBwb3J0IGZvciBTVFggR1AzU1NBIChzdHhzc2EpIEJvYXJkCgogICAgU2lnbmVkLW9mZi1ieSBEYW4gTWFsZWssIDxkYW5AZW1iZWRkZWRhbGxleS5jb20+Cgpjb21taXQgZjIxMzRmOGU5ZWIwMDZiZGNkNzI5ZTg5ZjMwOWMwN2IyZmE0NTE4MApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgTWF5IDIgMTM6MzE6NTMgMjAwNyArMDIwMAoKICAgIG1hY2I6IERvbid0IHJlc3RhcnQgYXV0b25lZ290aWF0aW9uIGlmIHdlIGFscmVhZHkgaGF2ZSBsaW5rCgogICAgUmV3b3JrIG1hY2JfcGh5X2luaXQgc28gdGhhdCBpdCBkb2Vzbid0IGF0dGVtcHQgdG8gcmUtbmVnb3RpYXRlIGlmIHRoZQogICAgbGluayBpcyBhbHJlYWR5IHVwLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDA0ZmNiNWQzOGJjOTA3NzljZDlhNzEwZDYwNzAyMDc1OTg2ZjBlMjkKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIE1heSAyIDEzOjIyOjM4IDIwMDcgKzAyMDAKCiAgICBtYWNiOiBJbnRyb2R1Y2UgYSBmZXcgYmFycmllcnMgd2hlbiBkZWFsaW5nIHdpdGggRE1BIGRlc2NyaXB0b3JzCgogICAgVGhlcmUgd2VyZSBhIGZldyB0aGVvcmV0aWNhbCBwb3NzaWJpbGl0aWVzIHRoYXQgdGhlIGNvbXBpbGVyIG1pZ2h0CiAgICBvcHRpbWl6ZSBhd2F5IERNQSBkZXNjcmlwdG9yIHJlYWRzIGFuZC9vciB3cml0ZXMgYW5kIHRodXMgY2F1c2UKICAgIHN5bmNocm9uaXphdGlvbiBwcm9ibGVtcyB3aXRoIHRoZSBoYXJkd2FyZS4gSW5zZXJ0IGJhcnJpZXJzIHdoZXJlCiAgICB3ZSBkZXBlbmQgb24gcmVhZHMvd3JpdGVzIGFjdHVhbGx5IGhpdHRpbmcgbWVtb3J5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGZmYTYyMWEwZDEyYTFjY2Q4MWM5MzZjNTY3Zjg5MTdhMjEzNzg3YTgKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVNhdCBGZWIgMjQgMDE6MDg6MTMgMjAwNyAtMDYwMAoKICAgIENsZWFuZWQgdXAgc29tZSA4NXh4IFBDSSBidWdzCgogICAgKiBDbGVhbmVkIHVwIHRoZSBDRFMgUENJIENvbmZpZyBUYWJsZXMgYW5kIGFkZGVkIE5VTEwgZW50cmllcyB0bwogICAgICB0aGUgZW5kCiAgICAqIEZpeGVkIFBDSWUgTEFXQkFSIGFzc2lnbmVtdCB0byB1c2UgdGhlIGNwdS1yZWxhdGl2ZSBhZGRyZXNzCiAgICAqIEZpeGVkIDg1eHggUENJIGNvZGUgdG8gYXNzaWduIHBvd2FyIHJlZ2lvbiBzaXplcyBiYXNlZCBvbiB0aGUKICAgICAgY29uZmlnIHZhbHVlcyAocmF0aGVyIHRoYW4gaGFyZC1jb2RpbmcgdGhlbSkKICAgICogRml4ZWQgdGhlIDg1NDggQ0RTIFBDSTIgSU8gdG8gb25jZSBhZ2FpbiBoYXZlIDAgYXMgdGhlIGJhc2UgYWRkcmVzcwoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2NzQzMTA1OTg4ZmM0NGQ1YjBkMzAzODhjNzkwNjA3ODM1YWFlN2E2CkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDIzIDAyOjU0OjI1IDIwMDcgLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIDg1NjggTURTIGJvYXJkCgogICAgVGhpcyBpbmNsdWRlZCBzb21lIGNoYW5nZXMgdG8gY29tbW9uIGZpbGVzOgogICAgKiBBZGQgODU2OCBwcm9jZXNzb3IgU1ZSIHRvIHZhcmlvdXMgcGxhY2VzCiAgICAqIEFkZCBzdXBwb3J0IGZvciBzZXR0aW5nIHRoZSBxZSBidXMtZnJlcXVlbmN5IHZhbHVlIGluIHRoZSBkdHMKICAgICogQWRkIHRoZSA4NTY4TURTIHRhcmdldCB0byB0aGUgTWFrZWZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWYxYzJiODRiZjI3Yzg1NjViYWRkYzgyZDFhYmI5MzcwMGQxMGUyZQpBdXRob3I6IERhdmlkIFVwZGVncmFmZiA8ZGF2ZUBjcmF5LmNvbT4KRGF0ZToJRnJpIEFwciAyMCAxNDozNDo0OCAyMDA3IC0wNTAwCgogICAgQWRkIHN1cHBvcnQgZm9yIHRyZWF0aW5nIHVua25vd24gUEhZcyBhcyBnZW5lcmljIFBIWXMuCgogICAgV2hlbiBicmluZ2luZyB1cCB1LWJvb3Qgb24gbmV3IGJvYXJkcywgUEhZIHN1cHBvcnQgc29tZXRpbWVzIGdldHMKICAgIG5lZ2xlY3RlZC4JTW9zdCBQSFlzIGRvbid0IHJlYWxseSBuZWVkIGFueSBzcGVjaWFsIHN1cHBvcnQsCiAgICB0aG91Z2guICBCeSBhZGRpbmcgYSBnZW5lcmljIGVudHJ5IHRoYXQgYWx3YXlzIG1hdGNoZXMgaWYgbm90aGluZwogICAgZWxzZSBkb2VzLCB3ZSBjYW4gcHJvdmlkZSBzdXBwb3J0IGZvciAidW5zdXBwb3J0ZWQiIFBIWXMgZm9yIHRoZQogICAgdHNlYy4KCiAgICBUaGUgZ2VuZXJpYyBQSFkgZHJpdmVyIHN1cHBvcnRzIG1vc3QgUEhZcywgaW5jbHVkaW5nIGdpZ2FiaXQuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgVXBkZWdyYWZmIDxkYXZlQGNyYXkuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE3NWFmOWJmZDhmZmYwNDk5ZWZkYmI5MDYwMWNlYzVhMmFmZWYxMTcKQXV0aG9yOiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgNyAxNToyODowNCAyMDA3IC0wNjAwCgogICAgQ29uZGl0aW9uYWxpemUgODY0MSBSZXYxLjAgTUNNIHdvcmthcm91bmRzCgogICAgU2lnbmVkLW9mZi1ieTogSmFtZXMgWWFuZyA8SmFtZXMuWWFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNjQ3MDJiN2ZjOGY4ZGYzOWQzMWFkZDc3MGRmNmUzNzJmOWU5Y2UzCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAzMCAxMzo1OTo1MCAyMDA3IC0wNTAwCgogICAgRml4IG1lbW9yeSBpbml0aWFsaXphdGlvbiBvbiBNUEM4MzQ5RS1tSVRYCgogICAgRGVmaW5lIENGR19ERFJfU0RSQU1fQ0xLX0NOVEwgZm9yIHRoZSBNUEM4MzQ5RS1tSVRYIGFuZCBNUEM4MzQ5RS1tSVRYLUdQLgogICAgVGhpcyBhbGxvd3MgZGRyLT5zZHJhbV9jbGtfY250bCB0byBiZSBwcm9wZXJseSBpbml0aWFsaXplZC4gIFRoaXMgaXMgbmVjZXNzYXJ5CiAgICBvbiBzb21lIElUWCBib2FyZHMsIG5vdGFibHkgdGhvc2Ugd2l0aCBhIHJldmlzaW9uIDMuMSBDUFUuCgogICAgQWxzbyBjaGFuZ2Ugc3BkX3NkcmFtKCkgaW4gY3B1L21wYzgzeHgvc3BkX3NkcmFtLmMgdG8gbm90IHdyaXRlIGFueXRoaW5nIGludG8KICAgIGRkci0+c2RyYW1fY2xrX2NudGwgaWYgQ0ZHX0REUl9TRFJBTV9DTEtfQ05UTCBpcyBub3QgZGVmaW5lZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgogICAgQWNrZWQtYnk6IE1pY2hhZWwgQmVuZWRpY3QgPE1CZW5lZGljdEB0d2Fjcy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU0YjJkNDM0YWU5ZDAxNzg3OTM2ZjM0ZmUxNzU5Y2YzZDc2MjRhZTMKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDMwIDE1OjI2OjIxIDIwMDcgLTA1MDAKCiAgICBtcGM4M3h4OiByZXBsYWNlIGVsYWJvcmF0ZSBib290dGltZSB2ZXJib3NpdHkgd2l0aCAnY2xvY2tzJyBjb21tYW5kCgogICAgYW5kIGZpeCBDUFU6IHRvIGFsaWduIHdpdGggQm9hcmQ6IGRpc3BsYXkgdGV4dC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGMxYWI4MjY2OWQ5NTI1OTk4YzM0ZTgwMmExMmNhZDY2MjcyM2YyMmEKQXV0aG9yOiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBNYXIgMTYgMTM6MDI6NTMgMjAwNyAtMDUwMAoKICAgIFJld3JvdGUgcGljb3NfdG9fY2xrKCkgdG8gYXZvaWQgcm91bmRpbmcgZXJyb3JzLgogICAgQ2xhcmlmaWVkIHRoYXQgY29udmVyc2lvbiBpcyB0byBEUkFNIGNsb2NrcyByYXRoZXIgdGhhbiBwbGF0Zm9ybSBjbG9ja3MuCiAgICBNYWRlIGZ1bmN0aW9uIHN0YXRpYyB0byBzcGRfc2RyYW0uYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYW1lcyBZYW5nIDxKYW1lcy5ZYW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhiMzk1MDFkMjg3NTRlNzI3MjZjZTdmYjAyMzEwZTU2ZGJkZjExNmEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVN1biBBcHIgMjkgMTQ6MTM6MDEgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQmFtYm9vOiBVc2UgY3VycmVudCBOQU5EIGRyaXZlciBhbmQgKm5vdCogdGhlIGxlZ2FjeSBkcml2ZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODY0YWE2YTZhNDY2ZmNiOTJiZjMyYjFkN2RiYTc5Y2Q3MDliNTJjOQpBdXRob3I6IEdyemVnb3J6IFdpYW5lY2tpIDxncnplZ29yei53aWFuZWNraUBnbWFpbC5jb20+CkRhdGU6CVN1biBBcHIgMjkgMTQ6MDE6NTQgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gVXNlIFBWUiB0byBkaXN0aW5ndWlzaCBNUEM1MjAwQiBmcm9tIE1QQzUyMDAgaW4gYm9vdCBtZXNzYWdlCgogICAgTVBDNTIwMEIgc3lzdGVtcyBhcmUgaW5jb3JyZWN0bHkgcmVwb3J0ZWQgYXMgTVBDNTIwMCBpbiBVLUJvb3Qgc3RhcnQtdXAKICAgIG1lc3NhZ2UuIFVzZSBQVlIgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiB0aGUgdHdvIHZhcmlhbnRzLCBhbmQgcHJpbnQgcHJvcGVyIENQVQogICAgaW5mb3JtYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogR3J6ZWdvcnogV2lhbmVja2kgPGdyemVnb3J6LndpYW5lY2tpQGdtYWlsLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNWM1ZDMyNDI5MzVjZjM1NDNhZjAxMTQyNjI3NDk0NDM0ODM0Y2Y5OApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBcHIgMjUgMTI6MzQ6MzggMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IG1pbm9yIGZpeHVwcyBmb3IgODMxM3JkYiBpbnRyb2R1Y3Rpb24KCmNvbW1pdCBhZGE0ZDQwMDkxZjZlZDRhNGYwMDQwZTA4ZDIwZGIyMTk2N2U0YTY3CkF1dGhvcjogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgpEYXRlOglXZWQgQXByIDI1IDE2OjAxOjI2IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIHNpbXBsaWZ5IHNpbGVudCBjb25zb2xlCgogICAgU2lnbmVkLW9mZi1ieTogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgogICAgQWNrZWQtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxNDQ4NzZhMzgwZjU3NTZmNTc0MTJjYWY3NGMxZDZkYzIwMWRkNzk2CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglUdWUgQXByIDI0IDIzOjAxOjAyIDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIE1URCBwYXJ0aXRpb24gc3VwcG9ydCwgSkZGUzIgc3VwcG9ydAoKY29tbWl0IDM3ZWQ2Y2RkNDE1OTE5NWJmYWQ2OGQ4YTIzN2Y2YWRkYThmNDgyY2IKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVHVlIEFwciAyNCAxNDowMzo0NSAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBzZXR1cCA0NDBFUHgvR1J4IFpNSUkvUkdNSUkgYnJpZGdlIGRlcGVuZGluZyBvbiBQRkMgcmVnaXN0ZXIgY29udGVudC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCA2NmVkNmNjYTNmMzQwZjdhOGEwNmQ5MjcyYWUyZWY4ZTk2ZjAyNzNkCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXByIDIzIDAyOjM3OjQ3IDIwMDcgLTA1MDAKCiAgICBSZXdvcmtlZCA4NXh4IHNwZWVkIGRldGVjdGlvbiBjb2RlCgogICAgQ2hhbmdlZCB0aGUgY29kZSB0byByZWFkIHRoZSByZWdpc3RlcnMgYW5kIGNhbGN1bGF0ZSB0aGUgY2xvY2sKICAgIHJhdGVzLCByYXRoZXIgdGhhbiB1c2luZyBhICJzd2l0Y2giIHN0YXRlbWVudC4KCiAgICBJZGVhIGZyb20gQW5kcmV3IEtsb3NzbmVyIDxhbmRyZXdAY2VzYS5vcGJ1Lnhlcm94LmNvbT4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODFmNDgxY2E3MDhlZDZhNTZiZjljNDEwZTMxOTFkYmFkNTgxYzU2NQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAyMyAwMjoyNDoyOCAyMDA3IC0wNTAwCgogICAgRW5hYmxlIDg1NDQgc3VwcG9ydAoKICAgICogQWRkIHN1cHBvcnQgdG8gdGhlIE1ha2VmaWxlCiAgICAqIEFkZCA4NTQ0IGNvbmZpZ3VyYXRpb24gc3VwcG9ydCB0byB0aGUgdHNlYyBkcml2ZXIKICAgICogQWRkIDg1NDQgU1ZSIG51bWJlcnMgdG8gcHJvY2Vzc29yLmgKCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZDhjM2EyMDk2ZWFmZjhkN2RlODlkNDVlOWFmNGQ0YjBkNDg2OGZlCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgRmViIDIzIDE3OjEyOjI1IDIwMDcgLTA2MDAKCiAgICBTdXBwb3J0IDFHIHNpemUgb24gODU0OAoKICAgIGU1MDB2MiBhbmQgbmV3ZXIgY29yZXMgc3VwcG9ydCAxRyBwYWdlIHNpemVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDVjZWY2MTJjYzYwMWQyZDFjODkwZmJiZDdjZGM5NjA5YTE4OWE0NgpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiAyMyAxNzoxMToxNiAyMDA3IC0wNjAwCgogICAgQ2hhbmdlZCBCT09LRV9QQUdFU1pfbkdCIHRvIEJPT0tFX1BBR0VTWl9uRwoKICAgIFRoZSBvdGhlciBwYWdlc3ogY29uc3RhbnRzIHVzZSBvbmUgbGV0dGVyIHRvIHNwZWNpZnkgb3JkZXIgb2YKICAgIG1hZ25pdHVkZS4JQWxzbyBjaGFuZ2UgdGhlIG9uZSByZWZlcmVuY2UgdG8gaXQgaW4gbXBjODU0OGNkcy9pbml0LlMKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMWY5YTMxOGNlYTE0MjcyZWRkMTBkNjM3MzllMmQzMjZjOTBmNDMwZQpBdXRob3I6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEZlYiAyMyAxNjoyODo0NiAyMDA3IC0wNjAwCgogICAgT25seSBzZXQgZGRyaW9vdmNyIGZvciA4NTQ4IHJldjEuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5MzQzZGJmODViYzAzMDMzZjIxMDJkOGU4NTQzNTY3YzJjMWFkMmQyCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglTYXQgRmViIDI0IDAxOjE2OjQ1IDIwMDcgLTA2MDAKCiAgICBUd2VhayBERFIgRUNDIGVycm9yIGNvdW50ZXIKCiAgICBFbmFibGUgc2luZ2xlLWJpdCBlcnJvciBjb3VudGVyIHdoZW4gbWVtb3J5IHdhcyBjbGVhcmVkIGJ5IGRkciBjb250cm9sbGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEVkIFN3YXJ0aG91dCA8RWQuU3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODVlN2M3YTQ1ZTNkZDljN2NlM2U3MjIzNTJiYTYwZjhkZjFhN2E0YgpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBGZWIgMTIgMTM6MzQ6NTUgMjAwNyAtMDYwMAoKICAgIDg1eHg6IHdyaXRlIE1BQyBhZGRyZXNzIHRvIG1hYy1hZGRyZXNzIGFuZCBsb2NhbC1tYWMtYWRkcmVzcwoKICAgIFNvbWUgZGV2aWNlIHRyZWVzIGhhdmUgYSBtYWMtYWRkcmVzcyBwcm9wZXJ0eSwgc29tZSBoYXZlIGxvY2FsLW1hYy1hZGRyZXNzLAogICAgYW5kIHNvbWUgaGF2ZSBib3RoLiAgVG8gc3VwcG9ydCBhbGwgb2YgdGhlc2UgZGV2aWNlIHRyZWVzLCBmdHBfY3B1X3NldHVwKCkKICAgIHNob3VsZCB3cml0ZSB0aGUgTUFDIGFkZHJlc3MgdG8gbWFjLWFkZHJlc3MgYW5kIGxvY2FsLW1hYy1hZGRyZXNzLCBpZiB0aGV5CiAgICBleGlzdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDAzYjgxYjQ4ZWVjMGFkMjQ5ZWM5N2E0YWUxNmMzNmZhMmUwMTRmZjQKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMjMgMDE6NDQ6NDQgMjAwNyAtMDUwMAoKICAgIFNvbWUgODV4eCBjcHUgY2xlYW51cHMKCiAgICAqIENsZWFuZWQgdXAgdGhlIFRTUltXSVNdIGNsZWFyaW5nCiAgICAqIENsZWFuZWQgdXAgRE1BIGluaXRpYWxpemF0aW9uCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CiAgICBBY2tlZC1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE1MWQ1ZDk5MmVhYjhjNDk3YjI0YzgxNmM3M2RjMWFkOGJmZmI0ZWIKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMjMgMDE6MzI6MjIgMjAwNyAtMDUwMAoKICAgIEFkZCBjcHUgc3VwcG9ydCBmb3IgdGhlIDg1NDQKCiAgICBSZWNvZ25pemUgbmV3IFNWUiB2YWx1ZXMsIGFuZCBhZGQgYSBmZXcgcmVnaXN0ZXIgZGVmaW5pdGlvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjVkODNkN2Y0YWM2NTcyNzE4MmQ4ZGRhZjdiYTQyZmE3NGNmNjVhZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBcHIgMTEgMTY6NTE6MDIgMjAwNyAtMDUwMAoKICAgIEFkZCBNUEM4NTQ0RFMgYmFzaWMgcG9ydCBib2FyZCBmaWxlcy4KCiAgICBBZGQgYm9hcmQgcG9ydCB1bmRlciBuZXcgYm9hcmQvZnJlZXNjYWxlIGRpcmVjdG9yeQogICAgc3RydWN0dXJlIGFuZCByZXVzZSBleGlzdGluZyBQSVhJUyBGUEdBIHN1cHBvcnQgdGhlcmUuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGNkZTRiMDBmYzczOTNiODlmMzc5ZDgzYTlkNDM2ZGNiMTMzNGJmYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBcHIgMTEgMTY6NTA6NTcgMjAwNyAtMDUwMAoKICAgIEFkZCBNUEM4NTQ0RFMgbWFpbiBjb25maWd1cmF0aW9uIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzYyZGQ4MzA3N2FjMDRjMDI5NmJjYTNlODI0ZWMyZmIzZDQ0ZDlkNgpBdXRob3I6IFNlcmdlaSBTaHR5bHlvdiA8c3NodHlseW92QHJ1Lm12aXN0YS5jb20+CkRhdGU6CVdlZCBEZWMgMjcgMjI6MDc6MTUgMjAwNiArMDMwMAoKICAgIEZpeCBQQ0kgSS9PIHNwYWNlIG1hcHBpbmcgb24gRnJlZXNjYWxlIE1QQzg1eDBBRFMKCiAgICBUaGUgUENJIEkvTyBzcGFjZSBtYXBwaW5nIGZvciBGcmVlc2NhbGUgTVBDODU0MEFEUyBib2FyZCB3YXMgYnJva2VuIGJ5IGNvbW1pdAogICAgNTJjN2E2OGI4ZDU4N2ViY2Y1YTZiMDUxYjU4YjNkM2ZmYTM3N2RkYyB3aGljaCBmYWlsZWQgdG8gdXBkYXRlIHRoZSAjZGVmaW5lJ3MKICAgIGRlc2NyaWJpbmcgdGhlIGxvY2FsIGFkZHJlc3Mgd2luZG93IHVzZWQgZm9yIHRoZSBQQ0kgSS9PIHNwYWNlIGFjY2Vzc2VzIC0tIGZpeAogICAgdGhpcyBhbmQgY2Fycnkgb3ZlciB0aGUgbmVjZXNzYXJ5IGNoYW5nZXMgaW50byB0aGUgTVBDODU2MEFEUyBjb2RlIHNpbmNlIHRoZQogICAgUENJIEkvTyBzcGFjZSBtYXBwaW5nIHdhcyBhbHNvIGJyb2tlbiBmb3IgdGhpcyBib2FyZCAoYnkgdGhlIGVhcmxpZXIgY29tbWl0CiAgICAwODc0NTQ2MDllNDcyOTU0NDNhZjc5M2EyODJjZGRjZDkxYTVmNDljKS4JQWRkIHRoZSBjb21tZW50cyBjbGFyaWZ5aW5nIGhvdwogICAgdGhlIFBDSSBJL08gc3BhY2UgbXVzdCBiZSBtYXBwZWQgdG8gYWxsIHRoZSBNUEM4NXh4IGJvYXJkIGNvbmZpZy4gaGVhZGVycy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTZXJnZWkgU2h0eWx5b3YgPHNzaHR5bHlvdkBydS5tdmlzdGEuY29tPgoKICAgICBib2FyZC9tcGM4NTQwYWRzL2luaXQuUwkgIHwgICAgNCArKy0tCiAgICAgYm9hcmQvbXBjODU2MGFkcy9pbml0LlMJICB8ICAgIDQgKystLQogICAgIGluY2x1ZGUvY29uZmlncy9NUEM4NTQwQURTLmggfCAgICA1ICsrLS0tCiAgICAgaW5jbHVkZS9jb25maWdzL01QQzg1NDFDRFMuaCB8ICAgIDIgKy0KICAgICBpbmNsdWRlL2NvbmZpZ3MvTVBDODU0OENEUy5oIHwgICAgMiArLQogICAgIGluY2x1ZGUvY29uZmlncy9NUEM4NTYwQURTLmggfCAgICA4ICsrKystLS0tCiAgICAgNiBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmNvbW1pdCA5NjYyOWNiYWJkYjcyN2Q0YTVlNjI1NDJkZWVmYzAxZDQ5OGRiNmRjCkF1dGhvcjogWmFuZyBSb3ktcjYxOTExIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIERlYyA1IDE2OjQyOjMwIDIwMDYgKzA4MDAKCiAgICB1LWJvb3Q6IEZpeCBlNTAwIHYyIGNvcmUgcmVzZXQgYnVnCgogICAgVGhlIGZvbGxvd2luZyBwYXRjaCBmaXhlcyB0aGUgZTUwMCB2MiBjb3JlIHJlc2V0IGJ1Zy4KICAgIEZvciBlNTAwIHYyIGNvcmUsIGEgbmV3IHJlc2V0IGNvbnRyb2wgcmVnaXN0ZXIgaXMgYWRkZWQgdG8gcmVzZXQgdGhlCiAgICBwcm9jZXNzb3IuCgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDYzMjQ3YTVhY2Q1ODAzMmU2Y2YzM2Y1MjViYzM5MjNiNDY3YmFjODgKQXV0aG9yOiBaYW5nIFJveS1yNjE5MTEgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRGVjIDIwIDExOjAxOjAwIDIwMDYgKzA4MDAKCiAgICB1LWJvb3Q6IHYyOiBSZW1vdmUgdGhlIGZpeGVkIFRMQiBhbmQgTEFXIGVudHJ5bnVibWVyCgogICAgUmVtb3ZlIHRoZSBmaXhlZCBUTEIgYW5kIExBVyBlbnRyeSBudWJtZXIuIFVzZSBhY3R1YWxseSBUTEIgYW5kIExBVwogICAgZW50cnkgbnVtYmVyIHRvIGNvbnRyb2wgdGhlIGxvb3AuICBUaGlzIGNhbiByZWR1Y2UgdGhlIHBvdGVudGlhbCByaXNrCiAgICBmb3IgdGhlIDg1eHggcHJvY2Vzc29yIGluY3JlYXNpbmcgaXRzIFRMQiBhZG4gTEFXIGVudHJ5IG51bWJlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTd2FydGhvdXQgRWR3YXJkIDxzd2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwYjE5MzRiYTEyZmQ0MDhmY2MzYjhiZDlmNGIwNDg2NGM0MmE0MmJmCkF1dGhvcjogWmFuZyBSb3ktcjYxOTExIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIERlYyAxOCAxNzowMTowNCAyMDA2ICswODAwCgogICAgdS1ib290OiBGaXggdGhlIDg1eHhjZHMgdHNlYyBidWcKCiAgICBGaXggdGhlIDg1eHhjZHMgdHNlYyBidWcuCiAgICBXaGVuIGVuYWJsZSBQQ0ksIHRzZWMubyBzaG91bGQgYmUgYWRkZWQgdG8gdS1ib290LmxkcyB0byBtYWtlIHRzZWMgd29yay4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzMzN2IyMzdmZmM0YWFmMWI5NDY3MDI0ZmU0NzJhODgwZDg1MjU5OApBdXRob3I6IFphbmcgUm95LXI2MTkxMSA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBEZWMgMTUgMTQ6NDM6MzEgMjAwNiArMDgwMAoKICAgIHUtYm9vdDogRml4IENQVTIgZXJyYXRhIG9uIE1QQzg1NDhDRFMgYm9hcmQKCiAgICBUaGlzIHBhdGNoIGFwcGx5IHdvcmthcm91bmQgb2YgQ1BVMiBlcnJhdGEgb24gTVBDODU0OENEUyBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OkVib255IFpodSA8ZWJvbnkuemh1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzliMThjNGYzZTBiNmQwZGMwMGY0ZTY4YmFkMmRhMzc2NmM4NWYwOQpBdXRob3I6IGVib255LnpodUBmcmVlc2NhbGUuY29tIDxlYm9ueS56aHVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIERlYyAxOCAxNjoyNToxNSAyMDA2ICswODAwCgogICAgdS1ib290OiBEaXNhYmxlcyBNUEM4NTQ4Q0RTIDJUX1RJTUlORyBmb3IgRERSIGJ5IGRlZmF1bHQKCiAgICBUaGlzIHBhdGNoIGRpc2FibGVzIE1QQzg1NDhDRFMgMlRfVElNSU5HIGZvciBERFIgYnkgZGVmYXVsdC4KCiAgICBTaWduZWQtb2ZmLWJ5OkVib255IFpodSA8ZWJvbnkuemh1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDFmYjdlMGYxZWM5YjkxYmRhZTI1NjViYWI1ZjJlM2VlMTUwMzljNwpBdXRob3I6IFphbmcgUm95LXI2MTkxMSA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBEZWMgMTQgMTQ6MTQ6NTUgMjAwNiArMDgwMAoKICAgIHUtYm9vdDogRW5hYmxlIFBDSSBmdW5jdGlvbiBhbmQgYWRkIFBFWCAmIHJhcGlkaW8gbWVtb3J5IG1hcCBvbiBNUEM4NTQ4Q0RTIGJvYXJkCgogICAgRW5hYmxlIFBDSSBmdW5jdGlvbiBhbmQgYWRkIFBFWCAmIHJhcGlkaW8gbWVtb3J5IG1hcCBvbiBNUEM4NTQ4Q0RTCiAgICBib2FyZC4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5NmI4YTA1NDMyZjM0NmYzNjQ5MzUzNWM4NTMyMGI3MGVjOWM3YzFiCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMTYgMTQ6NTQ6MTUgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IEFkZCBNUEM4MzEzRVJEQiBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ5ZWEzYjZlYWZlNjA2Mjg1YWU0ZDVjMzc4MDI2MTUzZGRlNTMyMDAKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAxNiAxNDozNDoyMSAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogQWRkIGdlbmVyaWMgUENJIHNldHVwIGNvZGUuCgogICAgQm9hcmQgY29kZSBjYW4gbm93IHJlcXVlc3QgdGhlIGdlbmVyaWMgc2V0dXAgY29kZSByYXRoZXIgdGhhbiBoYXZpbmcgdG8KICAgIGNvcHktYW5kLXBhc3RlIGl0IGZvciB0aGVtc2VsdmVzLiAgQm9hcmRzIHNob3VsZCBiZSBjb252ZXJ0ZWQgdG8gdXNlIHRoaXMKICAgIG9uY2UgdGhleSdyZSB0ZXN0ZWQgd2l0aCBpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3Yzk4ZTUxOTNlOTNkZjZiOWI2NTE4NTFkNTRiNjM4YTYxZWJiMGVhCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMTYgMTQ6MzQ6MTkgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IEFkZCA4MzF4IHN1cHBvcnQgdG8gc3BlZWQuYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAwZjI1MzI4M2EzMmQ5MWUwNjg0NGQ3Zjg3ZjliMzNmNGY0ZmJjZThmCkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMTYgMTQ6MzQ6MTggMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IEFkZCA4MzF4IHN1cHBvcnQgdG8gZ2xvYmFsX2RhdGEuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk1ZTdlZjg5N2U1NDU5MWU2MTVmYzFiNDU4Yjc0YzI4NmZlMWZiMDYKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAxNiAxNDozNDoxNiAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogQ2hhbmdlIFBWUl84M3h4IHRvIFBWUl9FMzAwQzEtMywgYW5kIHVwZGF0ZSBjaGVja2NwdSgpLgoKICAgIFJhdGhlciB0aGFuIG1pc2xlYWRpbmdseSBkZWZpbmUgUFZSXzgzeHggYXMgdGhlIHNwZWNpZmljIHR5cGUgb2YgODN4eAogICAgYmVpbmcgYnVpbHQgZm9yLCB0aGUgUFZSIG9mIGVhY2ggY29yZSByZXZpc2lvbiBpcyBkZWZpbmVkLiBjaGVja2NwdSgpIG5vdwogICAgcHJpbnRzIHRoZSBjb3JlIHRoYXQgaXQgZGV0ZWN0cywgcmF0aGVyIHRoYW4gYWJvcnRpbmcgaWYgaXQgZG9lc24ndCBmaW5kCiAgICB3aGF0IGl0IHRoaW5rcyBpdCB3YW50cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBhMzViMGM0OTUwZDg0Y2Y5ZTNhOWUzMmI5MTYxMzU5NTZkMWFjNjM2CkF1dGhvcjogU2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBBcHIgMTYgMTQ6MzQ6MTUgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IFJlY29nbml6ZSBTUFIgdmFsdWVzIGZvciBNUEM4MzExIGFuZCBNUEM4MzEzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ4N2M1N2IyMDFiNDU3MmQxNmYxYjY0Mjk5OGZhYTAwYzk5MTJiMTYKQXV0aG9yOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEFwciAxNiAxNDozMTo1NSAyMDA3IC0wNTAwCgogICAgbXBjODN4eDogQWRkIHJlZ2lzdGVyIGRlZmluaXRpb25zIGZvciBNUEM4MzF4LgoKICAgIFNpZ25lZC1vZmYtYnk6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdmYzRjNzFhMTQzYmU4NjY2ZDcwODAzZmIyNWFlNjAzNzljOTU2MjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBBcHIgMjMgMTU6Mzk6NTkgMjAwNyArMDIwMAoKICAgIEZpeCBmaWxlIG1vZGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzgyNTc5ODhhYmZlNzRkNDU5Y2EyYWQ3NDhiMTA5Y2EwNGU0ZWZlMQpBdXRob3I6IFNlcmdlaSBTaHR5bHlvdiA8c3NodHlseW92QHJ1Lm12aXN0YS5jb20+CkRhdGU6CU1vbiBBcHIgMjMgMTU6MzA6MzkgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gQXZvaWQgYXNzaWduaW5nIFBDSSByZXNvdXJjZXMgZnJvbSB6ZXJvIGFkZHJlc3MKCiAgICBJZiBhIFBDSSBJREUgY2FyZCBoYXBwZW5zIHRvIGdldCBhIHplcm8gYWRkcmVzcyBhc3NpZ25lZCB0byBpdCwgdGhlIExpbnV4IElERQogICAgY29yZSBjb21wbGFpbnMgYW5kIElERSBkcml2ZXJzIGZhaWxzIHRvIHdvcmsuICBBbHNvLCBhc3NpZ25pbmcgemVybyB0byBhIEJBUgogICAgd2FzIGlsbGVnYWwgYWNjb3JkaW5nIHRvIFBDSSAyLjEgKHRoZSBsYXRlciByZXZpc2lvbnMgc2VlbSB0byBoYXZlIGV4Y2x1ZGVkIHRoZQogICAgc2VudGVuY2UgYWJvdXQgIjAiIGJlaW5nIGNvbnNpZGVyZWQgYW4gaW52YWxpZCBhZGRyZXNzKSAtLSBzbywgdXNlIGEgcmVhc29uYWJsZQogICAgc3RhcnRpbmcgdmFsdWUgb2YgMHgxMDAwICh0aGF0J3Mgd2hhdCB0aGUgbW9zdCBMaW51eCBhcmNocyBhcmUgdXNpbmcpLgoKICAgIEFsdGVybmF0aXZlbHksIG9uZSBtaWdodCBoYXZlIGZpeGVkIHRoZSBjYWxscyB0byBwY2lfc2V0X3JlZ2lvbigpIGluZGl2aWR1YWxseQogICAgKHNvbWUgY29kZSBldmVuIHNlZW1zIHRvIGhhdmUgdGFrZW4gY2FyZSBvZiB0aGlzIGlzc3VlKSBidXQgdGhhdCB3b3VsZCBoYXZlCiAgICBiZWVuIGEgbG90IG1vcmUgd29yay4gOi0pCgogICAgU2lnbmVkLW9mZi1ieTogU2VyZ2VpIFNodHlseW92IDxzc2h0eWx5b3ZAcnUubXZpc3RhLmNvbT4KICAgIEFja2VkLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYWZiOTAzYTJlYjk0MzZiYWE5MjcwY2NjMGMyNzA4MmQ4NjQ5N2Q4OQpBdXRob3I6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgpEYXRlOglNb24gQXByIDIzIDE0OjAwOjExIDIwMDcgKzAyMDAKCiAgICBbcGF0Y2hdIHNldGVudiguLi4pIGNhbiBkZWxldGUgZW52aXJvbm1lbnRhbHZhcmlhYmxlcwoKICAgIHVwZGF0ZSBzZXRlbnYoKSBmdW5jdGlvbiBzbyB0aGF0IGVudGVyaW5nIGEgTlVMTCB2YWx1ZSBmb3IgdGhlCiAgICB2YXJpYWJsZSdzIHZhbHVlIHdpbGwgZGVsZXRlIHRoZSBlbnZpcm9ubWVudGFsIHZhcmlhYmxlCgogICAgU2lnbmVkLW9mZi1ieTogSmVmZnJleSBNYW5uIDxtYW5uakBlbWJlZGRlZHBsYW5ldC5jb20+CiAgICBBY2tlZC1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM2ZjEwNGU1Y2FhNzQ3ZDU2OGVmZjI2YjM2OTU2NWFmNTdjMmZmYTYKQXV0aG9yOiBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+CkRhdGU6CU1vbiBBcHIgMjMgMTM6NTQ6MjQgMjAwNyArMDIwMAoKICAgIFtwYXRjaF0gdXNlIHVuc2lnbmVkIGNoYXIgaW4gc21jOTExMTEgZHJpdmVyIGZvciBtYWMKCiAgICB0aGUgdl9tYWMgdmFyaWFibGUgaW4gdGhlIHNtYzkxMTExIGRyaXZlciBpcyBkZWNsYXJlZCBhcyBhIHNpZ25lZCBjaGFyIC4uLgogICAgdGhpcyBjYXVzZXMgcHJvYmxlbXMgd2hlbiBvbmUgb2YgdGhlIGJ5dGVzIGluIHRoZSBNQUMgaXMgInNpZ25lZCIgbGlrZSAweEUwCiAgICBiZWNhdXNlIHdoZW4gaXQgZ2V0cyBwcmludGVkIG91dCwgeW91IGdldCBhIGRpc3BsYXkgbGlrZToKICAgIDB4RkZGRkZGRTAgYW5kIHRoYXQncyBubyBnb29kCgogICAgU2lnbmVkLW9mZi1ieTogTWlrZSBGcnlzaW5nZXIgPHZhcGllckBnZW50b28ub3JnPgoKY29tbWl0IGQ5OGMwODg1YWQ2MTdmY2NmMjFlN2MyNmVmOGNiNzI4ZmJmYjI0NTkKQXV0aG9yOiBSb2RvbGZvIEdpb21ldHRpIDxnaW9tZXR0aUBlbm5lZW5uZS5jb20+CkRhdGU6CU1vbiBBcHIgMjMgMTM6MTA6NTIgMjAwNyArMDIwMAoKICAgIFVTQjogKEFub3RoZXIpIGRlbGF5IGZvciBjcmFwcHkgVVNCIGtleXMuCgogICAgU29tZSBVU0Iga2V5cyBhcmUgc2xvdyBpbiBnaXZpbmcgYmFjayBhbiBhbnN3ZXIgd2hlbiB0aGUgUm9vdCBIVUIKICAgIGVuYWJsZXMgcG93ZXIgbGluZXMuCgogICAgU2lnbmVkLW9mZi1ieTogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAbGludXguaXQ+Cgpjb21taXQgMzIzYmZhOGY0MzZkYzNiYzU3MTg3YzliMTQ4OGJjMzE0NmZmMTUyMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIEFwciAyMyAxMjowMDoyMiAyMDA3ICswMjAwCgogICAgUmVtb3ZlIEJPQVJETElCUyB1c2FnZSBjb21wbGV0ZWx5CgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDMyNTU2NDQzODQwZjEyNzE3MGU0YmFhOGJkZDViNTY3MDM5ZjZjMzYKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CVNhdCBBcHIgMjEgMjE6MDc6MjIgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gU3lzdGVtQUNFIHN1cHBvcnQgZm9yIE1pY3JvYmxhemUKCmNvbW1pdCAwNjQzNjMxYWExMDM2Y2Q3NDZiZjVkMTVmNWEzNGJjN2JjMDFlYTRmCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTYXQgQXByIDIxIDIxOjAyOjQwIDIwMDcgKzAyMDAKCiAgICAxNmJpdCByZWFkL3dyaXRlIGxpdHRsZSBlbmRpYW4KCmNvbW1pdCA5ZDFkNmEzNGQyNmM1OTMzYmMwOTdjZTczYzkzNDhmOTU1NzNjZGQ0CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTYXQgQXByIDIxIDIwOjUzOjMxIDIwMDcgKzAyMDAKCiAgICBDaGFuZ2UgTUw0MDEgcGFyYW1ldGVycyAtIFhpbGlueCBCU1AKCmNvbW1pdCAyZTM0M2I5YTU3ZjMyZTFiZDA4YzM1Yzk5NzY5MTAzMzNmYjRlMTNkCkF1dGhvcjogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAyOCAwNTozNzoyOSAyMDA3IC0wNjAwCgogICAgbXBjODY0MWhwY246IEZpeCBMQVcgYW5kIFRMQiBzZXR1cCB0byB1c2UgdGhlIElPX1BIWVMgI2RlZmluZXMuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3OWNiNDczOTFlZWJlZjg1YWNhZGIzZjY5NjFlZjZjNTVjYWNlNmFjCkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEphbiAxOSAxMDo0MjozNyAyMDA3ICswODAwCgogICAgRW5hYmxlIExBV3MgZm9yIE1QQzg2NDEgUENJLUV4Mi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiZDc4NTFjZTFlMWYxNDA2NjViNTIwMDI2YWJmMTA0Mjk2OGIxMTAyCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEFwciAyMCAxNDoxMjoyNiAyMDA3IC0wNTAwCgogICAgbXBjODZ4eDsgV3JpdGUgTUFDIGFkZHJlc3MgdG8gbWFjLWFkZHJlc3MgYW5kIGxvY2FsLW1hYy1hZGRyZXNzCgogICAgU29tZSBkZXZpY2UgdHJlZXMgaGF2ZSBhIG1hYy1hZGRyZXNzIHByb3BlcnR5LCBzb21lIGhhdmUgbG9jYWwtbWFjLWFkZHJlc3MsCiAgICBhbmQgc29tZSBoYXZlIGJvdGguICBUbyBzdXBwb3J0IGFsbCBvZiB0aGVzZSBkZXZpY2UgdHJlZXMsIGZ0cF9jcHVfc2V0dXAoKQogICAgc2hvdWxkIHdyaXRlIHRoZSBNQUMgYWRkcmVzcyB0byBtYWMtYWRkcmVzcyBhbmQgbG9jYWwtbWFjLWFkZHJlc3MsIGlmIHRoZXkKICAgIGV4aXN0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDdkYmRmMjhiOGJkODU1YTg1MzBkYzMyOTJlNDk4MjU3NWExOTcwNjAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXByIDIwIDE0OjExOjM4IDIwMDcgLTA1MDAKCiAgICBtcGM4Nnh4OiBwcm90ZWN0IG1lbWNweSB0byBiYWQgYWRkcmVzcyBpZiBhIG1hYy1hZGRyZXNzIGlzIG1pc3NpbmcgZnJvbSBkdAoKICAgIFNpZ25lZC1vZmYtYnk6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDE0ZGE1Zjc2NzViYmI0MjdjNDY5ZTNmNDUwMDZlMDI3YjZlMjFkYjkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglGcmkgQXByIDIwIDE3OjQzOjI4IDIwMDcgKzAyMDAKCiAgICBDbGVhbnVwIGNvbXBpbGVyIHdhcm5pbmdzLCB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA2OTIzNTY1ZGIxMmFmMzRmZDVlMDJkMzU0ZWU2NWE4Yzc4YWM0NjBmCkF1dGhvcjogRGV0bGV2IFp1bmRlbCA8ZHp1QGRlbnguZGU+CkRhdGU6CUZyaSBBcHIgMjAgMTI6MDE6NDcgMjAwNyArMDIwMAoKICAgIEZpeCBicmVha2FnZSBvZiBOQzY1MCBib2FyZCB3aXRoIHJlc3BlY3QgdG8gbmFuZCBzdXBwb3J0LgoKICAgIFNpZ25lZC1vZmYtYnk6IERldGxldiBadW5kZWwgPGR6dUBkZW54LmRlPgoKY29tbWl0IDM5ZjIzY2Q5MDk0NzYzOWFjMjc4YTE4ZmYyNzdlYzc4NmI1YWMxNjcKQXV0aG9yOiBEb21lbiBQdW5jZXIgPGRvbWVuLnB1bmNlckB0ZWxhcmdvLmNvbT4KRGF0ZToJRnJpIEFwciAyMCAxMToxMzoxNiAyMDA3ICswMjAwCgogICAgW1JGQyBQQVRDSF0gaWNlY3ViZS9saXRlNTIwMGI6IGZpeCBPRl9UQkNMSyAodGltZWJhc2UtZnJlcXVlbmN5KSBjYWxjdWxhdGlvbgoKICAgIEcyIGNvcmUgcmVmZXJlbmNlIG1hbnVhbCBzYXlzIGRlY3JlbWVudGVyIGFuZCB0aW1lIGJhc2UKICAgIGFyZSBkZWNyZWFzaW5nL2luY3JlYXNpbmcgb25jZSBldmVyeSA0IGJ1cyBjbG9jayBjeWNsZXMuCiAgICBMZXRzIGZpeCBpdCwgc28gdGltZSBpbiBMaW51eCB3b24ndCBydW4gdHdpY2UgYXMgZmFzdAoKICAgIFNpZ25lZC1vZmYtYnk6IERvbWVuIFB1bmNlciA8ZG9tZW4ucHVuY2VyQHRlbGFyZ28uY29tPgogICAgQWNrZWQtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA3NjUxZjhiZGJiYTAzYmIwYjRmMjQxZTJkMmM0Y2I2NWIyMzBiZDU2CkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJVGh1IEFwciAxOSAyMzoxNDozOSAyMDA3IC0wNDAwCgogICAgRml4IHNlcmlvdXMgcG9pbnRlciBidWcgd2l0aCBib290bSBhbmQgcmVzZXJ2ZSBtYXAuCgogICAgV2hhdCB3YXMgc3VwcG9zZSB0byBiZSBhIHN0YWNrIHZhcmlhYmxlIHdhcyBkZWNsYXJlZCBhcyBhIHBvaW50ZXIsCiAgICAgIG92ZXJ3cml0aW5nIHJhbmRvbSBtZW1vcnkuCiAgICBBbHNvIG1vdmVkIHRoZSBsaWJmZHQuYSByZXF1aXJlbWVudCBpbnRvIHRoZSBtYWluIE1ha2VmaWxlLiAgVGhhdCBpcwogICAgICBUaGUgVS1Cb290IFdheS4KCmNvbW1pdCBkMjE2ODYyNjM1NzRlOTVjYjNlOWU5YjA0OTZmOTY4YjFiODk3ZmRiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgQXByIDE5IDA5OjUzOjUyIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBjaGlwIHNlbGVjdCB0aW1pbmcgZm9yIFN5c0FDRSBhY2Nlc3Mgb24gQU1DQyBLYXRtYWkKCiAgICBQcmV2aW91cyB2ZXJzaW9ucyB1c2VkIGZ1bGwgd2FpdCBzdGF0ZXMgZm9yIHRoZSBjaGlwIHNlbGVjdCAjMSB3aGljaAogICAgaXMgY29ubmVjdGVkIHRvIHRoZSBYaWxpbml4IFN5c3RlbUFDRSBjb250cm9sbGVyIG9uIHRoZSBBTUNDIEthdG1haQogICAgZXZhbHVhdGlvbiBib2FyZC4gVGhpcyBsZWFkcyB0byByZWFsbHkgc2xvdyBhY2Nlc3MgYW5kIHRoZXJlZm9yZSBsb3cKICAgIHBlcmZvcm1hbmNlLiBUaGlzIHBhdGNoIG5vdyBzZXRzIHVwIHRoZSBjaGlwIHNlbGVjdCBhIGxvdCBmYXN0ZXIKICAgIHJlc3VsdGluZyBpbiBtdWNoIGJldHRlciByZWFkL3dyaXRlIHBlcmZvcm1hbmNlIG9mIHRoZSBMaW51eCBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM3ODM3ODI4ZDg5MDg0ODc5YmVlMmYyYjhjN2M2OGQ0Njk1OTQwZGYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXByIDE4IDE3OjQ5OjI5IDIwMDcgKzAyMDAKCiAgICBDbGVuYXVwLCB1cGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCBmZDA5NGM2Mzc5ZTJlZjhhNGQwY2ViNTY0MGIyNGNiMGM4ZDA0NDQ5CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAxOCAxNzoyMDo1OCAyMDA3ICswMjAwCgogICAgVXBkYXRlIENIQU5HRUxPRwoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgMmEyNmVjNDczMmVmZDdhMzA4ZDBiYmM5NzcxNGMxZDc1ZWYxMTczYgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMTggMTc6MDc6MjYgMjAwNyArMDIwMAoKICAgIENsZWFudXAsIHVwZGF0ZSBDSEFOR0VMT0cKCiAgICBTaWdlbmQtb2ZmLWJ5OiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgoKY29tbWl0IDVmNmM3MzJhZmZlYTk2NDc3NjJkMjdhNDYxN2EyYWU2NGM1MmRjZWIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXByIDE4IDE2OjE3OjQ2IDIwMDcgKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgpjb21taXQgYWQ0ZWI1NTU2NzFkOTdmOTZkYzU2ZWFiNTUxMDNiMWY4Njg3NGIwMQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMTggMTQ6MzA6MzkgMjAwNyArMDIwMAoKICAgIE1DQzIwMCBib2FyZDogcmVtb3ZlIHdhcm5pbmcgd2hpY2ggaXMgb2Jzb2xldGUgYWZ0ZXIgUFNvQyBmaXJtd2FyZSBjaGFuZ2VzCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAzNzQ3YTNmMDEwYjJiMTQ0MmRlYzNlODcxYzY5Nzg4YjYwMTdhYWFlCkF1dGhvcjogRG9tZW4gUHVuY2VyIDxkb21lbi5wdW5jZXJAdGVsYXJnby5jb20+CkRhdGU6CVdlZCBBcHIgMTggMTI6MTE6MDUgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gaWNlY3ViZS9saXRlNTIwMGI6IGRvY3VtZW50IHdha2V1cCBmcm9tIGxvdy1wb3dlciBzdXBwb3J0CgogICAgU2lnbmVkLW9mZi1ieTogRG9tZW4gUHVuY2VyIDxkb21lbi5wdW5jZXJAdGVsYXJnby5jb20+Cgpjb21taXQgZTY3MzIyNmZmOWQ2YWE5MWI0N2NlYWM3NGI4YzEzNzcwYjA2YmIzNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAxOCAxMjowNzo0NyAyMDA3ICswMjAwCgogICAgcHBjNHh4OiBVcGRhdGUgQWNhZGlhIHRvIG5vdCBzZXR1cCBQTEwgd2hlbiBib290aW5nIHZpYSBib290c3RyYXAgRUVQUk9NCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDkwZTZmNDFjZjA5ZmM5OGY2Y2NiNTEwZTE4M2Q1M2FiODU0NmNmMmYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgMTggMTI6MDU6NTkgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQWRkIG91dHB1dCBmb3IgYm9vdHJvbSBsb2NhdGlvbiB0byA0MDVFWiBwb3J0cwoKICAgIE5vdyA0MDVFWiBwb3J0cyBhbHNvIHNob3cgdXBvbiBib290dXAgZnJvbSB3aGljaCBib290IGRldmljZQogICAgdGhleSBhcmUgY29uZmlndXJlZCB0byBib290OgoKICAgIFUtQm9vdCAxLjIuMC1nZDM4MzJlOGYtZGlydHkgKEFwciAxOCAyMDA3IC0gMDc6NDc6MDUpCgogICAgQ1BVOiAgIEFNQ0MgUG93ZXJQQyA0MDVFWiBSZXYuIEEgYXQgMTk5Ljk5OSBNSHogKFBMQj0xMzMsIE9QQj02NiwgRUJDPTY2IE1IeikKCSAgIEJvb3RzdHJhcCBPcHRpb24gRSAtIEJvb3QgUk9NIExvY2F0aW9uIEVCQyAoMzIgYml0cykKCSAgIDE2IGtCIEktQ2FjaGUgMTYga0IgRC1DYWNoZQogICAgQm9hcmQ6IEFjYWRpYSAtIEFNQ0MgUFBDNDA1RVogRXZhbHVhdGlvbiBCb2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5YzAwZGZiMGJmODljOGMyM2U4YWY1YjViZGY0OWNmNjZkNzY5Zjg1CkF1dGhvcjogUGV0ZXIgUGVhcnNlIDxwZXRlci5wZWFyc2VAYXJtLmNvbT4KRGF0ZToJVHVlIEFwciAxNyAxMzozMDozMyAyMDA3ICswMTAwCgogICAgTW92ZSBwcGVhcnNlIHRvIEFSTSBib2FyZCBsaXN0CiAgICBBZGQgS29uc3RhbnRpbiBLbGV0c2Noa2UgZm9yIHNjYjkzMjguCiAgICBTaWduZWQtb2ZmLWJ5OiBQZXRlciBQZWFyc2UgPHBldGVyLnBlYXJzZUBhcm0uY29tPgoKY29tbWl0IGQzODMyZThmZTFiMjE0ZWM2MjQyNGVhYzM2Y2ZkYTlmYzU2ZDIxYjMKQXV0aG9yOiBEb21lbiBQdW5jZXIgPGRvbWVuLnB1bmNlckB0ZWxhcmdvLmNvbT4KRGF0ZToJTW9uIEFwciAxNiAxNDowMDoxMyAyMDA3ICswMjAwCgogICAgW1BBVENIXSBpY2VjdWJlL2xpdGU1MjAwYjogd2FrZXVwIGZyb20gbG93LXBvd2VyIHN1cHBvcnQKCiAgICBVLUJvb3QgcGFydCBvZiBMaXRlNTIwMGIgbG93IHBvd2VyIG1vZGUgc3VwcG9ydC4KICAgIFB1dHMgU0RSQU0gb3V0IG9mIHNlbGYtcmVmcmVzaCBhbmQgdHJhbnNmZXJzIGNvbnRyb2wgdG8KICAgIGFkZHJlc3Mgc2F2ZWQgYXQgcGh5c2ljYWwgMHgwLgoKICAgIFNpZ25lZC1vZmYtYnk6IERvbWVuIFB1bmNlciA8ZG9tZW4ucHVuY2VyQHRlbGFyZ28uY29tPgogICAgQWNrZWQtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBmMzVhNTNmYzdiMGM3OWZjZmU3YmRjMDExNjNjNGIzNGFhYmExNDYwCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU3VuIEFwciAxNSAxMzo1NDoyNiAyMDA3IC0wNDAwCgogICAgRml4IHRoZSBmdF9jcHVfc2V0dXAoKSBwcm9wZXJ0eSBzZXR0aW5ncy4KCiAgICBVc2UgInNldHRlciIgZnVuY3Rpb25zIGluc3RlYWQgb2YgZmxhZ3MsIGNsZWFuZXIgYW5kIG1vcmUgZmxleGlibGUuCiAgICBJdCBhbHNvIGZpeGVzIHRoZSBwcm9ibGVtIG5vdGVkIGJ5IFRpbXVyIFRhYmkgdGhhdCB0aGUgZXRoZXJuZXQgTUFDCiAgICBhZGRyZXNzZXMgd2VyZSBhbGwgYmVpbmcgc2V0IGluY29ycmVjdGx5IHRvIHRoZSBzYW1lIE1BQyBhZGRyZXNzLgoKY29tbWl0IGMyOGFiYjljNjE0ZjY1Y2UyMDk2Y2M0YTY2ZmM4ODZjNzdkMGU1YTQKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgQXByIDE0IDIyOjUxOjI0IDIwMDcgLTA0MDAKCiAgICBJbXByb3ZlIHRoZSBib290bSBjb21tYW5kIGZvciBDT05GSUdfT0ZfTElCRkRUCgogICAgSW4gYm9vdG0sIGNyZWF0ZSB0aGUgIi9jaG9zZW4iIG5vZGUgb25seSBpZiBpdCBkb2Vzbid0IGFscmVhZHkgZXhpc3QKICAgICAgKGJldHRlciBtYXRjaGVzIHRoZSBwcmV2aW91cyBiZWhhdmlvcikuCiAgICBVcGRhdGUgZm9yIHByb3BlciByZXNlcnZlZCBtZW1vcnkgbWFwIGhhbmRsaW5nIGZvciBpbml0cmQuCgpjb21taXQgM2Y5ZjA4Y2Y5MWM4YTY5NDlhNWQ3OGExOGJkM2Q4ZGY3Yjg2ZDg4OApBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVNhdCBBcHIgMTQgMjI6NDY6NDEgMjAwNyAtMDQwMAoKICAgIEFkZCBzb21lIHV0aWxpdGllcyB0byBtYW5pcHVsYXRlIHRoZSByZXNlcnZlZCBtZW1vcnkgbWFwLgoKY29tbWl0IDgwNDhjZGQ1NmYwNGE3NTZlZWVhNDk1MWY0MDJiZjVjYzMzNzg1ZGIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgQXByIDE0IDIxOjE2OjU0IDIwMDcgKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgpjb21taXQgOGU2ODc1MTgzY2RjYTkxYzEzNDQwOGQxMTlkNGFiY2Q0OGVmNjg1NgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTdW4gRGVjIDE3IDE4OjU2OjQ2IDIwMDYgKzAxMDAKCiAgICBBVlIzMjogRW5hYmxlIE1NQyBzdXBwb3J0CgogICAgU2V0IHVwIHRoZSBwb3J0bXV4IGZvciB0aGUgTU1DIGludGVyZmFjZSBhbmQgZW5hYmxlIHRoZSBNTUMgZHJpdmVyCiAgICBhbG9uZyB3aXRoIHN1cHBvcnQgZm9yIERPUyBwYXJ0aXRpb25zLCBleHQyIGFuZCBGQVQgZmlsZXN5c3RlbXMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZmMyNmM5N2JiNmRmNDFiNGE5NTY2MmMzNDA1NGZlOTEyMzg3YmYzOApBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglGcmkgSmFuIDIwIDEwOjAzOjUzIDIwMDYgKzAxMDAKCiAgICBBdG1lbCBNQ0kgZHJpdmVyCgogICAgRHJpdmVyIGZvciB0aGUgQXRtZWwgTUNJIGNvbnRyb2xsZXIgKE1NQyBpbnRlcmZhY2UpIGZvciBBVDMyQVAgQ1BVcy4KCiAgICBUaGUgQVQ5MSBBUk0tYmFzZWQgQ1BVcyB1c2UgYmFzaWNhbGx5IHRoZSBzYW1lIGhhcmR3YXJlLCBzbyBpdCBzaG91bGQKICAgIGJlIHBvc3NpYmxlIHRvIHNoYXJlIHRoaXMgZHJpdmVyLCBidXQgbm8gZWZmb3J0IGhhcyBiZWVuIG1hZGUgc28gZmFyLgoKICAgIEhhcmR3YXJlIGRvY3VtZW50YXRpb24gY2FuIGJlIGZvdW5kIGluIHRoZSBBVDMyQVA3MDAwIGRhdGEgc2hlZXQsCiAgICB3aGljaCBjYW4gYmUgZG93bmxvYWRlZCBmcm9tCgogICAgaHR0cDovL3d3dy5hdG1lbC5jb20vZHluL3Byb2R1Y3RzL2RhdGFzaGVldHMuYXNwP2ZhbWlseV9pZD02ODIKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAwNWZkYWIxZWY2YTEwZDA0OWE1MDAyMWE4NmYxMjI2ZjQ0NGQ5YjlmCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVN1biBEZWMgMTcgMTg6NTU6MzcgMjAwNiArMDEwMAoKICAgIEFWUjMyOiBBZGQgY2xrIGFuZCBncGlvIGluZnJhc3RydWN0dXJlIGZvciBtbWNpCgogICAgSW1wbGVtZW50IGZ1bmN0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIG1tY2kgcGlucywgYXMgd2VsbCBhcwogICAgZnVuY3Rpb25zIGZvciBnZXR0aW5nIHRoZSBjbG9jayByYXRlIG9mIHRoZSBtbWNpIGNvbnRyb2xsZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgN2ZhYzNmNjllOWYwNWM1ZTUzMjY2ODE5NzZjMzVkMTI5MzI0YzRkZQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTdW4gRGVjIDE3IDE4OjUzOjU2IDIwMDYgKzAxMDAKCiAgICBFbmFibGUgcGFydGl0aW9uIHN1cHBvcnQgd2l0aCBNTUMKCiAgICBJbmNsdWRlIGltcGxlbWVudGF0aW9ucyBvZiBpbml0X3BhcnQoKSBhbmQgZ2V0X3BhcnRpdGlvbl9pbmZvKCkgd2hlbgogICAgQ09ORklHX01NQyBpcyBzZXQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgOWEyNGY0NzdhMWVkNWJiMGY3NDM3N2M5ODVkNzU0ZWJiZmE0NDg3MgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTdW4gRGVjIDE3IDE3OjE0OjMwIDIwMDYgKzAxMDAKCiAgICBBVlIzMjogRW5hYmxlIG5ldHdvcmtpbmcKCiAgICBJbXBsZW1lbnQgTUFDQiBpbml0aWFsaXphdGlvbiBmb3IgQVZSMzIgYW5kIEFUU1RLMTAwMCwgYW5kIHR1cm4KICAgIGV2ZXJ5dGhpbmcgb24sIGluY2x1ZGluZyB0aGUgTUFDQiBkcml2ZXIuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNWMxZmUxZmZmZmQxNzUwYTdlNDdlNWEyZTJjZDYwMGMwMGU0ZjAwOQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglGcmkgSmFuIDIwIDEwOjAzOjM0IDIwMDYgKzAxMDAKCiAgICBBdG1lbCBNQUNCIGV0aGVybmV0IGRyaXZlcgoKICAgIERyaXZlciBmb3IgdGhlIEF0bWVsIE1BQ0Igb24tY2hpcCBldGhlcm5ldCBjb250cm9sbGVyLgoKICAgIFRoaXMgZHJpdmVyIGhhcyBiZWVuIHRlc3RlZCBvbiB0aGUgQVRTVEsxMDAwIGJvYXJkIHdpdGggYSBBVDMyQVA3MDAwCiAgICBDUFUuIEl0IHNob3VsZCBwcm9iYWJseSB3b3JrIG9uIEFUOTFTQU05MjZ4IGFzIHdlbGwgd2l0aCBzb21lIG1pbm9yCiAgICBtb2RpZmljYXRpb25zLgoKICAgIEhhcmR3YXJlIGRvY3VtZW50YXRpb24gY2FuIGJlIGZvdW5kIGluIHRoZSBBVDMyQVA3MDAwIGRhdGEgc2hlZXQsCiAgICB3aGljaCBjYW4gYmUgZG93bmxvYWRlZCBmcm9tCgogICAgaHR0cDovL3d3dy5hdG1lbC5jb20vZHluL3Byb2R1Y3RzL2RhdGFzaGVldHMuYXNwP2ZhbWlseV9pZD02ODIKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBiNGVjOWMyZDQzZDg5NDcyOWJiNjMzYmZkYmRmYTk1YTk2MmMxNTU2CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVN1biBEZWMgMTcgMTY6NTY6MTQgMjAwNiArMDEwMAoKICAgIEFWUjMyOiBBZGQgY2xrIGFuZCBncGlvIGluZnJhc3RydWN0dXJlIGZvciBtYWNiMCBhbmQgbWFjYjEKCiAgICBJbXBsZW1lbnQgZnVuY3Rpb25zIGZvciBjb25maWd1cmluZyB0aGUgbWFjYjAgYW5kIG1hY2IxIHBpbnMsIGFzCiAgICB3ZWxsIGFzIGZ1bmN0aW9ucyBmb3IgZ2V0dGluZyB0aGUgY2xvY2sgcmF0ZSBvZiB0aGUgdmFyaW91cwogICAgYnVzc2VzIHRoZSBtYWNiIGV0aGVybmV0IGNvbnRyb2xsZXJzIGFyZSBjb25uZWN0ZWQgdG8uCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZDVhY2I5NWIxNmEwYTc0YzY0MzUyNDM0MmMzNDM3ZTc2NTQyNmQwNQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTdW4gRGVjIDE3IDE1OjM5OjE1IDIwMDYgKzAxMDAKCiAgICBBVlIzMjogSW1wbGVtZW50IHNpbXBsZSBETUEgbWVtb3J5IGFsbG9jYXRvcgoKICAgIEltcGxlbWVudCBkbWFfYWxsb2NfY29oZXJlbnQoKSB3aGljaCByZXR1cm5zIGNhY2hlLWFsaWduZWQKICAgIHVuY2FjaGVhYmxlIG1lbW9yeS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA5MTk3NWIwZmVhNzczYzllNjgxZmVhOGNmMzM0OTY2OWYyNzY4NWVlCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVN1biBEZWMgMTcgMTU6NDY6MDIgMjAwNiArMDEwMAoKICAgIEltcG9ydCA8bGludXgvbWlpLmg+IGZyb20gdGhlIExpbnV4IGtlcm5lbAoKICAgIEluc3RlYWQgb2YgY3JlYXRpbmcgeWV0IGFub3RoZXIgc2V0IG9mIE1JSSByZWdpc3RlciBkZWZpbml0aW9ucwogICAgaW4gdGhlIG1hY2IgZHJpdmVyLCBoZXJlJ3MgYSBjb21wbGV0ZSBzZXQgb2YgZGVmaW5pdGlvbnMgZm9yIGV2ZXJ5b25lCiAgICB0byB1c2UuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMWI4MDRiMjI5NTU2YTRkODYyZGE5M2MwZWM5NGU3OTQxOTM2NGIyYwpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglXZWQgTWFyIDIxIDE5OjQ3OjM2IDIwMDcgKzAxMDAKCiAgICBBVlIzMjogSW5jbHVkZSBtb3JlIGNvbW1hbmRzIGZvciBBVFNUSzEwMDAKCiAgICBJbmNsdWRlIHRoZSBpbWksIGltbHMgYW5kIGpmZnMgY29tbWFuZHMgc2V0cyBieSBkZWZhdWx0IG9uIEFUU1RLMTAwMC4KICAgIEFsc28gZGVmaW5lIENPTkZJR19CT09UQVJHUyB0byBzb21ldGhpbmcgbW9yZSB1c2VmdWwsIGRlZmluZQogICAgQ09ORklHX0JPT1RDT01NQU5EIGFuZCBlbmFibGUgYXV0b2Jvb3QgYnkgZGVmYXVsdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA5YzBkZWI1YWUzZWEwMTg5ZjJlMDhhYzI5ZWYxMzE2ZjFmYjg1NDhkCkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVdlZCBNYXIgMjEgMTk6NDQ6NDggMjAwNyArMDEwMAoKICAgIEFWUjMyOiBQcm92aWRlIGEgZGVmaW5pdGlvbiBvZiBzdHJ1Y3Qgc3RhdAoKICAgIENvcHkgdGhlIGRlZmluaXRpb24gb2Ygc3RydWN0IHN0YXQgZnJvbSB0aGUgTGludXgga2VybmVsLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDEyZjA5OWMwODE2N2E3YTUxYWVlZTYyM2JjMTZkYWZkMDg0MTI3MWMKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU3VuIERlYyAxNyAxNDo0NjowNiAyMDA2ICswMTAwCgogICAgQVZSMzI6IFVzZSBpbml0ZHJhbSgpIGluc3RlYWQgb2YgYm9hcmRfaW5pdF9tZW1vcmllcygpCgogICAgQ29uZm9ybSB0byB0aGUgInN0YW5kYXJkIiBpbnRlcmZhY2UgYW5kIHVzZSBpbml0ZHJhbSgpIGluc3RlYWQgb2YKICAgIGJvYXJkX2luaXRfbWVtb3JpZXMoKSBvbiBBVlIzMi4gVGhpcyBlbmFibGVzIHVzIHRvIGdldCByaWQgb2YgdGhlCiAgICBzZHJhbV9zaXplIG1lbWJlciBvZiB0aGUgZ2xvYmFsX2RhdGEgc3RydWN0IGFzIHdlbGwuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMWY0ZjIxMjFjMjY4NTE4MmViODdmYTlhOWI3OTlkMTkxNzM4N2ExYwpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglNb24gTm92IDIwIDE1OjUzOjEwIDIwMDYgKzAxMDAKCiAgICBBVlIzMjogUmVsb2NhdGUgdS1ib290IHRvIFNEUkFNCgogICAgUmVsb2NhdGUgdGhlIHUtYm9vdCBpbWFnZSBpbnRvIFNEUkFNIGxpa2UgZXZlcnlvbmUgZWxzZSBkb2VzLiBUaGlzCiAgICBtZWFucyB0aGF0IHdlIGNhbiBoYW5kbGUgbXVjaCBsYXJnZXIgLmRhdGEgYW5kIC5ic3MgdGhhbiB3ZSB1c2VkIHRvLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IGRmNTQ4ZDNjM2UyYmJjNDAyNTg3MTMxNjc4NTlmZmMyY2U5OWE5MDAKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU3VuIE5vdiAxOSAxODowNjo1MyAyMDA2ICswMTAwCgogICAgQVZSMzI6IFJlc291cmNlIG1hbmFnZW1lbnQgcmV3cml0ZQoKICAgIFJld3JpdGUgdGhlIHJlc291cmNlIG1hbmFnZW1lbnQgY29kZSAoaS5lLiBJL08gbWVtb3J5LCBjbG9jayBnYXRpbmcsCiAgICBncGlvKSBzbyBpdCBkb2Vzbid0IGRlcGVuZCBvbiBhbnkgZ2xvYmFsIHN0YXRlLiBUaGlzIGlzIG5lY2Vzc2FyeQogICAgYmVjYXVzZSB0aGlzIGNvZGUgaXMgaGVhdmlseSB1c2VkIGJlZm9yZSByZWxvY2F0aW9uIHRvIFJBTSwgc28gd2UKICAgIGNhbid0IHdyaXRlIHRvIGFueSBnbG9iYWwgdmFyaWFibGVzLgoKICAgIEFzIGFuIGFkZGVkIGJvbnVzLCB0aGlzIG1ha2VzIHUtYm9vdCdzIG1lbW9yeSBmb290cHJpbnQgYSBiaXQgc21hbGxlciwKICAgIGFsdGhvdWdoIHNvbWUgZnVuY3Rpb25hbGl0eSBoYXMgYmVlbiBsZWZ0IG91dDsgYWxsIGNsb2NrcyBhcmUgZW5hYmxlZAogICAgYWxsIHRoZSB0aW1lLCBhbmQgdGhlcmUncyBubyBjaGVja2luZyBmb3IgZ3BpbyBsaW5lIGNvbmZsaWN0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAwM2QxZTEzNjU3OTZjZDE1ZDE3MjZlOGE1MWZkOGI1YmU1MGIyZmU5CkF1dGhvcjogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+CkRhdGU6CVNhdCBOb3YgMTggMTg6MDE6MTMgMjAwNiArMDEwMAoKICAgIEFWUjMyOiBDbGVhbiB1cCBtZW1vcnktbWFwLmggZm9yIGF0MzJhcDcwMDAKCiAgICBDb252ZXJ0IHNwYWNlcyB0byB0YWJzIChtdXN0IGhhdmUgbWlzc2VkIHRoaXMgb25lIGxhc3QgdGltZSBhcm91bmQpLAogICAgc29ydCB0aGUgZW50cmllcyBieSBhZGRyZXNzIGFuZCBncm91cCB0aGVtIHRvZ2V0aGVyIGJ5IGJ1cwogICAgY29ubmVjdGl2aXR5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgoKY29tbWl0IDI4YzY5OWVmNjlmNGI2Y2RmMjUyZTQ3NDdiN2I1OTAwMjhhODg5ODEKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJU2F0IE5vdiAxOCAxNzozMjozMSAyMDA2ICswMTAwCgogICAgQVZSMzI6IEJ1aWxkIHBvc2l0aW9uLWluZGVwZW5kZW50IHUtYm9vdAoKICAgIEFkZCAtZlBJQyAtbW5vLWluaXQtZ290IHRvIHRoZSBhdnIzMi1zcGVjaWZpYyBDRkxBR1MgdG8gbWFrZSB1LWJvb3QKICAgIHBvc2l0aW9uIGluZGVwZW5kZW50LiBUaGlzIHdpbGwgbWFrZSByZWxvY2F0aW9uIGEgbG90IGVhc2llci4KCiAgICAtbW5vLWluaXQtZ290IG1lYW5zIHRoYXQgZ2NjIHNob3VsZG4ndCBlbWl0IGNvZGUgdG8gbG9hZCB0aGUgR09UCiAgICBhZGRyZXNzIGludG8gcjYgaW4gZXZlcnkgZnVuY3Rpb24gcHJvbG9ndWUuIFdlIGRvIGl0IG9uY2UgYW5kIGZvcgogICAgYWxsIGluIHRoZSBlYXJseSBzdGFydHVwIGFzc2VtYmx5IGNvZGUsIHNvIGVuYWJsaW5nIHRoaXMgb3B0aW9uCiAgICBtYWtlcyB1LWJvb3QgYSBiaXQgZmFzdGVyIGFuZCBzbWFsbGVyLgoKICAgIFRoZSBhc3NlbWJseSBwYXJ0cyBoYXZlIGFsd2F5cyBiZWVuIHBvc2l0aW9uLWluZGVwZW5kZW50LCBzbyBubyBjb2RlCiAgICBjaGFuZ2VzIHNob3VsZCBiZSBuZWNlc3NhcnkuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgNTM3NGIzNmRlOTFkMDA2ZDFkZjk1MzYyNTlmYTlmNjZiMDFhYTNhYQpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTYXQgTm92IDE4IDE3OjI0OjMxIDIwMDYgKzAxMDAKCiAgICBBVlIzMjogVXNlIGF2cjMyLWxpbnV4LSBjcm9zcy1jb21waWxhdGlvbiBwcmVmaXggYnkgZGVmYXVsdAoKICAgIEl0IGRvZXNuJ3QgcmVhbGx5IG1hdHRlciB3aGljaCB0b29sY2hhaW4geW91IHVzZSB0byBjb21waWxlIHUtYm9vdCwKICAgIGJ1dCB0aGUgYXZyMzItbGludXggb25lIGlzIHByb2JhYmx5IHdoYXQgbW9zdCBwZW9wbGUgaGF2ZSBpbnN0YWxsZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgYzg0MWJlZWRkZWJlY2UwMDM5ZTcyNGZiMjdmNGQxYTM5ZWUxYzZiNgpBdXRob3I6IEhhYXZhcmQgU2tpbm5lbW9lbiA8aHNraW5uZW1vZW5AYXRtZWwuY29tPgpEYXRlOglTYXQgTm92IDE4IDE3OjE1OjMwIDIwMDYgKzAxMDAKCiAgICBBVlIzMjogU3BsaXQgc3RhcnRfdV9ib290IGludG8gYm9hcmRfaW5pdF9mIGFuZCBib2FyZF9pbml0X3IKCiAgICBTcGxpdCB0aGUgYXZyMzIgaW5pdGlhbGl6YXRpb24gY29kZSBpbnRvIGEgZnVuY3Rpb24gdG8gcnVuIGJlZm9yZQogICAgcmVsb2NhdGlvbiwgYm9hcmRfaW5pdF9mIGFuZCBhIGZ1bmN0aW9uIHRvIHJ1biBhZnRlciByZWxvY2F0aW9uLAogICAgYm9hcmRfaW5pdF9yLiBGb3Igbm93LCBib2FyZF9pbml0X2Ygc2ltcGx5IGNhbGxzIGJvYXJkX2luaXRfcgogICAgYXQgdGhlIGVuZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCAzNzQwMzAwNWNmZTZiYjEzOTY0ZDQ1MGY2YTQ4YTBiMGYyZjcwMTdlCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTYXQgQXByIDE0IDA1OjI2OjQ4IDIwMDcgKzAyMDAKCiAgICBbRml4XQlTZXQgdGhlIExFRCBzdGF0dXMgcmVnaXN0ZXIgb24gdGhlIFVDMTAxIGZvciB0aGUgTFhUOTcxIFBIWS4KCSAgICBjbGVhciB0aGUgRGlzcGxheSBhZnRlciByZXNldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA3ODgyNzUxYzc4YjdlY2FiZmQ0OWIwZWZmOGRlMjc2NjFjNzFmMTZjCkF1dGhvcjogRGVuaXMgUGV0ZXIgPGQucGV0ZXJAbXBsLmNoPgpEYXRlOglGcmkgQXByIDEzIDA5OjEzOjMzIDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIEZpeCBidWdzIGluIGNtZF9pZGUuYyBhbmQgY21kX3Njc2kuYwoKICAgIEZpeCBidWcgaW50cm9kdWNlZCBieSAiRml4IGdldF9wYXJ0aXRpb25faW5mbygpIHBhcmFtZXRlciBlcnJvciBpbiBhbGwKICAgIG90aGVyIGNhbGxzIiBmcm9tIDIwMDUtMDMtMDQgaW4gY21kX2lkZS5jIGFuZCBjbWRfc2NzaS5jLCB3aGljaCBwcmV2ZW50ZWQKICAgIHRvIHVzZSBkaXNrYm9vdCBvciBzY3NpYm9vdCBmb3JtIGFub3RoZXIgZGV2aWNlIHRoYW4gMC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBEZW5pcyBQZXRlciA8ZC5wZXRlckBtcGwuY2g+Cgpjb21taXQgMGI5NDUwNGQyMmU3MGY1MzdjMTdhMGQzOGM4N2VkYjZlMzcwOTc3ZApBdXRob3I6IEdyZWcgTG9wcCA8bG9wcEBwb2JveC5jb20+CkRhdGU6CUZyaSBBcHIgMTMgMDg6MDI6MjQgMjAwNyArMDIwMAoKICAgIFtQQVRDSF0gRml4IHVzZSBvZiAidm9pZCAqIiBmb3IgYmxvY2sgZGV2IHJlYWQvd3JpdGUgYnVmZmVyIHBvaW50ZXJzCgogICAgU2lnbmVkLW9mLWJ5OiBHcmVnIExvcHAgPGxvcHBAcG9ib3guY29tPgogICAgQWNrZWQtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA2ZmJmMjYxZjhkZjI5NGU1ODljZmFkZWJlYmU1NDY4ZTNjMGYyOWU5CkF1dGhvcjogWGllIFhpYW9ibyA8cjYzMDYxQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBNYXIgOSAxOTowODoyNSAyMDA3ICswODAwCgogICAgRml4IHR3byBidWdzIGZvciBNUEM4M3h4IEREUjIgY29udHJvbGxlciBTUEQgSW5pdAoKICAgIFRoZXJlIGFyZSBhIGZldyBidWdzIGluIHRoZSBjcHUvbXBjODN4eC9zcGRfc2RyYW0uYwogICAgdGhlIGZpcnN0IGJ1ZyBpcyB0aGF0IHRoZSBwaWNvc190b19jbGsgcm91dGluZSBpbnRyb2R1Y2VzIGEgaHVnZQogICAgcm91bmRpbmcgZXJyb3IgaW4gODN4eC4KICAgIHRoZSBzZWNvbmQgYnVnIGlzIHRoYXQgdGhlIG1vZGUgcmVnaXN0ZXIgd3JpdGUgcmVjb3ZlcnkgZmllbGQgaXMKICAgIHRXUi0xLCBub3QgdFdSID4+IDEuCgpjb21taXQgMmFkM2FiYTAxZDM3YjcyZTdjOTU3YjA3ZTEwMmZjY2Q2NGZlNmQxMwpBdXRob3I6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgpEYXRlOglUaHUgQXByIDEyIDE0OjE1OjU5IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCBpMmMgZGl2aXNvciBjYWxjdWxhcmlvbiBmb3IgUFBDNHh4CgogICAgVGhpcyBwYXRjaCBmaXhlcyBjaGFuZ2VzIHRoZSBpMmNfaW5pdCguLi4pIGZ1bmN0aW9uIHRvIHVzZSB0aGUgZnVuY3Rpb24KICAgIGdldF9PUEJfZnJlcSgpIHJhdGhlciB0aGFuIGNhbGN1bGF0aW5nIHRoZSBPUEIgc3BlZWQgYnkKICAgIHN5c0luZm8uZnJlcVBMQi9zeXNJbmZvLnBsbE9wYkRpdi4gVGhlIGdldF9PUEJfZnJlcSgpIGZ1bmN0aW9uIGlzCiAgICBzcGVjaWZpYyBwZXIgcHJvY2Vzc29yLiBUaGUgcHJpb3IgbWV0aG9kIHdhcyBub3QgYW5kIHNvIHdhcyBjYWxjdWxhdGluZwogICAgdGhlIHdyb25nIHNwZWVkIGZvciBzb21lIFBQQzR4eCBwcm9jZXNzb3JzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEplZmZyZXkgTWFubiA8bWFubmpAZW1iZWRkZWRwbGFuZXQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDZjOWJhOTE5Mzc1ZGI5NzdhYWFkOTE0NmJmMzIwYzdhZmQwN2FlN2EKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglXZWQgQXByIDExIDE3OjI1OjAxIDIwMDcgKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA1MTA1NmRkOTg2M2U2YTFiYzM2M2FmYmJlMTc3NWM1OGNkOTY3NDE4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIEFwciAxMSAxNzoyMjo1NSAyMDA3ICswMjAwCgogICAgVXBkYXRlIGZvciBTQzMgYm9hcmQKCiAgICAqIE1ha2UgSURFIHRpbWVvdXQgY29uZmlndXJhYmxlIHRocm91Z2ggaWRlX3Jlc2V0X3RpbWVvdXQgdmFyaWFibGUuCiAgICAqIFVzZSBOZXdsaW5lIGFzICJwYXNzd29yZCIgc3RyaW5nCiAgICAqIFVzZSBqdXN0IGEgc2luZ2xlIHBhcnRpdGlvbiBpbiBOQU5EIGZsYXNoCgpjb21taXQgM2Q5OGI4NTgwMGM4MGRjNjgyMjdjOGYxMGJmNWM5MzQ1NmQ2ZDA1NApBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBKYW4gMjIgMTI6Mzc6MzAgMjAwNyAtMDYwMAoKICAgIEFkZCBQSVhJUyBGUEdBIHN1cHBvcnQgZm9yIE1QQzg2NDFIUENOIGJvYXJkLgoKICAgIE1vdmUgdGhlIDg2NDFIUENOJ3MgUElYSVMgY29kZSB0byB0aGUgbmV3IGRpcmVjdG9yeQogICAgYm9hcmQvZnJlZXNjYWxlL2NvbW1vbi8gYXMgaXQgd2lsbCBiZSBzaGFyZWQgYnkKICAgIGZ1dHVyZSBib2FyZHMgbm90IGluIHRoZSBzYW1lIHByb2Nlc3NvciBmYW1pbHkuCgogICAgV3JpdGUgYSAicGl4aXNfcmVzZXQiIGNvbW1hbmQgdGhhdCB1dGlsaXplcyB0aGUgRlBHQQogICAgcmVzZXQgc2VxdWVuY2VyIHRvIHN1cHBvcnQgYWx0ZXJuYXRlIHNvZnQtcmVzZXQgb3B0aW9ucwogICAgc3VjaCBhcyB1c2luZyB0aGUgImFsdGVybmF0ZSIgZmxhc2ggYmFuaywgZW5hYmxpbmcKICAgIHRoZSB3YXRjaCBkb2csIG9yIGNob29zaW5nIGRpZmZlcmVudCBDUFUgZnJlcXVlbmNpZXMuCgogICAgQWRkIGRvY3VtZW50YXRpb24gZm9yIHRoZSBwaXhpc19yZXNldCB0byBSRUFETUUubXBjODY0MWhwY24uCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNjRkYmJkNDBjNTgzNDliNjRmNDNmZDMzZGJiNWNhMGFkYjY3ZDY0MgpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CUZyaSBBcHIgNiAxNDoxOTo0MyAyMDA3IC0wNDAwCgogICAgTW92ZWQgZmR0IGNvbW1hbmQgc3VwcG9ydCBjb2RlIHRvIGZkdF9zdXBwb3J0LmMKCiAgICAuLi5pbiBwcmVwYXJhdGlvbiBmb3IgaW1wcm92aW5nIHRoZSBib290bSBjb21tYW5kJ3MgaGFuZGxpbmcgb2YgZmR0IGJsb2JzLgogICAgQWxzbyBjbGVhbmVkIHVwIHNvbWUgY29kaW5nIHNsb3BwaW5lc3MuCgpjb21taXQgNjY3OWY5Mjk5NTM0ZTQ4OGExNzFhOWJiOGY5YmI4OTFkZTI0N2FhYgpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CUZyaSBBcHIgNiAxNDoxNzoxNCAyMDA3IC0wNDAwCgogICAgbGliZmR0OiBNYWtlIGZkdF9jaGVja19oZWFkZXIoKSBwdWJsaWMKCiAgICBDaGFuZ2VkIF9mZHRfY2hlY2tfaGVhZGVyKCkgdG8gZmR0X2NoZWNrX2hlYWRlcigpIGFuZCBtYWRlIGl0IHBhcnQgb2YKICAgIHRoZSBpbnRlcmZhY2UgLSBpdCBpcyBhIHVzZWZ1bCByb3V0aW5lLgoKICAgIEFsc28gZGlkIHNvbWUgYXN0aGV0aWNzIGNsZWFudXAgdG8gdGhlIGluY2x1ZGUgZmlsZXMgKGhlYWRlcnMpLgoKY29tbWl0IGMwNzA3Y2U2NTY3NzY1MGI1Y2VhYjA1MDBlZTUwYWU1MTY4YWZlZjIKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglUaHUgQXByIDUgMTg6MzQ6MDYgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIEtpbGwgb2ZmIGEgYnVuY2ggb2YgY29tbW9uIGxvY2FsIHByb3RvdHlwZXMKCmNvbW1pdCA3YjdlMzBhYTY0YmI2NjU3YTFiZmQzMmZkYmRiZmViNTYxZTZhNDhkCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJVGh1IEFwciA1IDE4OjMzOjA0IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBGaXggZHluYW1pYyBDUExCIGdlbmVyYXRpb24gaXNzdWUKCmNvbW1pdCAwNDQ1ZTNhMjY0MjUxZDc1YjFiZTQ1ZWY3MTNjNzA3MjZhMjk1MmYwCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJVGh1IEFwciA1IDE4OjMxOjQ3IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBtaW5pb3IgY2xlYW51cAoKY29tbWl0IDE1NWZkNzY2NTczOTgxMDkwZTYzOGI0OTNkNTg1NzU2MjE1MTg2MmUKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglUaHUgQXByIDUgMTg6MzE6MTggMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIEZpeCBjb3B5cmlnaHQgYW5kIHVwZGF0ZSBsaWNlbnNlCgpjb21taXQgOWZkNDM3YmJkNzVkMjgyZjg5OWUxZGE1MGJlMjBhMmJmMzg0NTBiYwpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CVRodSBBcHIgNSAxODozMDoyNSAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gQWRkIEJGNTM3IEVNQUMgZHJpdmVyIGluaXRpYWxpemF0aW9uCgpjb21taXQgODg5MjU2ZTg2MDRlMGM2OGRiMWQ4NjZkNzIwODk0ZGZmZWRlOWRmNgpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CVRodSBBcHIgNSAxODoyOTo1NSAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gY2FsbCByZWFsIHRoZSBzeXN0ZW0gc3luY2hyb25pemUgaW5zdHJ1Y3Rpb24KCmNvbW1pdCBlMGRmMWM5MjFiNzg4Mjg5NTY0ZTRjMWVlNzEyMGE2YTljZDNhYjA1CkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJVGh1IEFwciA1IDE4OjI5OjE3IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSByZW1vdmUgYXNtL3BhZ2UuaCBhcyB3ZSBkbyBub3QgYWN0dWFsbHkgdXNlL3dhbnQgYW55IG9mIHRoZXNlIGRlZmluaXRpb25zIG5vciBkb2VzIGFueSBvdGhlciBhcmNoIGluY2x1ZGUgaXQKCmNvbW1pdCBkZmVlYWIyY2Q2ODBkZjA0N2U2OGU3MjNiMjQ2YWRmNmYzM2JiNTU2CkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJVGh1IEFwciA1IDE4OjI4OjM0IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXTogZml4IGZsYXNoIHVuYWxpZ25lZCBjb3B5IGlzc3VlCgpjb21taXQgNDQzZmViNzQwNTg0ZTQwNmVmYTIwM2FmOTA5ZmUyOTI2NjA4ZThkNQpBdXRob3I6IElnb3IgTWFybmF0IDxtYXJueUByYW1ibGVyLnJ1PgpEYXRlOglXZWQgTWFyIDIxIDA5OjU1OjAxIDIwMDcgKzAzMDAKCiAgICBVcGRhdGUgdXNhZ2Ugb2YgJ25jJyBpbiBSRUFETUUuTmV0Q29uc29sZQoKICAgIEFkZGVkIGluZm9ybWF0aW9uIGFib3V0IHVzYWdlIG9mIE5ldENvbnNvbGUgb24gc3lzdGVtcyB3aGVyZSB0aGUgLWwgYW5kIC1wCiAgICBzd2l0Y2hlcyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLgoKICAgIFNpZ25lZC1vZmYtYnk6IElnb3IgTWFybmF0IDxtYXJueUByYW1ibGVyLnJ1PgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+Cgpjb21taXQgMzFjOThhODgyMjgwMjFiMzE0Yzg5ZWJiODEwNGZiNjQ3M2RhNDQ3MQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgNCAwMjowOTozMCAyMDA3ICswMjAwCgogICAgTWlub3IgY29kaW5nIHN0eWxlIGNsZWFudXAuCgpjb21taXQgOTRhYmQ3YzA1ODNlYmUwMWU3OTliMjVmNDUxMjAxZGVlYWFiNTUwZApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBBcHIgNCAwMTo0OToxNSAyMDA3ICswMjAwCgogICAgTWlub3IgY2xlYW51cC4KCmNvbW1pdCA4MjJhZjM1MWFkMmJhYmM3ZDk5MDMzMzYxYTVmY2FjZDMwZjZiYzc4CkF1dGhvcjogUm9kb2xmbyBHaW9tZXR0aSA8Z2lvbWV0dGlAZW5uZWVubmUuY29tPgpEYXRlOglUdWUgQXByIDMgMTQ6Mjc6MTggMjAwNyArMDIwMAoKICAgIFN1cHBvcnQgZm9yIHRoZSBQaGlsaXBzIElTUDExNnggSENEIChIb3N0IENvbnRyb2xsZXIgRHJpdmVyKQoKICAgIFNpZ25lZC1vZmYtYnk6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGVubmVlbm5lLmNvbT4KCmNvbW1pdCBlZGY1ODUxYmU2YzE3YzAzMWQ0ZjcxZGQ1YjBhMTIwNDBiN2M1MGM4CkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIEFwciAzIDE0OjI3OjA4IDIwMDcgKzAyMDAKCiAgICBVU0I6IGNsZWFudXAgbW9uYWhhbnMgdXNiIHN1cHBvcnQuIFJlbW92ZSBkZWFkIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCBhNjVjNTc2OGU1NTM3NTMwYmQxNzgwYWYzZDNmZGRjMzExM2ExNjNjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gQXByIDIgMTA6MDk6MzAgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ2hhbmdlIFN5c0FDRSBhZGRyZXNzIG9uIEthdG1haQoKICAgIFdpdGggdGhpcyBuZXcgYmFzZSBhZGRyZXNzIG9mIHRoZSBYaWxpbnggU3lzdGVtQUNFIGNvbnRyb2xsZXIKICAgIHRoZSBMaW51eCBkcml2ZXIgd2lsbCBiZSBlYXNpZXIgdG8gYWRhcHQsIHNpbmNlIGl0IGNhbiBub3cgYmUKICAgIG1hcHBlZCB2aWEgdGhlICJub3JtYWwiIGlvcmVtYXAoKSBjYWxsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhZWEwM2M0ZThjM2EyMWNlNDNkM2ZhZjQ4YTZlNmQ0NzRjOGJkZjczCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IE1hciAzMSAxNDozMDo1MyAyMDA3IC0wNDAwCgogICAgRml4IHNvbWUgbWlub3Igd2hpdGVzcGFjZSB2aW9sYXRpb25zLgoKY29tbWl0IDIxM2JmOGM4MjJkZThlZWNhZjY5ODYwNjg0NDY5Y2RhYmEyZTllNmEKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgTWFyIDMxIDEyOjIzOjUxIDIwMDcgLTA0MDAKCiAgICBBZGQgYSBmbGF0dGVuZWQgZGV2aWNlIHRyZWUgKGZkdCkgY29tbWFuZCAoMiBvZiAyKQoKICAgIE1vZGlmaWNhdGlvbnMgdG8gdGhlIGV4aXN0aW5nIGNvZGUgdG8gc3VwcG9ydCB0aGUgbmV3IGZkdCBjb21tYW5kLgoKY29tbWl0IDc4MWUwOWVlNmUzZTNlMzkyYWIzNjJjMWYwZWYxMDY4YWRjNzZlM2UKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgTWFyIDMxIDEyOjIyOjEwIDIwMDcgLTA0MDAKCiAgICBBZGQgYSBmbGF0dGVuZWQgZGV2aWNlIHRyZWUgKGZkdCkgY29tbWFuZCAoMSBvZiAyKQoKICAgIFRoZSBmZHQgY29tbWFuZCB1c2VzIERhdmlkIEdpYnNvbidzIGxpYmZkdCBsaWJyYXJ5IHRvIG1hbmlwdWxhdGUgYXMgd2VsbAogICAgYXMgcHJpbnQgdGhlIGZsYXR0ZW5lZCBkZXZpY2UgdHJlZS4gIFRoaXMgcGF0Y2ggaXMgdGhlIG5ldyBjb21tYW5kLAogICAgdGhlIHNlY29uZCBwYXJ0IGlzIHRoZSBtb2RpZmljYXRpb25zIHRvIHRoZSBleGlzdGluZyBjb2RlLgoKY29tbWl0IDNhZjBkNTg3ZDkzZTBiZTVmOTZlMWIzMGZhNDFlNjYyZjhiMDgwM2UKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgTWFyIDMxIDEyOjEzOjQzIDIwMDcgLTA0MDAKCiAgICBsaWJmZHQ6IEVuaGFuY2VkIGFuZCBwdWJsaXNoZWQgZmR0X25leHRfdGFnKCkKCiAgICBFbmhhbmNlZCB0aGUgZm9ybWVybHkgcHJpdmF0ZSBmdW5jdGlvbiBfZmR0X25leHRfdGFnKCkgdG8gYWxsb3cgc3RlcHBpbmcKICAgICAgdGhyb3VnaCB0aGUgdHJlZSwgdXNlZCB0byBwcm9kdWNlIGEgaHVtYW4tcmVhZGFibGUgZHVtcCwgYW5kIG1hZGUKICAgICAgaXQgcGFydCBvZiB0aGUgcHVibGlzaGVkIGludGVyZmFjZS4KICAgIEFsc28gYWRkZWQgc29tZSBjb21tZW50cy4KCmNvbW1pdCBmYTNhNzRjZWM3M2RmZDA2YTVhZTM1YTlhMzM2ODIwMDI3M2FhYTcxCkF1dGhvcjogR2VyYWxkIFZhbiBCYXJlbiA8dmFuYmFyZW5AY2lkZWFzLmNvbT4KRGF0ZToJU2F0IE1hciAzMSAxMjowNTozOSAyMDA3IC0wNDAwCgogICAgbGliZmR0OiBDdXN0b21pemF0aW9ucyBmb3IgdXNlIGJ5IHUtYm9vdC4KCiAgICBDaGFuZ2VzIHRvIERhdmlkIEdpYnNvbidzIG9yaWdpbmFsIHNvdXJjZSB0byBmaXQgaW50byB1LWJvb3QncwogICAgZW52aXJvbm1lbnQuICBObyBmdW5jdGlvbmFsaXR5IGNoYW5nZXMuCgpjb21taXQgMzU3NDgxNzdjNjRhNGE4M2EwMDA1N2U5M2JiMzNlNDAyNzhhMmE5NgpBdXRob3I6IEdlcmFsZCBWYW4gQmFyZW4gPHZhbmJhcmVuQGNpZGVhcy5jb20+CkRhdGU6CVNhdCBNYXIgMzEgMTI6MDA6NTYgMjAwNyAtMDQwMAoKICAgIGxpYmZkdDogSW1wb3J0IGxpYmZkdCBzb3VyY2UgKDIgb2YgMikKCiAgICBUaGlzIGFkZHMgdGhlIGFwcGxpY2FibGUgbGliZmR0IHNvdXJjZSBmaWxlcyAodW5tb2RpZmllZCkgYW5kIGEgUkVBRE1FCiAgICB0byBleHBsYWluIHdoZXJlIHRoZSBzb3VyY2UgY2FtZSBmcm9tLgoKY29tbWl0IDdjZDVkYTBmZTg3N2U3MTcxYTRjZGQ0NDg4MGJjZTc4MzEzMjg3MWEKQXV0aG9yOiBHZXJhbGQgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgpEYXRlOglTYXQgTWFyIDMxIDExOjU5OjU5IDIwMDcgLTA0MDAKCiAgICBsaWJmZHQ6IEltcG9ydCBsaWJmZHQgc291cmNlICgxIG9mIDIpCgogICAgVGhpcyBhZGRzIHRoZSBhcHBsaWNhYmxlIGxpYmZkdCBzb3VyY2UgZmlsZXMgKHVubW9kaWZpZWQpIGFuZCBhIFJFQURNRQogICAgdG8gZXhwbGFpbiB3aGVyZSB0aGUgc291cmNlIGNhbWUgZnJvbS4KCmNvbW1pdCBkYTZlYmMxYmMwODJjYmUzYjZiYmRlMDc5Y2FmZTA5ZjdlYmJhZDRiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDMxIDEzOjE2OjIzIDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSBLYXRtYWkgYm9vdHN0cmFwIGNvbW1hbmQKCiAgICBOb3cgdGhlIEREUjIgZnJlcXVlbmN5IGlzIGFsc28gMipQTEIgZnJlcXVlbmN5IHdoZW4gMTY2TUh6IFBMQgogICAgaXMgc2VsZWN0ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGNhYmVlNzU2YTY1MzI5ODY3Mjk0NzdjM2NjMWVhMTZlZjg1MTdhZDIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBNYXIgMzEgMTM6MTU6MDYgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogVXBkYXRlIDQ0eF9zcGRfZGRyMiBjb2RlICg0NDBTUC80NDBTUGUpCgogICAgQWRkaXRpb25hbCBSQU0gaW5mb3JtYXRpb24gaXMgbm93IHByaW50ZWQgdXBvbiBwb3dlcnVwLCBsaWtlCiAgICBERFIyIGZyZXF1ZW5jeSBhbmQgQ0FTIGxhdGVuY3kuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDYwNzIzODAzNDMxYWM3NWNhZDA4NTY5MDc4OWU0MzNkNWFiOTE3NGUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBNYXIgMzEgMDg6NDg6MzYgMjAwNyArMDIwMAoKICAgIHBwYzR4eDogQ2hhbmdlIFl1Y2NhIGNvbmZpZyBmaWxlIHRvIHN1cHBvcnQgRUNDCgogICAgV2l0aCB0aGUgdXBkYXRlZCA0NHggRERSMiBkcml2ZXIgdGhlIFl1Y2NhIGJvYXJkIG5vdyBzdXBwb3J0cwogICAgRUNDIGdlbmVyYXRpb24gYW5kIGNoZWNraW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0OTBlNTczMGM2NzRiMjBkNzA4Yjc4M2EyYzVmZmQ3MjA4ZjgzODczCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDMxIDA4OjQ3OjM0IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IEZpeCAiYm9vdHN0cmFwIiBjb21tYW5kIGZvciBLYXRtYWkgYm9hcmQKCiAgICBUaGUgYm9hcmQgc3BlY2lmaWMgImJvb3RzdHJhcCIgY29tbWFuZCBpcyBub3cgZml4ZWQgYW5kIGNhbgogICAgYmUgdXNlZCBmb3IgdGhlIEFNQ0MgS2F0bWFpIGJvYXJkIHRvIGNvbmZpZ3VyZSBkaWZmZXJlbnQKICAgIENQVS9QTEIvT1BCIGZyZXF1ZW5jaWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA5NGY1NDcwM2MzYTc3NmVjMjNlNDI3Y2EyYTE2ZTBhNzlhNWQ1MGMxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDMxIDA4OjQ2OjA4IDIwMDcgKzAyMDAKCiAgICBwcGM0eHg6IFVwZGF0ZSA0NHhfc3BkX2RkcjIgY29kZSAoNDQwU1AvNDQwU1BlKQoKICAgIEZpeCBhIGJ1ZyBpbiB0aGUgYXV0byBjYWxpYnJhdGlvbiByb3V0aW5lLiBUaGlzIGRyaXZlciBub3cgcnVucwogICAgbW9yZSByZWxpYWJsZSB3aXRoIHRoZSB0ZXN0ZWQgbW9kdWxlcy4gSXQncyBhbHNvIHRlc3RlZCB3aXRoCiAgICAxNjdNSHogUExCIGZyZXF1ZW5jeSAoNjY3TUh6IEREUjIgZnJlcXVlbmN5KSBvbiB0aGUgS2F0bWFpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzNDJjZDA5N2JlMWU3YWZmZTgyZjQyYWIzZGEyMjA5NTlhNjk5ZTY0CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglGcmkgTWFyIDMwIDIyOjUyOjA5IDIwMDcgKzAyMDAKCiAgICBbUEFUQ0hdIENsZWFuIGluY2x1ZGUgZGVwZW5kZW5jZQoKY29tbWl0IDZmOTM0MjEwZmIyOTNmZGUyY2ZiNDI1MWM2ZDk2ZmRjNThiNmE5MDYKQXV0aG9yOiBNaWNoYWwgU2ltZWsgPG1vbnN0ckBtb25zdHIuZXU+CkRhdGU6CUZyaSBNYXIgMzAgMjI6NDI6NDUgMjAwNyArMDIwMAoKICAgIFtDTEVBTl0gUmVtb3ZlIGluZWZmaWNpZW50IFN1emFrdSBjb2RlCgpjb21taXQgNDMwZjFiMGY5YTY3MGMyZjEzZWFhNTJlNjZhMTBkYjk2ZGQzNjQ3ZApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyOCAxNTowMzoxNiAyMDA3ICswMjAwCgogICAgTWVyZ2Ugc29tZSBBTUNDIG1ha2UgdGFyZ2V0cyB0byBrZWVwIHRoZSB0b3AtbGV2ZWwgTWFrZWZpbGUgc21hbGxlcgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwYzc1YzlkODQzMDdhOWYxY2JlMWZmMGM0ZDg5MzdlZTNhOTY0NzVlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDI4IDE0OjUyOjEyIDIwMDcgKzAyMDAKCiAgICBpMmM6IEVuYWJsZSAib2xkIiBpMmMgY29tbWFuZHMgZXZlbiB3aGVuIENPTkZJR19JMkNfQ01EX1RSRUUgaXMgZGVmaW5lZAoKICAgIFRoZSAib2xkIiBpMmMgY29tbWFuZHMgKGlwcm9iZSwgaW1kLi4uKSBhcmUgbm93IGNvbXBpbGVkIGluIGFnYWluLAogICAgZXZlbiB3aGVuIHRoZSBpMmMgY29tbWFuZCB0cmVlIGlzIGVuYWJsZWQgdmlhIHRoZSBDT05GSUdfSTJDX0NNRF9UUkVFCiAgICBjb25maWcgb3B0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA1ZGEwNDhhZGY0NGJlYTVlM2I5NDA4MGQwMjkwM2MyZTNmZTdhYTRhCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglUdWUgTWFyIDI3IDAwOjMyOjE2IDIwMDcgKzAyMDAKCiAgICBQQVRDSDogUmVzb2x2ZSBHUEwgbGljZW5zZSBwcm9ibGVtCgpjb21taXQgYWUwMGJiNGIyOTQ0ZGM2NGE0ODVlZDcyYTE5NzU0YjExYWY3YzIyMwpBdXRob3I6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGVubmVlbm5lLmNvbT4KRGF0ZToJTW9uIE1hciAyNiAxMjowMzozNiAyMDA3ICswMjAwCgogICAgUFhBOiBweGEyN3ggVVNCIE9IQ0kgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFJvZG9sZm8gR2lvbWV0dGkgPGdpb21ldHRpQGxpbnV4Lml0PgoKY29tbWl0IGFlNzlmNjA2NzdjMjA4MzI2NTM1NjQ3ZGNiZDVjM2VjNDBkYmNiMGIKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglNb24gTWFyIDI2IDExOjIxOjA1IDIwMDcgKzAyMDAKCiAgICBVU0I6IHJlbW92ZSB0aGUgUzNDMjRYMF9tZXJnZSAjZGVmaW5lLCB3aGljaCB3YXMgaW50cm9kdWNlZCB3aGlsZQogICAgbWVyZ2luZyBPSENJIGRyaXZlcnMuCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCAxNzk4MDQ5NTIyZjU5NDAxM2FlYTI5NDU3ZDQ2Nzk0Mjk4YzZhZTE1CkF1dGhvcjogTWljaGFsIFNpbWVrIDxyb290QG1vbnN0ci5ldT4KRGF0ZToJTW9uIE1hciAyNiAwMTozOTowNyAyMDA3ICswMjAwCgogICAgU3VwcG9ydCBmb3IgWFVQVjJQIGJvYXJkCiAgICBSZXNldCBzdXBwb3J0CiAgICBCU1AgYXV0b2NvbmZpZyBzdXBwb3J0Cgpjb21taXQgMGQ5NzRkNTI5NzM0OTUwNGEyZGRmYTA5MzE0YmU1NzNiNWRmMzIwYQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE1hciAyNCAxNTo1NzowOSAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGQgNHh4IEdQSU8gZnVuY3Rpb25zCgogICAgVGhpcyBwYXRjaCBhZGRzIHNvbWUgNHh4IEdQSU8gZnVuY3Rpb25zLiBJdCBhbHNvIG1vdmVzIHNvbWUgb2YgdGhlCiAgICBjb21tb24gY29kZSBhbmQgZGVmaW5lcyBpbnRvIGEgY29tbW9uIDR4eCBHUElPIGhlYWRlciBmaWxlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyZGI2MzM2NThiYmYzNjZhYjBjOGRhZDdhMDcyN2UxZmIyYWU2YjExCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDI0IDE1OjU1OjU4IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFNtYWxsIFNlcXVvaWEgY2xlYW51cAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzY2I4NmYzZTQwZDJhODAzNTYxNzc0MzRhOTlmNzViYzhiYWE5Y2FmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgTWFyIDI0IDE1OjQ1OjM0IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIENsZWFuIHVwIDQwRVovQWNhZGlhIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIGNsZWFucyB1cCBhbGwgdGhlIG9wZW4gaXNzdWUgb2YgdGhlIHByZWxpbWluYXJ5CiAgICBBY2FkaWEgc3VwcG9ydC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNmViMWRmODM1MTkxZDhjZTRiODFkNWFmNDBmYThlMGZiZTc4ZTk5NwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBEZWMgMTIgMTE6MDI6MjAgMjAwNiAtMDYwMAoKICAgIEZpeCA4NjQxSFBDTiBwcm9ibGVtIHdpdGggbGQgdmVyc2lvbiAyLjE2CgogICAgKERvdCBvdXRzaWRlIHNlY3Rpb25zIHByb2JsZW0pLgoKICAgIFRoaXMgZml4IGlzIGluIHRoZSBzcGlyaXQgb2YgODA3ZDVkNzMxOTMzMGUzMzZhYjM0YTU2MjNjNWUwZDczYjg3ZDU0MC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDk5NjRhNGRkMGQ0ZWY1YTAzN2ZlYmFlYmYxYWE0OTRiMWE3Mjk5MWMKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgRGVjIDcgMTA6MzU6NTUgMjAwNiAtMDYwMAoKICAgIFNldCBSZXYgMi54IDg2eHggUElDIGluIG1peGVkIG1vZGUuCgogICAgUHJldmVudCBmYWxzZSBpbnRlcnJ1cHQgZnJvbSBoYW5naW5nIExpbnV4IGFzIE1TUltFRV0gaXMgc2V0CiAgICB0byBlbmFibGUgaW50ZXJydXB0cyBieSBjaGFuZ2luZyB0aGUgUElDIG91dCBvZiB0aGUgZGVmYXVsdAogICAgcGFzcyB0aHJvdWdoIG1vZGUgaW50byBtaXhlZCBtb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDVhNThhNzNjZWIwYTQwNTljNDJlZjY0Y2VkYmMxYTQ1ZTBhYWEwMGUKQXV0aG9yOiBKYXNvbiBKaW4gPGphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgRGVjIDcgMTA6MzI6MzUgMjAwNiAtMDYwMAoKICAgIEFkZCBmbGFzaCBjbWQgZnVuY3Rpb24gdG8gODY0MUhQQ04gcmFtYm9vdAoKICAgIEFsc28gZml4ZXMgc29tZSBjb21tbWFuZCBmb3IgODY0MSBIUENOIHJhbWJvb3QgY2FzZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPGphc29uLmppbkBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyY2NjZWFjYzA0YjAwOWQ5MjNhZmI3YzI2MTg5YmEyZjhhMmE1ZDQ2CkF1dGhvcjogRWQgU3dhcnRob3V0IDxlZC5zd2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IERlYyA3IDEwOjM0OjE0IDIwMDYgLTA2MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgODY0MSBSZXYgMiBzaWxpY29uLgoKICAgIFdpdGhvdXQgdGhpcyBwYXRjaCwgSSBhbSB1bmFibGUgdG8gZ2V0IHRvIHRoZSBwcm9tcHQgb24gcmV2IDIgc2lsaWNvbi4KICAgIE9ubHkgc2V0IGRkcmlvb3ZjciBmb3IgcmV2MS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBFZCBTd2FydGhvdXQ8ZWQuc3dhcnRob3V0QGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ0YmE0NjRiOTkwMDFmOGJkMWM0NTZhMWU5ZDU5NzI2MjUyZjcwN2EKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDIyIDAwOjEzOjEyIDIwMDcgKzAxMDAKCiAgICBDb2RlIGNsZWFudXAgLyByZS1pbnNlcnQgcHJldmlvdXMgQ29weXJpZ2h0IGVudHJpZXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCAyYThkZmUwODM1OWExYjY2MzQxOGIyZmFhMWRhMWQ3YmNlMzRkMzAyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyMSAyMzoyNjoxNSAyMDA3ICswMTAwCgogICAgQ29kZSBjbGVhbnVwLiBVcGRhdGUgQ0hBTkdFTE9HCgpjb21taXQgZTY2MTVlY2Y0ZWFmNGRkNTI2OTY5MzRhZWQ4ZjVjNjQ3NGNmZDI4NgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyMSAxNDo1NDoyOSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBGaXggZmlsZSBtb2RlIG9mIGluY2x1ZGUvY29uZmlncy9hY2FkaWEuaAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkNWY0NjE0YzkzNTBkOTMzM2U1NzUxMDBmYjI1MGFhYjc3NGQwMjU4CkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJV2VkIE1hciAyMSAxNDo0MTo0NiAyMDA3ICswMTAwCgogICAgU1BDMTkyMDogZml4IHNtYWxsIGNsb2NrIHJvdXRpbmcgYnVnCgogICAgU2lnbmVkLW9mZi1ieTogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KCmNvbW1pdCAxNmMwY2MxYzgyMDgxYTQ5M2FiODdjNTE5ODBiMjgzMzZjZTFiY2U4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTWFyIDIxIDEzOjM5OjU3IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBBTUNDIEFjYWRpYSAoNDA1RVopIGV2YWwgYm9hcmQgc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgbmV3IEFNQ0MgQWNhZGlhIGV2YWwgYm9hcmQuCgogICAgUGxlYXNlIG5vdGUgdGhhdCB0aGlzIEFjYWRpYS80MDVFWiBzdXBwb3J0IGlzIHN0aWxsIGluIGEgYmV0YSBzdGFnZS4KICAgIFN0aWxsIGxvdCdzIG9mIGNsZWFudXAgbmVlZGVkIGJ1dCB3ZSBuZWVkIGEgcHJlbGltaW5hcnkgcmVsZWFzZSBub3cuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGUwMWJkMjE4YjAwYWY3MzQ5OTMzMWExYTcwMTYyNWE4NTJjZDI4NmYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgMjEgMTM6Mzg6NTkgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQWRkIEFNQ0MgUFBDNDA1RVogc3VwcG9ydAoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgbmV3IEFNQ0MgNDA1RVogUFBDLiBJdCBpcyBpbgogICAgcHJlcGFyYXRpb24gZm9yIHRoZSBBTUNDIEFjYWRpYSBib2FyZCBzdXBwb3J0LgoKICAgIFBsZWFzZSBub3RlIHRoYXQgdGhpcyBBY2FkaWEvNDA1RVogc3VwcG9ydCBpcyBzdGlsbCBpbiBhIGJldGEgc3RhZ2UuCiAgICBTdGlsbCBsb3QncyBvZiBjbGVhbnVwIG5lZWRlZCBidXQgd2UgbmVlZCBhIHByZWxpbWluYXJ5IHJlbGVhc2Ugbm93LgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwN2U4MmNiMmUyODRhODkzZGY2NjkzZjJhMTMzN2FiMmM0N2JmNmExCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgTWFyIDIxIDA4OjQ1OjE3IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFRRTTgyNzI6IGRvbnQgY2hhbmdlIHRoZSBiaXRzIGdpdmVuIGZyb20gdGhlIEhSQ1cKCQkgICAgIGZvciB0aGUgU0lVTUNSIGFuZCBCQ1IgUmVnaXN0ZXIuCgkJICAgICBGaXggdGhlIGNhbGN1bGF0aW9uIGZvciB0aGUgRUVwcm9tIFNpemUKCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA2NTQ1ODk4NzNkYmFmY2YxMDRkZmYxMzNjZTBkMDNhNDUwNmU5Y2MzCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJVHVlIE1hciAyMCAxODoxNjoyNCAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gQWRkIEJGNTYxIEVaS0lUIGJvYXJkIHN1cHBvcnQKCmNvbW1pdCBhNjE1NGZkMWNmZDAyMGY2ZGE4NTI3ZTAzNjViMTAyMGExMWE3MWQwCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJTW9uIE1hciAxOSAyMjo1NTo1OCAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gbWlub3IgY2xlYW51cAoKY29tbWl0IDM4OWI2YmI1MGY3NDViZjUwMzhjZTAzMDMwMGQ4YTg1MTJlOTZmNzkKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglNb24gTWFyIDE5IDEzOjEwOjA4IDIwMDcgKzAxMDAKCiAgICBSZW1vdmUgb2Jzb2xldGVkIFBPU1QgZmlsZXMuCgogICAgU2lnbmVkLW9mZi1ieTogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KCmNvbW1pdCA4ZTcwOWJiYjI2MzZiNTY3MGE4ZjJiNTc1ZTEzOGViMWY1NTc3M2Y2CkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJTW9uIE1hciAxOSAwMToyNjoxMSAyMDA3ICswODAwCgogICAgW1BBVENIXSBBZGQgZmxhc2ggY2hpcCBNMjlXMzIwRVQvQiBzdXBwb3J0Cgpjb21taXQgMjZiZjdkZWNhMzY0YTViMzNmMzllOGYxNGRkZDNmNDA4MTM0NTAxNQpBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CU1vbiBNYXIgMTkgMDE6MjQ6NTIgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIEFkZCBCRjUzNyBzdGFtcCBib2FyZCBzdXBwb3J0Cgpjb21taXQgODQyM2U1ZTMxYTcyMzVkMDVhNDgyNjI3MzE1ZmIxMWQ0OWMxN2JkNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIE1hciAxNiAyMToxMTo0MiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVc2UgZHluYW1pYyBTRFJBTSBUTEIgc2V0dXAgb24gQU1DQyBFYm9ueSBldmFsIGJvYXJkCgogICAgRGVmaW5lIENPTkZJR19QUk9HX1NEUkFNX1RMQiBzbyB0aGF0IHRoZSBUTEIgZW50cmllcyBmb3IgdGhlCiAgICBERFIgbWVtb3J5IGFyZSBkeW5hbWljYWxseSBwcm9ncmFtbWVkIG1hdGNoaW5nIHRoZSB0b3RhbCBzaXplCiAgICBvZiB0aGUgZXF1aXBwZWQgbWVtb3J5IChESU1NIG1vZHVsZXMpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3NmQxNDY2ZjkxOGI4ODFjZGEyZDI1OTI1NDc2MWU3Mzg4NTA5M2MyCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVR1ZSBNYXIgMTMgMTM6Mzg6MDUgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gcmVuYW1lZCBlbnZpcm9ubWVudCB2YXJpYWJsZSAnYWRkY29uJyB0byAnYWRkY29ucycgZm9yIFBDSTQwNQoJICAgIGJvYXJkcyBpbiB0ZXJtcyBvZiB1bmlmaWNhdGlvbi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBhNzA5MGI5OTNkM2Q0ZDIyMjFhYzNmMzNlNmNiMWQxYjJjY2M2YmYwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIE1hciAxMyAxNjowNTo1NSAyMDA3ICswMTAwCgogICAgTWFrZSBTQzMgYm9hcmQgYnVpbGQgd2l0aCAnbWFrZSBPPSc7IHVzZSAnYWRkY29ucycgY29uc2lzdGVudGx5CiAgICAoU0MzIGFuZCBKdXBpdGVyIHVzZWQgdG8gdXNlICdhZGRjb24nIGluc3RlYWQpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgd2RAZGVueC5kZQoKY29tbWl0IDg1MDJlMzBhMjhlNDkyYzc1NmVhMmQ3ZGYwYWNlMDI2Mzg4ZmNlNGIKQXV0aG9yOiBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgMTMgMDk6NDA6NTkgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gdXBkYXRlIGJvYXJkIGNvbmZpZyBmb3IganVwaXRlciBCb2FyZDoKCSAgICBhZGRlZCBIdXNoIFNoZWxsLAoJCSAgQ09ORklHX0NNRExJTkVfRURJVElORywKCQkgIENGR19FTlZfQUREUl9SRURVTkQgYWN0aXZhdGVkCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgMGQ5M2RlMTE0NDkzOTBhNTk4NGIwMjM2YzM2MTJlNTBmNmRiYjdlOApBdXRob3I6IEF1YnJleSBMaSA8YXVicmV5LmFkaUBnbWFpbC5jb20+CkRhdGU6CU1vbiBNYXIgMTIgMTI6MTE6NTUgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1bUEFUQ0hdIG1pbm9yIGNsZWFudXAKCmNvbW1pdCBiZmE1NzU0YTU4NDc3YWM5MTdkMjE1MjdjZDBmMDc5ZDg3Y2YxODhlCkF1dGhvcjogQXVicmV5IExpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJTW9uIE1hciAxMiAwMTo0MjowNiAyMDA3ICswODAwCgogICAgW0JsYWNrZmluXVtQQVRDSF0gRml4IEJVSUxEX0RJUiBvcHRpb24gb2YgTUFLRUFMTCBidWlsZGluZyBpc3N1ZQoKY29tbWl0IDg0NDBiYjE0NTgxYTI5NDM3NWMzNGI5MWI0MjUxMmY5NzUzZDExMzAKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglNb24gTWFyIDEyIDAwOjI1OjE0IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBjb2RlIGNsZWFudXAKCmNvbW1pdCBjZmM2NzExNmE3MDZmZDE4YjhmNmE5YzExYTE2NzUzYzU2MjZkNjg5CkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTdW4gTWFyIDExIDEzOjQ4OjI0IDIwMDcgKzAxMDAKCiAgICBbTWljcm9ibGF6ZV1bUEFUQ0hdIHBhcnQgMgogICAgdGltZXIgc3VwcG9ydAogICAgaW50ZXJydXB0IGNvbnRyb2xsZXIgc3VwcG9ydAogICAgZmxhc2ggc3VwcG9ydAogICAgZXRoZXJuZXQgc3VwcG9ydAogICAgY2FjaGUgc3VwcG9ydAogICAgYm9hcmQgaW5mb3JtYXRpb24gc3VwcG9ydAogICAgZW52IHN1cHBvcnQKICAgIGJvb3RpbmcgaW1hZ2Ugc3VwcG9ydAoKICAgIGFkZGluZyBzdXBwb3J0IGZvciBYaWxpbnggTUw0MDEKCmNvbW1pdCA3NjMxNmEzMThkZTkxZjYxODRlN2MyMmExMGUwMmQyNzVhZGUyNDQxCkF1dGhvcjogTWljaGFsIFNpbWVrIDxtb25zdHJAbW9uc3RyLmV1PgpEYXRlOglTdW4gTWFyIDExIDEzOjQyOjU4IDIwMDcgKzAxMDAKCiAgICBbTWljcm9ibGF6ZV1bUEFUQ0hdCiAgICB0aW1lciBzdXBwb3J0CiAgICBpbnRlcnJ1cHQgY29udHJvbGxlciBzdXBwb3J0CiAgICBmbGFzaCBzdXBwb3J0CiAgICBldGhlcm5ldCBzdXBwb3J0CiAgICBjYWNoZSBzdXBwb3J0CiAgICBib2FyZCBpbmZvcm1hdGlvbiBzdXBwb3J0CiAgICBlbnYgc3VwcG9ydAogICAgYm9vdGluZyBpbWFnZSBzdXBwb3J0CgogICAgYWRkaW5nIHN1cHBvcnQgZm9yIFhpbGlueCBNTDQwMQoKY29tbWl0IDhkYjEzZDYzMTU3ODExYzgzOWQxNWEzMTNkOWYyZDJmNWZkMTBhZjMKQXV0aG9yOiBBdWJyZXkgTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglTYXQgTWFyIDEwIDIzOjQ5OjI5IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENIXSBjb2RlIGNsZWFudXAKCmNvbW1pdCBlZjI2YTA4ZmVmOTI4YjdiYzExYWUyYzEwOWU2MzhkYzNhMDE2ZDkxCkF1dGhvcjogQXVicmV5LkxpIDxhdWJyZXkuYWRpQGdtYWlsLmNvbT4KRGF0ZToJRnJpIE1hciA5IDEzOjQwOjU2IDIwMDcgKzA4MDAKCiAgICBbQmxhY2tmaW5dW1BBVENILTIvMl0gQ29tbW9uIGZpbGVzIGNoYW5nZWQgdG8gc3VwcG9ydCBiZjUzMyBwbGF0Zm9ybQoKY29tbWl0IDNmMDYwNmFkMGI1NjM5ZjdmMjI4NDhmZTViNDU3NGU3NTRkMDQ3MGYKQXV0aG9yOiBBdWJyZXkuTGkgPGF1YnJleS5hZGlAZ21haWwuY29tPgpEYXRlOglGcmkgTWFyIDkgMTM6Mzg6NDQgMjAwNyArMDgwMAoKICAgIFtCbGFja2Zpbl1QQVRDSC0xLzJdOiBSZW1vdmUgb2Jzb2xldGUgYmxhY2tmaW4gcG9ydCBhbmQgYWRkIGJmNTMzIHBsYXRmb3JtIHN1cHBvcnQKCmNvbW1pdCA5OTI0MjNhYjQzYzJiY2Y2YjcwNDg1M2JkMDBhZjc3NDUwOTE1ZTIwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDggMjM6MDA6MDggMjAwNyArMDEwMAoKICAgIHBwYzR4eDogRml4IGZpbGUgbW9kZSBvZiBzZXF1b2lhLmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZWI5MmY2MTM1NTY4MDBmNzQ4MzY2NmRiMDlkOWEyMzdhZDkxMWQ0YQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUaHUgTWFyIDggMjI6NTI6NTEgMjAwNyArMDEwMAoKICAgIE1pbm9yIGNsZWFudXAuCgpjb21taXQgOGNlMTZmNTVjN2I5NzUyYWYzZDhiZWQ4NDUyMWFlYzUzMzdlMmRlMQpBdXRob3I6IEpvaG4gT3RrZW4gam9obkBzb2Z0YWR2YW5jZXMuY29tIDxqb2huQHNvZnRhZHZhbmNlcy5jb20+CkRhdGU6CVRodSBNYXIgOCAwOTozOTo0OCAyMDA3IC0wNjAwCgogICAgcHBjNHh4OiBDbGVhciBTZXF1b2lhL1JhaW5pZXIgc2VjdXJpdHkgZW5naW5lIHJlc2V0IGJpdHMKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2huIE90a2VuIGpvaG5Ac29mdGFkdmFuY2VzLmNvbSA8am9obkBzb2Z0YWR2YW5jZXMuY29tPgoKY29tbWl0IDY1MGEzMzBkZDI1MzkxMzBjOGMzMjQ3OTFlMmY5Zjc1YWVkNzlkNGUKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVGh1IE1hciA4IDE2OjI2OjUyIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEkyQzogYWRkIHNvbWUgbW9yZSBTUEQgZWVwcm9tIGRlY29kaW5nIGZvciBERFIyIG1vZHVsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBkOWZjNzAzMjQ2ODQwYzRiMjY4ZGViZjQ4YzMzNGJhNTVjNTk3ZGMwCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBNYXIgOCAxNjoyNTo0NyAyMDA3ICswMTAwCgogICAgW1BBVENIXSBJMkM6IGRpc2FibGUgZmxhdCBpMmMgY29tbWFuZHMgd2hlbiBDT05GSUdfSTJDX0NNRF9UUkVFIGlzIGRlZmluZWQKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBjZWQ1YjkwMjkwNDMzOTczNDhjZGM4OGUwY2ZjZDZiMWY2MjkyNTBiCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVRodSBNYXIgOCAxNjoyMzoxMSAyMDA3ICswMTAwCgogICAgW1BBVENIXSA0eHg6IGFsbG93IENPTkZJR19JMkNfQ01EX1RSRUUgd2l0aG91dCBDT05GSUdfSTJDX01VTFRJX0JVUwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IGQ4YThlYTVjNDc2ZDM3MDA2ZmM3Zjg1YjdmOTAzMTQyNzk1YzhiMTQKQXV0aG9yOiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KRGF0ZToJVGh1IE1hciA4IDE2OjIwOjMyIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEkyQzogQWRkIG1pc3NpbmcgZGVmYXVsdCBDRkdfU1BEX0JVU19OVU0KCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGlhcyBGdWNocyA8bWF0dGhpYXMuZnVjaHNAZXNkLWVsZWN0cm9uaWNzLmNvbT4KCmNvbW1pdCBmOWZjNmE1ODUyYTYzMzU4NDA4ODJmYTIxMTE5MjUwMTBlZWExYWJlCkF1dGhvcjogTWF0dGhpYXMgRnVjaHMgPG1hdHRoaWFzLmZ1Y2hzQGVzZC1lbGVjdHJvbmljcy5jb20+CkRhdGU6CVdlZCBNYXIgNyAxNTozMjowMSAyMDA3ICswMTAwCgogICAgZml4ZWQgZXRoZXJuZXQgcGh5IGNvbmZpZ3VyYXRpb24gZm9yIHBsdTQwNSBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEZ1Y2hzIDxtYXR0aGlhcy5mdWNoc0Blc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDc2OTEwNGM5MzU2NTk0ZGViMjA5MmUyMDRhMzljMDViMzMyMDJkNmMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IE1hciA4IDIxOjQ5OjI3IDIwMDcgKzAxMDAKCiAgICBNaW5vciBjbGVhbnVwCgpjb21taXQgMDBjZGI0Y2U1ZTFiNDIyNDhlN2U2NTIyYWQwZGEzNDIxYjk4OGFmYQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1hciA4IDEwOjEzOjE2IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBBTUNDIEx1YW4gNDQwU1AgZXZhbCBib2FyZCBzdXBwb3J0CgogICAgVGhlIEFNQ0MgTHVhbiBub3cgdXNlcyB0aGUgY29tbW9uIDQ0MFNQKGUpIEREUiBTUEQgY29kZSBmb3IgRERSCiAgICBpbml0aXRpYWxpeml0aW9uLiBUaGlzIGluY2x1ZGVzIEREUiBhdXRvIGNhbGlicmF0aW9uIGFuZCBzdXBwb3J0CiAgICBmb3IgZGlmZmVyZW50IERJTU0gbW9kdWxlcywgaW5zdGVhZCBvZiB0aGUgZml4ZWQgc2V0dXAgdXNlZCBpbgogICAgdGhlIGVhcmxpZXIgdmVyc2lvbi4KCiAgICBUaGlzIHBhdGNoIGFsc28gZW5hYmxlcyB0aGUgY2FjaGUgaW4gRkxBU0ggZm9yIHRoZSBzdGFydHVwCiAgICBwaGFzZSBvZiBVLUJvb3QgKHdoaWxlIHJ1bm5pbmcgZnJvbSBGTEFTSCkuIEFmdGVyIHJlbG9jYXRpbmcgdG8KICAgIFNEUkFNIHRoZSBjYWNoZSBpcyBkaXNhYmxlZCBhZ2Fpbi4gVGhpcyB3aWxsIHNwZWVkIHVwIHRoZSBib290CiAgICBwcm9jZXNzLCBlc3BlY2lhbGx5IHRoZSBTRFJBTSBzZXR1cCwgc2luY2UgdGhlcmUgYXJlIHNvbWUgbG9vcHMKICAgIGZvciBtZW1vcnkgdGVzdGluZyAoYXV0byBjYWxpYnJhdGlvbikuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDJmNWRmNDczNTE5MTBhMjkzNmM3NzQxY2YxMTE4NTU4MjkyMDA5NDMKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgOCAxMDoxMDoxOCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgQU1DQyBZdWNjYSA0NDBTUGUgZXZhbCBib2FyZCBzdXBwb3J0CgogICAgVGhlIEFNQ0MgWXVjY2Egbm93IHVzZXMgdGhlIGNvbW1vbiA0NDBTUChlKSBERFIgU1BEIGNvZGUgZm9yIEREUgogICAgaW5pdGl0aWFsaXppdGlvbi4gVGhpcyBpbmNsdWRlcyBERFIgYXV0byBjYWxpYnJhdGlvbiBhbmQgc3VwcG9ydAogICAgZm9yIGRpZmZlcmVudCBESU1NIG1vZHVsZXMsIGluc3RlYWQgb2YgdGhlIGZpeGVkIHNldHVwIHVzZWQgaW4KICAgIHRoZSBlYXJsaWVyIHZlcnNpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDI3MjFhNjhhOWVhOTFmMWU0OTQ2NDljZTY4YjI1NzcyNjFmNTc4ZTIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgOCAxMDowNzoxOCAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBTbWFsbCBBTUNDIEthdG1haSA0NDBTUGUgdXBkYXRlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGRmMjk0NDk3NDc5YjFkY2E2ZGQ4NjMxOGIyYTkxMmY3MmZlZGUwZGYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBNYXIgOCAxMDowNjowOSAyMDA3ICswMTAwCgogICAgcHBjNHh4OiBVcGRhdGUgNDQwU1AvNDQwU1BlIEREUiBTUEQgc2V0dXAgY29kZSB0byBzdXBwb3J0IDQ0MFNQCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDgzODUzMTc4YmQzNmJjYTZmMGY4ZjEzMzE0NzY2MjBjODRhNTg3ZmMKQXV0aG9yOiBFZCBTd2FydGhvdXQgPEVkLlN3YXJ0aG91dEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWFyIDcgMTI6MTQ6NTAgMjAwNyAtMDYwMAoKICAgIG5ldCAtIFN1cHBvcnQgcGluZyByZXBseSB3aGVuIHByb2Nlc3NpbmcgbmV0LWxvb3AKCiAgICBBZGQgSUNNUF9FQ0hPX1JFUVVFU1QgcGFja2V0IHN1cHBvcnQgYnkgcmVzcG9uZGluZyB3aXRoIGEgSUNNUF9FQ0hPX1JFUExZLgoKICAgIFRoaXMgcGVybWl0cyB0aGUgcGluZyBjb21tYW5kIHRvIHRlc3QgdGhlIHBoeSBpbnRlcmZhY2Ugd2hlbiB0aGUgcGh5CiAgICBpcyBwdXQgaW4gbG9vcGJhY2sgbW9kZSAodHlwaWNhbGx5IGJ5IHNldHRpbmcgcmVnaXN0ZXIgMCBiaXQgMTQpLgoKICAgIEl0IGFsc28gYWxsb3dzIHRoZSBwb3J0IHRvIHJlc3BvbmQgdG8gYW4gZXh0ZXJuYWwgcGluZyB3aGVuIHUtYm9vdCBpcwogICAgcHJvY2Vzc2luZyBzb21lIG90aGVyIG5ldCBjb21tYW5kIChzdWNoIGFzIHRmdHApLiAgVGhpcyBpcyB1c2VmdWwgd2hlbgogICAgdGZ0cCBhcHBlYXJzIHRvIGhhbmcuCgogICAgU2lnbmVkLW9mZi1ieTogRWQgU3dhcnRob3V0IDxFZC5Td2FydGhvdXRAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IGZhMWFlZjE1YmNkNDc3MzY2ODdiZTFhZjU0NDUwNmU5MGZiYTU0NWQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgNyAxNjo0MzowMCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVc2UgZHluYW1pYyBTRFJBTSBUTEIgc2V0dXAgb24gQU1DQyBPY290ZWEgZXZhbCBib2FyZAoKICAgIERlZmluZSBDT05GSUdfUFJPR19TRFJBTV9UTEIgc28gdGhhdCB0aGUgVExCIGVudHJpZXMgZm9yIHRoZQogICAgRERSIG1lbW9yeSBhcmUgZHluYW1pY2FsbHkgcHJvZ3JhbW1lZCBtYXRjaGluZyB0aGUgdG90YWwgc2l6ZQogICAgb2YgdGhlIGVxdWlwcGVkIG1lbW9yeSAoRElNTSBtb2R1bGVzKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZTJlYmU2OTY4MTg5MzllMmI5NzQ2MjhiZTljOTIxZWEzZmU5ZGUxMwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE1hciA3IDE2OjM5OjM2IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEZpeCBBTUNDIDQ0eCBTUEQgU0RSQU0gaW5pdCBjb2RlIHRvIHN1cHBvcnQgMiBESU1NJ3MKCiAgICBUaGlzIHBhdGNoIGZpeGVzIGEgcHJvYmxlbSB0aGF0IG9jY3VycyB3aGVuIDIgRElNTSdzIGFyZQogICAgdXNlZC4gVGhpcyBwcm9ibGVtIHdhcyBmaXJzdCBzcG90dGVkIGFuZCBmaXhlZCBieSBHZXJhbGQgSmFja3NvbgogICAgPGdlcmFsZC5qYWNrc29uQHJlYW9uaXhzZWN1cml0eS5jb20+IGJ1dCB0aGlzIHBhdGNoIGZpeGVzIHRoZQogICAgcHJvYmxlbSBpbiBhIGxpdHRsZSBtb3JlIGNsZXZlciB3YXkuCgogICAgVGhpcyBwYXRjaCBhbHNvIGFkZHMgdGhlIG5pY2UgZnVuY3Rpb25hbGl0eSB0byBkeW5hbWljYWxseQogICAgY3JlYXRlIHRoZSBUTEIgZW50cmllcyBmb3IgdGhlIFNEUkFNICh0bGIuYykuIFNvIHdlIHNob3VsZAogICAgbmV2ZXIgcnVuIGludG8gc3VjaCBwcm9ibGVtcyB3aXRoIHdyb25nICh0b28gc2hvcnQpIFRMQgogICAgaW5pdGlhbGl6YXRpb24gYWdhaW4gb24gdGhlc2UgcGxhdGZvcm1zLgoKICAgIEFzIHRoaXMgZmVhdHVyZSBpcyBuZXcgdG8gdGhlICJvbGQiIDQ0eCBTUEQgRERSIGRyaXZlciwgaXQKICAgIGhhcyB0byBiZSBlbmFibGVkIHZpYSB0aGUgQ09ORklHX1BST0dfU0RSQU1fVExCIGRlZmluZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMzkyMTg0MzM5ODM0MTdiOWRmMDg3OTc2YTc5ZTNmODBkZDVlODNkNgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+CkRhdGU6CVdlZCBNYXIgNyAxNjozMzo0NCAyMDA3ICswMTAwCgogICAgVUMxMDE6IGZpeCBjb21waWxlciB3YXJuaW5ncwoKY29tbWl0IDhkN2UyNzMyMjIxYmMyZDY0ZGYxNGY3MDBjNjRjMjNlMGE0YzNkY2UKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJV2VkIE1hciA3IDE2OjE5OjQ2IDIwMDcgKzAxMDAKCiAgICBITUkxMDAxOiBmaXggYnVpbGQgZXJyb3IsIGNsZWFudXAgY29tcGlsZXIgd2FybmluZ3MuCgpjb21taXQgYWQ1YmI0NTFhZGU1NTJjNDRiZWY5MTE5ZDkwNzkyOWViYzJjMTI2ZgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgTWFyIDYgMTg6MDg6NDMgMjAwNyArMDEwMAoKICAgIFJlc3RydWN0dXJlIFBPU1QgZGlyZWN0b3J5IHRvIHN1cHBvcnQgb2Ygb3RoZXIgQ1BVcywgYm9hcmRzLCBldGMuCgpjb21taXQgYTUyODRlZmQxMjU5Njc2NzViMmU5YzZlZjdiOTU4MzIyNjhhZDM2MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgTWFyIDYgMTg6MDE6NDcgMjAwNyArMDEwMAoKICAgIEZpeCBIT1NUQVJDSCBoYW5kbGluZy4KICAgIFBhdGNoIGJ5IE1pa2UgRnJ5c2luZ2VyLCBNYXIgMDUgMjAwNwoKY29tbWl0IDA3YjdiMDAzN2FhYzUxMDI5Mzk5MTdkN2NiZTU2MWI1YzBkNWFhNDQKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXIgNiAwNzo0NzowNCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBTcGVlZCBvcHRpbWl6YXRpb24gb2YgQU1DQyBTZXF1b2lhL1JhaW5pZXIgRERSMiBzZXR1cAoKICAgIEFzIHByb3ZpZGVkIGJ5IHRoZSBBTUNDIGFwcGxpY2F0aW9ucyB0ZWFtLCB0aGlzIHBhdGNoIG9wdGltaXplcyB0aGUKICAgIEREUjIgc2V0dXAgZm9yIDE2Nk1IeiBidXMgc3BlZWQuIFRoZSB2YWx1ZXMgcHJvdmlkZWQgYXJlIGFsc28gc2F2ZQogICAgdG8gdXNlIG9uIGEgIm5vcm1hbCIgMTMzTUh6IFBMQiBidXMgc3lzdGVtLiBPbmx5IHRoZSByZWZyZXNoIGNvdW50ZXIKICAgIHNldHVwIGhhcyB0byBiZSBhZGp1c3RlZCBhcyBkb25lIGluIHRoaXMgcGF0Y2guCgogICAgRm9yIHRoaXMgdGhlIE5BTkQgYm9vdGluZyB2ZXJzaW9uIGhhZCB0byBpbmNsdWRlIHRoZSAic3BlZWQuYyIgZmlsZQogICAgZnJvbSB0aGUgY3B1L3BwYzR4eCBkaXJlY3RvcnkuIFdpdGggdGhpcyBhZGRpdGlvbiB0aGUgTkFORCBTUEwgaW1hZ2UKICAgIHdpbGwganVzdCBmaXQgaW50byB0aGUgNGtieXRlcyBvZiBwcm9ncmFtIHNwYWNlLiBnY2MgdmVyc2lvbiA0LnggYXMKICAgIHByb3ZpZGVkIHdpdGggRUxESyA0LnggaXMgbmVlZGVkIHRvIGdlbmVyYXRlIHRoaXMgb3B0aW1pemVkIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDY0N2QzYzNlZWQwZGExZDE1MDVlZWNhYmUwYjBmYWI5NmY5NTZlNjgKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJU3VuIE1hciA0IDAxOjM2OjA1IDIwMDcgKzAxMDAKCiAgICBTb21lIGNvZGUgY2xlYW51cC4KCmNvbW1pdCA3ODFlMDI2YzhhYTZmN2U5ZWI1ZjBlNzJjYzRkMjA5NzEyMTliMTQ4CkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAyOCAwMDowMjowNCAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogZml4IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdmdF9nZXRfcHJvcCcgd2FybmluZ3MKCiAgICAoY2hlcnJ5IHBpY2tlZCBmcm9tIGM1YmYxM2IwMjI4NGMzMjA0YTcyMzU2NmE5YmFiNzAwZTUwNTk2NTkgY29tbWl0KQoKY29tbWl0IDRmZWFiNGRlN2JmYzJjYjJmZWQzNmFkNzZmOTNjM2E2OTY1OWJiYWYKQXV0aG9yOiBLdW1hciBHYWxhIDxnYWxha0BrZXJuZWwuY3Jhc2hpbmcub3JnPgpEYXRlOglUdWUgRmViIDI3IDIzOjUxOjQyIDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBGaXggY29uZmlnIG9mIEFyYml0ZXIsIFN5c3RlbSBQcmlvcml0eSwgYW5kIENsb2NrIE1vZGUKCiAgICBUaGUgY29uZmlnIHZhbHVlIGZvcjoKICAgICogQ0ZHX0FDUl9QSVBFX0RFUAogICAgKiBDRkdfQUNSX1JQVENOVAogICAgKiBDRkdfU1BDUl9UU0VDMUVQCiAgICAqIENGR19TUENSX1RTRUMyRVAKICAgICogQ0ZHX1NDQ1JfVFNFQzFDTQogICAgKiBDRkdfU0NDUl9UU0VDMkNNCgogICAgV2VyZSBub3QgYmVpbmcgdXNlZCB3aGVuIHNldHRpbmcgdGhlIGFwcHJvcHJpYXRlIHJlZ2lzdGVyCgogICAgQWRkZWQ6CiAgICAqIENGR19TQ0NSX1VTQk1QSENNCiAgICAqIENGR19TQ0NSX1VTQkRSQ00KICAgICogQ0ZHX1NDQ1JfUENJQ00KICAgICogQ0ZHX1NDQ1JfRU5DQ00KCiAgICBUbyBhbGxvdyBmdWxsIGNvbmZpZyBvZiB0aGUgU0NDUi4KCiAgICBBbHNvIHJlbW92ZWQgcmFuZG9tIENGR19TQ0NSIHNldHRpbmdzIGluIE1QQzgzNDlFTURTLCBUUU04MzR4LCBhbmQgc2JjODM0OQogICAgdGhhdCB3ZXJlIGp1c3QgYm9ndXMuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBkNTFiM2NmMzcxY2Q0NDEwMzA0NjBlZjE5ZDM2YjI5MjRjMzYxYjFhCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEZlYiAyMiAyMDowNjo1NyAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogdXBkYXRlIFtsb2NhbC1dbWFjLWFkZHJlc3MgcHJvcGVydGllcyBvbiBVRUMgYmFzZWQgZGV2aWNlcwoKICAgIDgzNjAgYW5kIDgzMnggd2VyZW4ndCB1cGRhdGluZyB0aGVpciBbbG9jYWwtXW1hYy1hZGRyZXNzCiAgICBwcm9wZXJ0aWVzLiBUaGlzIHBhdGNoIGZpeGVzIHRoYXQuCgogICAgU2lnbmVkLW9mZi1ieTogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2MWY0ZjkxMmFjYmU2MDc3NmM1ZTAwZGYxZWM5NDA5NGNlNjcyOTU3CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEZlYiAxMyAxMDo0MTo0MiAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogd3JpdGUgTUFDIGFkZHJlc3MgdG8gbWFjLWFkZHJlc3MgYW5kIGxvY2FsLW1hYy1hZGRyZXNzCgogICAgU29tZSBkZXZpY2UgdHJlZXMgaGF2ZSBhIG1hYy1hZGRyZXNzIHByb3BlcnR5LCBzb21lIGhhdmUgbG9jYWwtbWFjLWFkZHJlc3MsCiAgICBhbmQgc29tZSBoYXZlIGJvdGguICBUbyBzdXBwb3J0IGFsbCBvZiB0aGVzZSBkZXZpY2UgdHJlZXMsIHRoaXMgcGF0Y2gKICAgIHVwZGF0ZXMgZnRwX2NwdV9zZXR1cCgpIHRvIHdyaXRlIHRoZSBNQUMgYWRkcmVzcyB0byBtYWMtYWRkcmVzcyBpZiBpdCBleGlzdHMuCiAgICBUaGlzIGZ1bmN0aW9uIGFscmVhZHkgdXBkYXRlcyBsb2NhbC1tYWMtYWRkcmVzcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDIyZDcxYTcxZjU3ZmQ1ZDM4YjI3YWMzODQ4ZTUwZDc5MDM2MGE1OTgKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgRmViIDI3IDE4OjQxOjA4IDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBhZGQgY29tbWFuZCBsaW5lIGVkaXRpbmcgYnkgZGVmYXVsdAoKY29tbWl0IDNmYzBiZDE1OTEwM2I1MzZlMWM1NGM2ZjQ0NTdhMDliM2FiYTY2Y2EKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgRmViIDE0IDE5OjUwOjUzIDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBEaXNhYmxlIEcxVFhDTEssIEcyVFhDTEsgaC93IGJ1ZmZlcnMKCiAgICBEaXNhYmxlIEcxVFhDTEssIEcyVFhDTEsgaC93IGJ1ZmZlcnMuIFRoaXMgcGF0Y2gKICAgIGZpeGVzIGEgbmV0d29ya2luZyB0aW1lb3V0IGlzc3VlIHdpdGggTVBDODM2MEVBIChSZXYuMikgUEJzLgoKICAgIFZlcmlmaWVkIG9uIFJldi4gMS4xLCBSZXYuIDEuMiwgYW5kIFJldi4gMi4wIGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogRW1pbGlhbiBNZWR2ZSA8RW1pbGlhbi5NZWR2ZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ2MTg1M2NmMjQ3MmUwYjhiY2JkMTMxNDYxYTkzZDFjNDlmZjBjMWYKQXV0aG9yOiBYaWUgWGlhb2JvIDxyNjMwNjFAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAxNCAxODoyNzoxNyAyMDA3ICswODAwCgogICAgbXBjODN4eDogQWRkIEREUjIgY29udHJvbGxlciBmaXhlZC9TUEQgSW5pdCBmb3IgTVBDODN4eAoKICAgIFRoZSBjb2RlIHN1cHBseSBmaXhlZCBhbmQgU1BEIGluaXRpYWxpemF0aW9uIGZvciBNUEM4M3h4IEREUjIgQ29udHJvbGxlci4KICAgIGl0IHBhc3MgRERSL0REUjIgY29tcGxpYW5jZSB0ZXN0cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBYaWUgWGlhb2JvIDxYLlhpZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGIxMTBmNDBiZDE4MGM2YjU2MDI3NjU4OWJlZWRmNzUzZTk3YzQ2Y2UKQXV0aG9yOiBYaWUgWGlhb2JvIDxyNjMwNjFAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAxNCAxODoyNzowNiAyMDA3ICswODAwCgogICAgbXBjODN4eDogQWRkIHRoZSBjcHUgc3BlY2lmaWMgY29kZSBmb3IgTVBDODM2MEUgcmV2Mi4wIE1EUwoKICAgIE1QQzgzNjBFIHJldjIuMCBoYXZlIG5ldyBzcHJpZHIsYW5kIFBWUiB2YWx1ZSwKICAgIFRoZSBNRFMgYm9hcmQgZm9yIE1QQzgzNjBFIHJldjIuMCBoYXMgMzJNIGJ5dGVzIEZsYXNoIGFuZCAyNTZNIEREUjIgRElNTS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBYaWUgWGlhb2JvIDxYLlhpZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhkMTcyYzBmMGQ4NTk5OGEyNTZhOTViNzQ1OWE1NDAzYTMwMzgwZWQKQXV0aG9yOiBYaWUgWGlhb2JvIDxyNjMwNjFAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEZlYiAxNCAxODoyNjo0NCAyMDA3ICswODAwCgogICAgbXBjODN4eDogQWRkIHRoZSBjcHUgYW5kIGJvYXJkIHNwZWNpZmljIGNvZGUgZm9yIE1QQzgzNDlFIHJldjMuMSBNRFMKCiAgICBNUEM4MzQ5RSByZXYzLjEgaGF2ZSBuZXcgc3ByaWRyLGFuZCBQVlIgdmFsdWUsCiAgICBUaGUgTURTIGJvYXJkIGZvciBNUEM4MzQ5RSByZXYzLjEgaGFzIDMyTSBieXRlcyBGbGFzaCBhbmQgMjU2TSBERFIyIERJTU0uCgogICAgU2lnbmVkLW9mZi1ieTogWGllIFhpYW9ibzxYLlhpZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGY2ZjVmNzA5ZTVjOGU0NTY0YzRkZmVlY2ZkZjIyNzkyNDRmOWM4M2IKQXV0aG9yOiBKb2FraW0gVGplcm5sdW5kIDxqb2FraW0udGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KRGF0ZToJV2VkIEphbiAzMSAxMTowNDoxOSAyMDA3ICswMTAwCgogICAgbXBjODN4eDogRml4IGVtcHR5IGkyYyByZWFkcy93cml0ZXMgaW4gZnNsX2kyYy5jCgogICAgRml4IGVtcHR5IGkyYyByZWFkcy93cml0ZXMsIGkyY193cml0ZSgweDUwLCAweDAwLCAwLCBOVUxMLCAwKQogICAgd2hpY2ggaXMgdXNlZCB0byBzZSBpZiBhbiBzbGF2ZSB3aWxsIEFDSyBhZnRlciByZWNlaXZpbmcgaXRzIGFkZHJlc3MuCgogICAgQ29ycmVjdCBpMmMgcHJvYmluZyB0byB1c2UgdGhpcyBtZXRob2QgYXMgdGhlIG9sZCBtZXRob2QgY291bGQgdXBzZXQKICAgIGEgc2xhdmUgYXMgaXQgd3JvdGUgYSBkYXRhIGJ5dGUgdG8gaXQuCgogICAgQWRkIGEgc21hbGwgZGVsYXkgaW4gaTJjX2luaXQoKSB0byBsZXQgdGhlIGNvbnRyb2xsZXIKICAgIHNodXRkb3duIGFueSBvbmdvaW5nIEkyQyBhY3Rpdml0eS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2FraW0gVGplcm5sdW5kIDxKb2FraW0uVGplcm5sdW5kQHRyYW5zbW9kZS5zZT4KCmNvbW1pdCA3YTc4ZjE0OGQ2YTcyOThlNGZmYWNlNjgwZGM3ZWFjZDg3N2IxYWJhCkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAzMSAxNTo1NDoyOSAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogQWRkIHN1cHBvcnQgZm9yIHRoZSBNUEM4MzQ5RS1tSVRYLUdQCgogICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBNUEM4MzQ5RS1tSVRYLUdQLCBhIHN0cmlwcGVkLWRvd24gdmVyc2lvbiBvZiB0aGUKICAgIE1QQzgzNDlFLW1JVFguICBCb251cyBmZWF0dXJlcyBpbmNsdWRlIHN1cHBvcnQgZm9yIGxvdy1ib290IChCTVMgYml0IGluCiAgICBIUkNXIGlzIDApIGZvciB0aGUgSVRYIGFuZCBhIFJFQURNRSBmb3IgdGhlIElUWCBhbmQgdGhlIElUWC1HUC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGZhYjE2ODA3YWRhZDM1MGY2MTgwMjQzNTBjNjk1MDE2NWMyNDdjNzIKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSmFuIDMxIDE1OjU0OjIwIDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBEZWxldGUgc2RyYW1faW5pdCgpIGZvciBNUEM4MzQ5RS1tSVRYCgogICAgVGhlcmUgaXMgbm8gU0RSQU0gb24gYW55IG9mIHRoZSA4MzQ5IElUWCB2YXJpYW50cywgc28gZnVuY3Rpb24gc2RyYW1faW5pdCgpCiAgICBuZXZlciBkb2VzIGFueXRoaW5nLiAgVGhpcyBwYXRjaCBkZWxldGVzIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTg3Yzg1NmViNDExYjkzNjU5MzdkMGQ0YjljMjFlNDZhZGJlMWMxNApBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKYW4gMTkgMTA6NDM6MjYgMjAwNyArMDgwMAoKICAgIG1wYzgzeHg6IEZpeCB0aGUgTEFXMS8zIGJ1ZwoKICAgIFRoZSBwYXRjaCBzb2x2ZXMgdGhlIGFsaWdubWVudCBwcm9ibGVtIG9mIHRoZSBsb2NhbCBidXMgYWNjZXNzIHdpbmRvd3MgdG8KICAgIHJlbmRlciBhY2Nlc3NpYmxlIHRoZSBtZW1vcnkgYmFuayBhbmQgUEhZIHJlZ2lzdGVycyBvZiBVUEMgMSAoc3RhcnRpbmcgYXQKICAgIDB4ZjgwMSAwMDAwKS4gV2hhdCB3ZSBhY3R1YWxseSBkaWQgd2FzIHRvIGFkanVzdCB0aGUgc2l6ZXMgb2YgdGhlIGJ1cwogICAgYWNjZXNzIHdpbmRvd3Mgc28gdGhhdCB0aGUgYmFzZSBhZGRyZXNzIGFsaWdubWVudCByZXF1aXJlbWVudCB3b3VsZCBiZSBtZXQuCgogICAgU2lnbmVkLW9mZi1ieTogQ2hlcmVqaSBNYXJpYW4gPG1hcmlhbi5jaGVyZWppQGZyZWVzY2FsZS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBHcmlkaXNoIFNobG9taSA8Z3JpZGlzaEBmcmVlc2NhbGUuY29tPgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5N2M0YjM5N2RjZTIzNmE3MzE4YjMwNDY2N2JmODllNTlkMDhiMTdjCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAzMCAxNjoxNTozMSAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogZG9uJ3QgaGFuZyBpZiB3YXRjaGRvZyBjb25maWd1cmVkIG9uIDgzNjAsIDgzMngKCiAgICBkb24ndCBoYW5nIGlmIHdhdGNoZG9nIGNvbmZpZ3VyZWQgb24gODM2MCwgODMyeAoKICAgIFRoZSB3YXRjaGRvZyBwcm9ncmFtbWluZyBtb2RlbCBpcyB0aGUgc2FtZSBhY3Jvc3MgYWxsIDgzeHggZGV2aWNlczsKICAgIG1ha2UgdGhlIGNvZGUgcmVmbGVjdCB0aGF0LgoKY29tbWl0IGI3MDA0NzQ3ODU3MGUzNzFjZTcyMjNiZTM0MmNlOThhZmVhMGY3ZDYKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSmFuIDMwIDE2OjE1OjIxIDIwMDcgLTA2MDAKCiAgICBtcGM4M3h4OiBwcm90ZWN0IG1lbWNweSB0byBiYWQgYWRkcmVzcyBpZiBhIGxvY2FsLW1hYy1hZGRyZXNzIGlzIG1pc3NpbmcgZnJvbSBkdAoKICAgIHByb3RlY3QgbWVtY3B5IHRvIGJhZCBhZGRyZXNzIGlmIGEgbG9jYWwtbWFjLWFkZHJlc3MgaXMgbWlzc2luZyBmcm9tIGR0Cgpjb21taXQgNjc1MmVkMDg4Yzc1YzI2YTg5YjcwYzQ2YjczMjZhNGNkNjAxNWYyOQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKYW4gMzAgMTY6MTU6MDQgMjAwNyAtMDYwMAoKICAgIG1wYzgzeHg6IG1ha2UgODM2MCBkZWZhdWx0IGVudmlyb25tZW50IGZkdCBiZSA4MzYwIChub3QgODM0OSkKCiAgICBtYWtlIDgzNjAgZGVmYXVsdCBlbnZpcm9ubWVudCBmZHQgYmUgODM2MCAobm90IDgzNDkpCgpjb21taXQgYTI4ODk5YzkxMDAyNGEwMjI2MzMxZGYwNzIwN2IxMDM4YzMwMGM5MwpBdXRob3I6IEVtaWxpYW4gTWVkdmUgPEVtaWxpYW4uTWVkdmVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEphbiAzMCAxNjoxNDo1MCAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogRml4IGFsdGVybmF0aW5nIHR4IGVycm9yIC8gdHggYnVmZmVyIG5vdCByZWFkeSBidWcgaW4gUUUgVUVDCgogICAgVGhlIHByb2JsZW0gaXMgbm90IGdjYzQgYnV0IHRoZSBjb2RlIGl0c2VsZi4gVGhlIEJEX1NUQVRVUygpIG1hY3JvIGNhbid0CiAgICBiZSB1c2VkIGZvciBidXN5LXdhaXRpbmcgc2luY2UgaXQgc3RyaXBzIHRoZSAndm9sYXRpbGUnIHByb3BlcnR5IGZyb20KICAgIHRoZSBiZCB2YXJpYWJsZS4gZ2NjMyB3YXMgd29ya2luZyBieSBwdXJlIGx1Y2suCgogICAgVGhpcyBpcyBhIGZvbGxvdyBvbiBwYXRjaCB0byAiRml4IHRoZSBVRUMgZHJpdmVyIGJ1ZyBvZiBRRSIKCmNvbW1pdCAzZTc4YTMxY2ZlM2QzMDIyZjQ2ZjY3ZWI4OGUxMjgxZDVjYzJlYjg5CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIEphbiAzMCAxNDowODozMCAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogUmVwbGFjZSBDT05GSUdfTVBDODM0OSBhbmQgdXNlIENPTkZJR19NUEM4MzRYIGluc3RlYWQKCiAgICBUaGUgY29kZSB0aGF0IGlzIGlmZGVmJ2Qgd2l0aCBDT05GSUdfTVBDODM0OSBpcyBhY3R1YWxseSBhcHBsaWNhYmxlIHRvIGFsbAogICAgTVBDODM0WCBjbGFzcyBwcm9jZXNzb3JzLiAgQ2hhbmdlIHRoZSBwcm90ZWN0aW9ucyBmcm9tIENPTkZJR19NUEM4MzQ5IHRvCiAgICBDT05GSUdfTVBDODM0WCBzbyB0aGV5IGFyZSBtb3JlIGdlbmVyaWMuCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCBhZTI0NmRjNmMxOTM3YzI5MTAxNGVhZGQ5MGI2ZDQ4YzQzOGM3Y2IwCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEphbiAyNSAxMzo0MDo1NSAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogYWRkIE1QQzgzMlhFTURTIGFuZCBzYmM4MzQ5IHRvIE1BS0VBTEwKCmNvbW1pdCA0ZGVjZDg0ZThmMDQyNzljNWNmZmY3ZjhlOTA3NDY1ZWY4ZDhhM2ZiCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEphbiAyNCAxNzoxODozNyAyMDA3IC0wNjAwCgogICAgbXBjODN4eDogc29ydCBNYWtlZmlsZSB0YXJnZXRzCgogICAgcmVvcmRlcmVkIHRhcmdldHMgYWxwaGFiZXRpY2FsbHkKCmNvbW1pdCA5MWUyNTc2OTc3MWMxMTY0ZWQ2M2ZmY2EwYWRkNDlmOTM0YWUzMzQzCkF1dGhvcjogUGF1bCBHb3J0bWFrZXIgPHBhdWwuZ29ydG1ha2VyQHdpbmRyaXZlci5jb20+CkRhdGU6CVR1ZSBKYW4gMTYgMTE6Mzg6MTQgMjAwNyAtMDUwMAoKICAgIG1wYzgzeHg6IFUtQm9vdCBzdXBwb3J0IGZvciBXaW5kIFJpdmVyIFNCQzgzNDkKCiAgICBJJ3ZlIHJlZG9uZSB0aGUgU0JDODM0OSBzdXBwb3J0IHRvIG1hdGNoIGdpdC1jdXJyZW50LCB3aGljaAogICAgaW5jb3Jwb3JhdGVzIGFsbCB0aGUgTVBDODM0eCB1cGRhdGVzIGZyb20gRnJlZXNjYWxlIHNpbmNlIHRoZSAxLjEuNgogICAgcmVsZWFzZSwgIGluY2x1ZGluZyB0aGUgRERSIGNoYW5nZXMuCgogICAgSSd2ZSBrZXB0IGFsbCB0aGUgU0JDODM0OSBmaWxlcyBhcyBwYXJhbGxlbCBhcyBwb3NzaWJsZSB0byB0aGUKICAgIE1QQzgzNDlFTURTIG9uZXMgZm9yIGVhc2Ugb2YgbWFpbnRlbmFuY2UgYW5kIHRvIGFsbG93IGZvciBlYXN5CiAgICBpbnNwZWN0aW9uIG9mIHdoYXQgd2FzIGNoYW5nZWQgdG8gc3VwcG9ydCB0aGlzIGJvYXJkLiAgSGVuY2UgdGhlIFNCQzgzNDkKICAgIFUtQm9vdCBoYXMgRkRUIHN1cHBvcnQgYW5kIGV2ZXJ5dGhpbmcgZWxzZSB0aGF0IHRoZSBNUEM4MzQ5RU1EUyBoYXMuCgogICAgRm9ydHVuYXRlbHkgdGhlIEZyZWVzY2FsZSB1cGRhdGVzIGFkZGVkIHN1cHBvcnQgZm9yIGJvYXJkcyB1c2luZyBDUzAsCiAgICBidXQgSSBoYWQgdG8gY2hhbmdlIHNwZF9zZHJhbS5jIHRvIGFsbG93IGZvciBib2FyZCBzcGVjaWZpYyBzZXR0aW5ncyBmb3IKICAgIHRoZSBzZHJhbV9jbGtfY250bCAoaXQgaXMvd2FzIGhhcmQgY29kZWQgdG8gemVybywgYW5kIHRoYXQgcmVtYWlucyB0aGUKICAgIGRlZmF1bHQgaWYgdGhlIGJvYXJkIGRvZXNuJ3Qgc3BlY2lmeSBhIHZhbHVlLikKCiAgICBIb3BlZnVsbHkgdGhpcyBzaG91bGQgYmUgbWVyZ2VhYmxlIGFzLWlzIGFuZCByZXF1aXJlIG5vIHdoaXRlc3BhY2UKICAgIGNsZWFudXBzIG9yIHNpbWlsYXIsIGJ1dCBpZiBzb21ldGhpbmcgZG9lc24ndCBtZWFzdXJlIHVwIHRoZW4gbGV0IG1lCiAgICBrbm93IGFuZCBJJ2xsIGZpeCBpdC4KCiAgICBUaGFua3MsCiAgICBQYXVsLgoKY29tbWl0IDA1MDMxZGI0NTZhYjIyN2YzZTM3NTJmMzdiOWI4MTJiNjViYjgzYWQKQXV0aG9yOiBTYW0gU29uZyA8c2Ftc29uZ3NodUB5YWhvby5jb20uY24+CkRhdGU6CVRodSBEZWMgMTQgMTk6MDM6MjEgMjAwNiArMDgwMAoKICAgIG1wYzgzeHg6IFJlbW92ZSBhIHJlZHVuZGFudCBzZW1pY29sb24gaW4gbXBjODM0OWl0eC5jCgogICAgQSByZWR1bmRhbnQgc2VtaWNvbG9uIGV4aXN0ZWQgaW4gbXBjODM0OWl0eC5jCiAgICBzaG91bGQgYmUgcmVtb3ZlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTYW0gU29uZyA8c2Ftc29uZ3NodUB5YWhvby5jb20uY24+Cgpjb21taXQgZjM1ZjM1ODI0MWM1NDliZTNmNzVjZmUyZWFhNjQyOTE0Mjc1YjdiYQpBdXRob3I6IEplcnJ5IFZhbiBCYXJlbiA8Z2VyYWxkLnZhbmJhcmVuQGNvbWNhc3QubmV0PgpEYXRlOglXZWQgRGVjIDYgMjE6MjM6NTUgMjAwNiAtMDUwMAoKICAgIG1wYzgzeHg6IFB1dCB0aGUgdmVyc2lvbiAoYW5kIG1hZ2ljKSBhZnRlciB0aGUgSFJDVy4KCiAgICBQdXQgdGhlIHZlcnNpb24gKGFuZCBtYWdpYykgYWZ0ZXIgdGhlIEhSQ1cuICBUaGlzIHB1dHMgaXQgaW4gYSBmaXhlZAogICAgbG9jYXRpb24gaW4gZmxhc2gsIG5vdCBhdCB0aGUgc3RhcnQgb2YgZmxhc2ggYnV0IGFzIGNsb3NlIGFzIHdlIGNhbiBnZXQuCgogICAgU2lnbmVkLW9mZi1ieTogSmVycnkgVmFuIEJhcmVuIDx2YW5iYXJlbkBjaWRlYXMuY29tPgoKY29tbWl0IDQ4YWVjZDk2OTE3MWE2ZTk5YTU1ZmFlMDQ5MzM4NTc3ODdmOWE1YmQKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBEZWMgNyAyMToxNDo1MSAyMDA2ICswODAwCgogICAgbXBjODN4eDogQWRkIHRoZSBNUEM4MzJYRU1EUyBib2FyZCByZWFkbWUKCiAgICBBZGQgdGhlIE1QQzgzMlhFTURTIGJvYXJkIHJlYWRtZQoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjRjM2FjYTNmMTM1OGIxMTNkMzIxNWFkYjU0MzNiMTU2ZTk5ZjcyYgpBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IERlYyA3IDIxOjEzOjE1IDIwMDYgKzA4MDAKCiAgICBtcGM4M3h4OiBBZGQgc3VwcG9ydCBmb3IgdGhlIE1QQzgzMlhFTURTIGJvYXJkCgogICAgVGhpcyBwYXRjaCBzdXBwb3J0cyBEVUFSVCwgRVRIMy80IGFuZCBQQ0kgZXRjLgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTA4MDMxM2MzMjMyMmUxNWFiNWExOGViODk2YTI1Mjg1OGM1NzI4NApBdXRob3I6IERhdmUgTGl1IDxyNjMyMzhAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IERlYyA3IDIxOjExOjU4IDIwMDYgKzA4MDAKCiAgICBtcGM4M3h4OiBzdHJlYW1saW5lIHRoZSA4M3h4IGltbXIgaGVhZCBmaWxlCgogICAgRm9yIGJldHRlciBmb3JtYXQgYW5kIHN0eWxlLCBJIHN0cmVhbWxpbmVkIHRoZSA4M3h4IGhlYWQgZmlsZXMsCiAgICBpbmNsdWRpbmcgaW1tYXBfODN4eC5oIGFuZCBtcGM4M3h4LmguIEluIHRoZSBvbGQgaGVhZCBmaWxlcywgMSkKICAgIGR1cGxpY2F0ZWQgbWFjcm8gZGVmaW5pdGlvbiBhcHBlYXIgaW4gdGhlIGJvdGggZmlsZXM7IDIpIHRoZSBzdHJ1Y3R1cmUKICAgIG9mIFFFIGltbXIgaXMgZHVwbGljYXRlZCBpbiB0aGUgaW1tYXBfODN4eC5oIGFuZCBpbW1hcF9xZS5oOyAzKSBUaGUKICAgIG1hY3JvIGRlZmluaXRpb24gcHV0IGluc2lkZSB0aGUgZWFjaCBzdHJ1Y3R1cmUuIFNvLCBJIGNsZWFuZWQgdXAgdGhlCiAgICBzdHJ1Y3R1cmUgb2YgUUUgaW1tciBmcm9tIGltbWFwXzgzeHguaCwgZGVsZXRlZCB0aGUgZHVwbGljYXRlZCBzdHVmZiBhbmQKICAgIG1vdmVkIHRoZSBtYWNybyBkZWZpbml0aW9uIHRvIG1wYzgzeHguaCwgSnVzdCBsaWtlIE1QQzgyNjAuCgogICAgQ0hBTkdFTE9HCgogICAgKnN0cmVhbWxpbmUgdGhlIDgzeHggaW1tciBoZWFkIGZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGRkZDAyNDkyZjQzZGI1NDA4ZjVhYjlmODIzYjBiYTU3OTZlMjhlZjAKQXV0aG9yOiBEYXZlIExpdSA8cjYzMjM4QGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBEZWMgNiAxMTozODoxNyAyMDA2ICswODAwCgogICAgbXBjODN4eDogRml4IHRoZSBVRUMgZHJpdmVyIGJ1ZyBvZiBRRQoKICAgIFRoZSBwYXRjaCBwcmV2ZW50cyB0aGUgR0NDIHRvb2wgY2hhaW4gZnJvbSBzdHJpcGluZyB1c2VmdWwgY29kZSBmb3IKICAgIG9wdGltaXphdGlvbi4gSXQgd2lsbCBtYWtlIFVFQyBldGhlcm5ldCBkcml2ZXIgd29ya2FibGUsIE90aGVyd2lzZSB0aGUKICAgIFVFQyB3aWxsIGZhaWwgaW4gdHggd2hlbiB5b3UgYXJlIHVzaW5nIGdjYzQueC4gYnV0IHRoZSBkcml2ZXIgY2FuIHdvcmsKICAgIHdoZW4gdXNpbmcgZ2NjMy40LjMuCgogICAgQ0hBTkdFTE9HCgogICAgKlByZXZlbnQgdGhlIEdDQyBmcm9tIHN0cmlwaW5nIGNvZGUgZm9yIG9wdGltaXphdGlvbiwgT3RoZXJ3aXNlIHRoZSBVRUMKICAgIHdpbGwgdHggZmFpbGVkIHdoZW4geW91IGFyZSB1c2luZyBnY2M0LnguCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiYTU4ZTRjOWE5YTkxN2NlNzk1ZGQxNmQ0ZWM4ZDUxNWY5ZjdhYTM1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgTWFyIDEgMjE6MTE6MzYgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIEFNQ0MgS2F0bWFpIDQ0MFNQZSBldmFsIGJvYXJkIHN1cHBvcnQKCiAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgdGhlIHJlY2VudGx5IGFkZGVkIEthdG1haSBib2FyZCBzdXBwb3J0LiBUaGUgYmlnZ2VzdAogICAgY2hhbmdlIGlzIHRoZSBzdXBwb3J0IG9mIEVDQyBESU1NIG1vZHVsZXMgaW4gdGhlIDQ0MFNQKGUpIFNQRCBERFIyCiAgICBkcml2ZXIuCgogICAgUGxlYXNlIG5vdGUsIHRoYXQgc3RpbGwgc29tZSBwcm9ibGVtcyBhcmUgbGVmdCB3aXRoIHNvbWUgbWVtb3J5CiAgICBjb25maWd1cmF0aW9ucy4gU2VlIHRoZSBkcml2ZXIgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgOGMxMjA0NWEzYjA2YzViNjY3NWQzZmUwMmZiYzlmNTQ1OTg4MTI5YQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IE1hciAxIDA3OjAzOjI1IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEkyQzogQWRkIG1pc3NpbmcgZGVmYXVsdCBDRkdfUlRDX0JVU19OVU0gJiBDRkdfRFRUX0JVU19OVU0KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2NiYzcwMzY2NDhlNDY1Njk3Y2EyOThiYTUxZTBlNzZkZGEzNTJhMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgRmViIDI4IDAxOjI4OjUzIDIwMDcgKzAxMDAKCiAgICBTQzM6IGZpeCB0eXBvIGluIGRlZmF1bHQgZW52aXJvbm1lbnQKCmNvbW1pdCBlMzQ0NTY4YjFiNDZhZjg1ZWMzMmQ4MTU1ODZmOTFiYzExNWQ2MjIzCkF1dGhvcjogU2VyZ2VpIFBvc2VsZW5vdiA8c3Bvc2VsZW5vdkBlbWNyYWZ0LmNvbT4KRGF0ZToJVHVlIEZlYiAyNyAyMDoxNTozMCAyMDA3ICswMzAwCgogICAgTUNDMjAwOiBGaXhlcyBmb3IgdXBkYXRlIHByb2NlZHVyZQoKICAgIC0gZml4IGxvZ2ljIGVycm9yIGluIGltYWdlIHR5cGUgaGFuZGxpbmcKICAgIC0gbWFrZSBzdXJlIGZpbGUgc3lzdGVtIGltYWdlcyAoY3JhbWZzIGV0Yy4pIGdldCBzdG9yZWQgaW4gZmxhc2gKICAgICAgd2l0aCBpbWFnZSBoZWFkZXIgc3RyaXBwZWQgc28gdGhleSBjYW4gYmUgbW91bnRlZCB0aHJvdWdoIE1URAoKY29tbWl0IDc0MzU3MTE0NWIzNzE4Mjc1N2Q0ZTY4OGE3Nzg2MGIzNmVlNzc1NzMKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAyNyAxNDoyNjowNCAyMDA3ICswMTAwCgogICAgTWlub3IgY29kZSBjbGVhbnVwLgoKY29tbWl0IDYzOGRkMTQ1OGJiZGMyYTU1ZDRiOWUyNWM1YzRlMWY4MzhhNWRjNzIKQXV0aG9yOiBTZXJnZWkgUG9zZWxlbm92IDxzcG9zZWxlbm92QGVtY3JhZnQuY29tPgpEYXRlOglUdWUgRmViIDI3IDEyOjQwOjE2IDIwMDcgKzAzMDAKCiAgICBNQ0MyMDAgdXBkYXRlIC0gYWRkIExDRCBQcm9ncmVzcyBJbmRpY2F0b3IKCmNvbW1pdCA2YzdjYWM4YzRmY2UwZWEyYmY4ZTE1ZWQ4NjU4ZDg3OTc0MTU1YjQ0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgRmViIDIyIDA3OjQzOjM0IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIGdldF9kZXYoKSBub3cgdW5jb25kaXRpb25hbGx5IHVzZXMgbWFudWFsIHJlbG9jYXRpb24KCiAgICBTaW5jZSB0aGUgcmVsb2NhdGlvbiBmaXggaXMgbm90IGluY2x1ZGVkIHlldCBhbmQgd2UncmUgbm90IHN1cmUgaG93CiAgICBpdCB3aWxsIGJlIGFkZGVkLCB0aGlzIHBhdGNoIHJlbW92ZXMgY29kZSB0aGF0IHJlcXVpcmVkIHJlbG9jYXRpb24KICAgIHRvIGJlIGZpeGVkIGZvciBub3cuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDgyNzRlYzBiZDAxZDJmZWIyYzdmMDk1ZWJhNzhkNDJlYTAwOTc5OGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBGZWIgMjIgMDc6NDA6MjMgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQ2hhbmdlIHN5c3RlbWFjZSBkcml2ZXIgdG8gc2VsZWN0IDggJiAxNmJpdCBtb2RlCgogICAgQXMgc3VnZ2VzdGVkIGJ5IEdyYW50IExpa2VseSB0aGlzIHBhdGNoIGVuYWJsZXMgdGhlIFhpbGlueCBTeXN0ZW1BQ0UKICAgIGRyaXZlciB0byBzZWxlY3QgOCBvciAxNmJpdCBtb2RlIHVwb24gc3RhcnR1cC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgM2ExOTdiMmZlNDlkNmZhMDM5NzhlNjBhZjIzOTRlZmU5YzcwYjUyNwpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBGZWIgMjEgMTY6NTI6MzEgMjAwNyArMDEwMAoKICAgIFtQQVRDSCB2M10gQWRkIHN5bmMgdG8gZW5zdXJlIGZsYXNoX3dyaXRlX2NtZCBpcyBmdWxseSBmaW5pc2hlZAoKICAgIFNvbWUgQ1BVcyBsaWtlIFBQQywgQkxBQ0tGSU4gbmVlZCBzeW5jKCkgdG8gZW5zdXJlIGNmaSBmbGFzaCB3cml0ZSBjb21tYW5kCiAgICBpcyBmdWxseSBmaW5pc2hlZC4gVGhlIHN5bmMoKSBpcyBkZWZpbmVkIGluIGVhY2ggQ1BVJ3MgaW8uaCBmaWxlLiBGb3IKICAgIHRob3NlIENQVXMgd2hpY2ggZG8gbm90IG5lZWQgc3luYyBmb3Igbm93LCBhIGR1bW15IHN5bmMoKSBpcyBkZWZpbmVkIGluCiAgICB0aGVpciBpby5oIGFzIHdlbGwuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkYTA0OTk1YzdkYzY3NzIwMTNhOWEwZGM1Yzc2N2YxOTBjNDAyNDc4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgRmViIDIxIDEzOjQ0OjM0IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEZpeCBwcm9ibGVtIGluIHN5c3RlbWFjZSBkcml2ZXIgKGFjZV93cml0ZXcgaW5zdGVhZCBvZiBhY2Vfd3JpdGUpCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc1MWJiNTcxMDdkNzg5NzhhZTA4ZTY5N2MzZGViYTgxNmY1YmUwOTEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMjAgMTM6MjE6NTcgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gRml4IHJlbG9jYXRpb24gcHJvYmxlbSB3aXRoICJuZXciIGdldF9kZXYoKSBmdW5jdGlvbgoKICAgIFRoaXMgcGF0Y2ggZW5hYmxlcyB0aGUgIm5ldyIgZ2V0X2RldigpIGZ1bmN0aW9uIGZvciBibG9jayBkZXZpY2VzCiAgICBpbnRyb2R1Y2VkIGJ5IEdyYW50IExpa2VseSB0byBiZSB1c2VkIG9uIHN5c3RlbXMgdGhhdCBzdGlsbCBzdWZmZXIKICAgIGZyb20gdGhlIHJlbG9jYXRpb24gcHJvYmxlbXMgKG1hbnVhbCByZWxvY2F0aW9uIG5lZWRlIGJlY2F1c2Ugb2YKICAgIHByb2JsZW1zIHdpdGggbGlua2VyIHNjcmlwdCkuCgogICAgSG9wZWZ1bGx5IHdlIGNhbiByZXNvbHZlIHRoaXMgcmVsb2NhdGlvbiBpc3N1ZSBzb29uIGZvciBhbGwgcGxhdGZvcm0KICAgIHNvIHdlIGRvbid0IG5lZWQgdGhpcyBhZGRpdGlvbmFsIGNvZGUgYW55bW9yZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZDkzZTIyMTJmOTYyNjY4YjNkY2UwOTFmZjVlZGMzM2YyMzQ3ZmUzNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAyMCAxMzoxNzo0MiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgU3lzdGVtQUNFIGRyaXZlciBmb3IgMTZiaXQgYWNjZXNzCgogICAgVGhpcyBwYXRjaCByZW1vdmVzIHNvbWUgcHJvYmxlbXMgd2hlbiB0aGUgWGlsaW54IFN5c3RlbUFDRSBkcml2ZXIKICAgIGlzIHVzZWQgd2l0aCAxNmJpdCBhY2Nlc3Mgb24gYW4gYmlnIGVuZGlhbiBwbGF0Zm9ybSAobGlrZSB0aGUKICAgIEFNQ0MgS2F0bWFpKS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgODc0YmI3Yjg4ZmU5YjQ2NDhlMTI4OGEzODdhZjJlMzEwMTRhNzJmMwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIEZlYiAyMCAxMzoxNTo0MCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBDbGVhbiB1cCBLYXRtYWkgKDQ0MFNQZSkgbGlua2VyIHNjcmlwdAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0NzQ1YWNhYTFhNjAzYjY3ZjZiOWI3OTcwMzY1ZWJhZGQ3ZDY1ODZmCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRmViIDIwIDEwOjU3OjA4IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBzdXBwb3J0IGZvciB0aGUgQU1DQyBLYXRtYWkgKDQ0MFNQZSkgZXZhbCBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwZGMwMThlY2UxM2VmZmM2ODllNDc0NzllYTllYmYxYzk4YTUwN2Y1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRmViIDIwIDEwOjUxOjI2IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEkyQzogQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIEkyQyBidXNzZXMgZm9yIFJUQyAmIERUVAoKICAgIFRoaXMgcGF0Y2ggc3dpdGNoZXMgdG8gdGhlIGRlc2lyZWQgSTJDIGJ1cyB3aGVuIHRoZSBkYXRlL2R0dAogICAgY29tbWFuZHMgYXJlIGNhbGxlZC4gVGhpcyBjYW4gYmUgY29uZmlndXJlZCB1c2luZyB0aGUKICAgIENGR19SVENfQlVTX05VTSBhbmQvb3IgQ0ZHX0RUVF9CVVNfTlVNIGRlZmluZXMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDQwMzdlZDNiNjM5MjNjZmNlYzI3Zjc4NGE4OTA1N2MzY2JhYmNlZGIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMjAgMTA6NDM6MzQgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gUFBDNHh4OiBBZGQgNDQwU1AoZSkgRERSMiBTUEQgRElNTSBzdXBwb3J0CgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBERFIyIGNvbnRyb2xsZXIgdXNlZCBvbiB0aGUKICAgIDQ0MFNQIGFuZCA0NDBTUGUuIEl0IGlzIHRlc3RlZCBvbiB0aGUgS2F0bWFpICg0NDBTUGUpIGV2YWwKICAgIGJvYXJkIGFuZCB3b3JrcyBmaW5lIHdpdGggdGhlIGZvbGxvd2luZyBESU1NIG1vZHVsZXM6CgogICAgLSBDb3JzYWlyIENNMlg1MTItNTQwMEM0ICg1MTJNQnl0ZSBwZXIgRElNTSkKICAgIC0gS2luZ3N0b24gVmFsdWVSQU0gS1ZSNjY3RDJONS81MTIgKDUxMk1CeXRlIHBlciBESU1NKQogICAgLSBLaW5nc3RvbiBWYWx1ZVJBTSBLVlI2NjdEMk41SzIvMkcgKDFHQnl0ZSBwZXIgRElNTSkKCiAgICBUaGlzIHBhdGNoIGFsc28gYWRkcyB0aGUgbmljZSBmdW5jdGlvbmFsaXR5IHRvIGR5bmFtaWNhbGx5CiAgICBjcmVhdGUgdGhlIFRMQiBlbnRyaWVzIGZvciB0aGUgU0RSQU0gKHRsYi5jKS4gU28gd2Ugc2hvdWxkCiAgICBuZXZlciBydW4gaW50byBzdWNoIHByb2JsZW1zIHdpdGggd3JvbmcgKHRvbyBzaG9ydCkgVExCCiAgICBpbml0aWFsaXphdGlvbiBhZ2FpbiBvbiB0aGVzZSBwbGF0Zm9ybXMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM2ZDgzMGM5ODMwMzc5MDQ1ZjVkYWE5ZjU0MmFjMWM5OTBjNzAwNjgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBGZWIgMjAgMTA6MzU6NDIgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gUFBDNHh4OiBTcGxpdCA0eHggU1BEIFNEUkFNIGluaXQgcm91dGluZXMgaW50byAyIGZpbGVzCgogICAgU2luY2UgdGhlIGV4aXN0aW5nIDR4eCBTUEQgU0RSQU0gaW5pdGlhbGl6YXRpb24gcm91dGluZXMgZm9yIHRoZQogICAgNDA1IFNEUkFNIGNvbnRyb2xsZXIgYW5kIHRoZSA0NDAgRERSIGNvbnRyb2xsZXIgZG9uJ3QgaGF2ZSBtdWNoIGluCiAgICBjb21tb24gdGhpcyBwYXRjaCBzcGxpdHMgYm90aCBkcml2ZXJzIGludG8gZGlmZmVyZW50IGZpbGVzLgoKICAgIFRoaXMgaXMgaW4gcHJlcGFyYXRpb24gZm9yIHRoZSA0NDAgRERSMiBjb250cm9sbGVyIHN1cHBvcnQgKDQ0MFNQL2UpLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3OWIyZDBiYjJlYWUwOTYwMjQ0OGY3YTdjYjU2NTMwZDJmMzFlNmM2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgRmViIDIwIDEwOjI3OjA4IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFBQQzR4eDogQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIEkyQyBidXNzZXMKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgbXVsdGlwbGUgSTJDIGJ1c3NlcyBvbiB0aGUgUFBDNHh4CiAgICBwbGF0Zm9ybXMuIERlZmluZSBDT05GSUdfSTJDX01VTFRJX0JVUyBpbiB0aGUgYm9hcmQgY29uZmlnIGZpbGUKICAgIHRvIG1ha2UgdXNlIG9mIHRoaXMgZmVhdHVyZS4KCiAgICBJdCBhbHNvIG1lcmdlcyB0aGUgNDA1IGFuZCA0NDAgaTJjIGhlYWRlciBmaWxlcyBpbnRvIG9uZSBjb21tb24KICAgIGZpbGUgNHh4X2kyYy5oLgoKICAgIEFsc28gdGhlIDR4eCBpMmMgcmVzZXQgcHJvY2VkdXJlIGlzIHJld29ya2VkIHNpbmNlIEkgZXhwZXJpZW5jZWQKICAgIHNvbWUgcHJvYmxlbXMgd2l0aCB0aGUgZmlyc3QgYWNjZXNzIG9uIHRoZSA0NDBTUGUgS2F0bWFpIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlYjg2N2E3NjIzOGZiMzhlOTUyYzM3ODcxYjE2ZDBkN2ZkNjFjOTVmCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgRmViIDIwIDA5OjA1OjQ1IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0ggOV85XSBVc2UgInZvaWQgKiIgbm90ICJ1bnNpZ25lZCBsb25nICoiIGZvciBibG9jayBkZXYgcmVhZF93cml0ZSBidWZmZXIgcG9pbnRlcnMKCiAgICBCbG9jayBkZXZpY2UgcmVhZC93cml0ZSBpcyBhbm9ueW1vdXMgZGF0YTsgdGhlcmUgaXMgbm8gbmVlZCB0byB1c2UgYQogICAgdHlwZWQgcG9pbnRlci4gIHZvaWQgKiBpcyBmaW5lLiAgQWxzbyBhZGQgYSBob29rIGZvciBibG9ja19yZWFkIGZ1bmN0aW9ucwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA1Mzc1OGZhMjBlOTM1Y2M4N2VlYjA1MTllZDM2NWRmNzUzYTZmMjg5CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgRmViIDIwIDA5OjA1OjM4IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0ggOF85XSBBZGQgYmxvY2tfd3JpdGUgaG9vayB0byBibG9ja19kZXZfZGVzY190CgogICAgUHJlcGFyYXRpb24gZm9yIGZ1dHVyZSBwYXRjaGVzIHdoaWNoIHN1cHBvcnQgYmxvY2sgZGV2aWNlIHdyaXRpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgZjQ4NTJlYmU2Y2E5NDZhNTA5NjY3ZWI2OGJlNDIwMjZmODM3YmU3NgpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEZlYiAyMCAwOTowNTozMSAyMDA3ICswMTAwCgogICAgW1BBVENIIDdfOV0gUmVwbGFjZSBhY2VfcmVhZHdfYWNlX3dyaXRlYiBmdW5jdGlvbnMgd2l0aCBtYWNyb3MKCiAgICBSZWdpc3RlciByZWFkL3dyaXRlIGRvZXMgbm90IG5lZWQgdG8gYmUgd3JhcHBlZCBpbiBhIGZ1bGwgZnVuY3Rpb24uICBUaGUKICAgIHBhdGNoIHJlcGxhY2VzIHRoZW0gd2l0aCBtYWNyb3MuCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IDNhOGNlOWFmNmZjYjU3NDRhNzg1MWI0NDQwYzA3Njg4YWNjNDA4NDQKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBGZWIgMjAgMDk6MDU6MjMgMjAwNyArMDEwMAoKICAgIFtQQVRDSCA2XzldIE1vdmUgY29tbW9uX2NtZF9hY2UuYyB0byBkcml2ZXJzX3N5c3RlbWFjZS5jCgogICAgVGhlIGNvZGUgaW4gdGhpcyBmaWxlIGlzIG5vdCBhIGNvbW1hbmQ7IGl0IGlzIGEgZGV2aWNlIGRyaXZlci4gIFB1dCBpdCBpbgogICAgdGhlIGNvcnJlY3QgcGxhY2UuCVRoZXJlIGFyZSB6ZXJvIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGlzIHBhdGNoLCBpdAogICAgb25seSBtb3ZlcyB0aGUgZmlsZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgOTg0NjE4ZjNlNzc5NGM3ODNlYzhkMTUxMWU3NGM2ZWUyZDY5YmZlNApBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEZlYiAyMCAwOTowNToxNiAyMDA3ICswMTAwCgogICAgW1BBVENIIDVfOV0gV2hpdGVzcGFjZSBmaXh1cCBvbiBjb21tb25fY21kX2FjZS5jICh1c2luZyBMaW5kZW50KQoKICAgIFRoaXMgcGF0Y2ggaXMgaW4gcHJlcGFyYXRpb24gb2YgYWRkaXRpb25hbCBjaGFuZ2VzIHRvIHRoZSBzeXNhY2UgZHJpdmVyLgogICAgTWF5IGFzIHdlbGwgdGFrZSB0aGlzIG9wcG9ydHVuaXR5IHRvIGZpeHVwIHRoZSBpbmNvbnNpc3RlbnQgd2hpdGVzcGFjZSBzaW5jZQogICAgdGhpcyBmaWxlIGlzIGFib3V0IHRvIHVuZGVyZ28gbWFqb3IgY2hhbmdlcyBhbnl3YXkuCgogICAgVGhlcmUgYXJlIHplcm8gZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHRoaXMgcGF0Y2guICBJdCBvbmx5IGNsZWFucyB1cCB0aGUKICAgIHRoZSB3aGl0ZXNwYWNlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCA4MGJhOTgxZDk0MDQ3MWZlN2U1MzllNjRmYTNkMmJkODAwMDJiZWRhCkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgRmViIDIwIDA5OjA1OjA3IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0ggNF80XSBSZW1vdmUgbG9jYWwgaW1wbGVtZW50YXRpb24gb2YgaXNwcmludCgpIGluIGZ0X2J1aWxkLmMKCiAgICBpc3ByaW50IGlzIGFscmVhZHkgZGVmaW5lZCBpbiBjdHlwZS5jCgogICAgU2lnbmVkLW9mZi1ieTogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgoKY29tbWl0IGM5NWM0MjgwZDc1MWNhMDc4YzJmZjU4MjI4ZDJmMmI0NGNjZjA2MDAKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVR1ZSBGZWIgMjAgMDk6MDU6MDAgMjAwNyArMDEwMAoKICAgIFtQQVRDSCAzXzldIE1vdmUgYnVmZmVyIHByaW50IGNvZGUgZnJvbSBtZCBjb21tYW5kIHRvIGNvbW1vbiBmdW5jdGlvbgoKICAgIFByaW50aW5nIGEgYnVmZmVyIGlzIGEgZGFybiB1c2VmdWwgdGhpbmcuICBNb3ZlIHRoZSBidWZmZXIgcHJpbnQgY29kZQogICAgaW50byBwcmludF9idWZmZXIoKSBpbiBsaWJfZ2VuZXJpYy8KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgOTliMGYwZmQzZmJmMjU3MmFlMWE3NzIzZGQ5MGNmZmM4ZTg1MTMwYQpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEZlYiAyMCAwOTowNDo1MiAyMDA3ICswMTAwCgogICAgW1BBVENIIDJfNF0gVXNlIGNvbmZpZy5oLCBub3QgeHBhcmFtZXRlcnMuaCwgZm9yIHhpbGlueCB0YXJnZXRzCgogICAgQ2hhbmdlIHRoZSB4aWxpbnggZGV2aWNlIGRyaXZlcnMgYW5kIGJvYXJkIGNvZGUgdG8gaW5jbHVkZSBjb25maWcuaAogICAgaW5zdGVhZCBvZiB4cGFyYW1ldGVycy5oIGRpcmVjdGx5Lgljb25maWcuaCBhbHdheXMgaW5jbHVkZXMgdGhlCiAgICBjb3JyZWN0IHhwYXJhbWV0ZXJzIGZpbGUuICBUaGlzIGNoYW5nZSByZWR1Y2VzIHRoZSBwb3NpYmlsaXR5IG9mCiAgICBpbmNsdWRpbmcgdGhlIHdyb25nIGZpbGUgd2hlbiBhZGRpbmcgYSBuZXcgeGlsaW54IGJvYXJkIHBvcnQKCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNzM1ZGQ5N2IxYjIwZTc3N2QwNTljN2IzODlmZTlkNzBjZDNmODBjNwpBdXRob3I6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KRGF0ZToJVHVlIEZlYiAyMCAwOTowNDozNCAyMDA3ICswMTAwCgogICAgW1BBVENIIDFfNF0gTWVyZ2UgY29tbW9uIGdldF9kZXYoKSByb3V0aW5lcyBmb3IgYmxvY2sgZGV2aWNlcwoKICAgIEVhY2ggb2YgdGhlIGZpbGVzeXN0ZW0gZHJpdmVycyBkdXBsaWNhdGUgdGhlIGdldF9kZXYgcm91dGluZS4gIFRoaXMgY2hhbmdlCiAgICBtZXJnZXMgdGhlbSBpbnRvIGEgc2luZ2xlIGZ1bmN0aW9uIGluIHBhcnQuYwoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KCmNvbW1pdCBmNWZjYzNjMjBiNjU1NTRlOThhMTY1NTQyYzM2ZWUwYzYxMGEyZDgxCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBGZWIgMTkgMjM6MDk6NTEgMjAwNyArMDEwMAoKICAgIE1DQzIwMDogU29mdHdhcmUgVXBkYXRlcjogYWxsb3cgYm90aCAicmFtZGlzayIgYW5kICJmaWxlc3lzdGVtIiB0eXBlcwogICAgYXMgcm9vdCBmaWxlIHN5c3RlbSBpbWFnZXMuCgpjb21taXQgNDg5YzY5NmFlNzIxMTIxODk2MWQxNTllNDNlNzIyZDc0YzM2ZmNiYwpBdXRob3I6IFNlcmdlaSBQb3NlbGVub3YgPHNwb3NlbGVub3ZAZW1jcmFmdC5jb20+CkRhdGU6CVdlZCBGZWIgMTQgMTQ6MzA6MjggMjAwNyArMDMwMAoKICAgIE1DQzIwMDogRXh0ZW5zaW9ucyB0byBTb2Z0d2FyZSBVcGRhdGUgTWVjaGFuaXNtCgogICAgVXBkYXRlIC8gZXh0ZW5kIFNvZnR3YXJlIFVwZGF0ZSBNZWNoYW5pc20gZm9yIE1DQzIwMCBib2FyZDoKCiAgICAtIEFkZCBzdXBwb3J0IGZvciByb290ZnMgaW1hZ2UgYWRkZWQuIFRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMKICAgICAgInJvb3Rmc19zdCIgYW5kICJyb290ZnNfbmQiIGNhbiBiZSB1c2VkIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0CiAgICAgIHZhbHVlcyBvZiB0aGUgaW1hZ2Ugc3RhcnQgYW5kIGVuZC4KICAgIC0gUmVtb3ZlIGV4Y2Vzc2l2ZSBrZXkgY2hlY2sgY29kZS4KICAgIC0gQ29kZSBjbGVhbnVwLgoKY29tbWl0IDRiZTIzYTEyZjIzZjEzNzI2MzRlZGMzMjE1MTM3YjA5NzY4Yjc5NDkKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBGZWIgMTkgMDg6MjM6MTUgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIFNlcXVvaWEgRUJDIGNvbmZpZ3VyYXRpb24gKE5PUiBGTEFTSCkKCiAgICBBcyBzcG90dGVkIGJ5IE1hdHRoaWFzIEZ1Y2hzLCB0aGUgUkVBRFkgaW5wdXQgc2hvdWxkIG5vdCBiZQogICAgZW5hYmxlZCBmb3IgdGhlIE5PUiBGTEFTSCBvbiB0aGUgU2VxdW9pYSBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjYwNWU5MGJmNjc2ZDQ4MTIzYWZlNTcxOWE4NDZkMmI1MmIyNGFhYwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJRnJpIEZlYiAxNiAwNzo1Nzo0MiAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGRlZCBzdXBwb3J0IGZvciB0aGUganVwaXRlciBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA0OTdkMDEyZTViZTAxOTRlMTA4NDA3M2QwMDgxZWIxYTg0NDc5NmIyCkF1dGhvcjogR2FyeSBKZW5uZWpvaG4gPGdhcnlqQHBvbGx1eC5kZW54LmRlPgpEYXRlOglNb24gRmViIDEyIDEzOjExOjUwIDIwMDcgKzAxMDAKCiAgICBMUEMyMjkyOiBwYXRjaCBmcm9tIFNpZW1lbnMuCgpjb21taXQgYjBiMWE5MjBhZWJlYWQwZDQ0MTQ2ZTczNjc2YWU5ZDgwZmZmYzhlMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IEZlYiAxMCAwODo0OTozMSAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGQgbWlzc2luZyBwM214LmggZmlsZSB0byByZXBvc2l0b3J5ICh1cHMpCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDUzZDRhNDk4M2ZiOWIzYWU1ZjdiMmYxMGM1OTlhY2EyYjFiNDAzNGEKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglGcmkgRmViIDkgMTA6NDU6NDIgMjAwNyArMDEwMAoKICAgIFtNb3Rpb24tUFJPXSBQcmVsaW1pbmFyeSBzdXBwb3J0IGZvciB0aGUgTW90aW9uLVBSTyBib2FyZC4KCmNvbW1pdCA1YTc1M2Y5OGM2YTAxYmQxYzYxYTlhM2Y5NWU4MzI5YTM1ZjYyOTk0CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgRmViIDcgMTY6NTE6MDggMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIHNvbWUgQU1DQyA0eHggYm9hcmQgY29uZmlnIGZpbGVzIChzZXQgaW5pdHJkX2hpZ2gpCgogICAgU29tZSBib2FyZHMgdGhhdCBjYW4gaGF2ZSBtb3JlIHRoYW4gNzY4TUJ5dGVzIG9mIFNEUkFNIG5lZWQgdG8KICAgIHNldCAiaW5pdHJkX2hpZ2giLCBzbyB0aGF0IHRoZSBpbml0cmQgY2FuIGJlIGFjY2Vzc2VkIGJ5IHRoZQogICAgTGludXgga2VybmVsLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA3MzcyY2E2ODIyNzkzMGQwM2NmZmE1NDgzMTA1MjRjYWQ1Yjk2NzMzCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgRmViIDIgMTI6NDQ6MjIgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQ29ycmVjdGx5IGRpc3BsYXkgUENJIGFyYml0ZXIgZW4tL2Rpc2FibGVkIG9uIHNvbWUgNHh4IGJvYXJkcwoKICAgIFByZXZpb3VzbHkgdGhlIHN0cmFwcGluZyBEQ1IvU0RSIHdhcyByZWFkIHRvIGRldGVybWluZSBpZiB0aGUgaW50ZXJuYWwgUENJCiAgICBhcmJpdGVyIGlzIGVuYWJsZWQgb3Igbm90LiBUaGlzIHN0cmFwcGluZyBiaXQgY2FuIGJlIG92ZXJyaWRkZW4sIHNvIG5vdwogICAgdGhlIGN1cnJlbnQgc3RhdHVzIGlzIHJlYWQgZnJvbSB0aGUgY29ycmVjdCBEQ1IvU0RSIHJlZ2lzdGVyLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAyYWE1NGY2NTFhNDJkMTk4NjczMzE4ZjA3YTIwYzg5YTQzZTRkMTk3CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgRmViIDIgMTI6NDI6MDggMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQ2hhbmdlIGNvbmZpZ3VyYXRpb24gb3V0cHV0IG9mIFN5Y2Ftb3JlLCBZZWxsb3dzdG9uZSAmIFJhaW5pZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMjM3NDRkNmI1YmYxNzU5MmViNmEwZWY0ZjMxOGY2MDg5ZjU1OTkzYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVGh1IEZlYiAxIDEzOjIyOjQxIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFJlbW92ZSBQQ0ktUE5QIGNvbmZpZ3VyYXRpb24gZnJvbSBTZXF1b2lhL1JhaW5pZXIgY29uZmlnIGZpbGUKCiAgICBXaGVuIFBDSSBQTlAgaXMgZW5hYmxlZCB0aGUgcGNpIHBucCBjb25maWd1cmF0aW9uIHJvdXRpbmUgaXMgY2FsbGVkCiAgICB3aGljaCBzZXRzIHRoZSBQQ0lfQ0FDSEVfU0laRV9MSU5FIHRvIDguIFRoaXMgc2VlbXMgdG8gZ2VuZXJhdGUgc29tZQogICAgcHJvYmxlbXMgd2l0aCBzb21lIFBDSSBjYXJkcy4gRm9yIG5vdyBkaXNhYmxlIHRoZSBQQ0kgUE5QIGNvbmZpZ3VyYXRpb24uCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDI5MDJmYWRhZGUzYmU3NjU5NDY3ZThkMDc0MDQ4YzZiNzA2OGY1YzAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMzEgMTY6NTY6MTAgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIDQ0MEVQeC80NDBHUnggY3B1IGRldGVjdGlvbgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkNWVhMjg3YjAyYTY5NDVjMzk3NzQxMGUzNjRhODc5ZGQxYTU1NWM4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgSmFuIDMxIDE2OjM4OjA0IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBlc2QgY3BjaTUyMDAgZmlsZXMKCiAgICBTaWduZWQtb2ZmLWJ5OiBSZWluaGFyZCBBcmx0IDxyZWluaGFyZC5hcmx0QGVzZC1lbGVjdHJvbmljcy5jb20+Cgpjb21taXQgOGI3ZDFmMGFiN2Q3YzRmZTMxNjBiYmY3NGE3ZTk2OTBkOWYzYTNhYgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIEphbiAzMSAxNjozNzozNCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBBZGQgc3VwcG9ydCBmb3IgZXNkIG1lY3A1MjAwIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogUmVpbmhhcmQgQXJsdCA8cmVpbmhhcmQuYXJsdEBlc2QtZWxlY3Ryb25pY3MuY29tPgoKY29tbWl0IDcxYTRlNWZkYThiNjAwNDRhYjlmNDYwNjlmYTFjZmEyNmJkZDA3ZmYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMzEgMTI6Mzg6NTAgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gUmVtb3ZlIHVubmVjY2Vzc2FyeSB5ZWxsb3dzdG9uZSBib2FyZCBjb25maWcgZmlsZQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlODAyNTk0YjZmYTFiMTY2MzA4ODIwYzI3NmI5NmRjMGQ3Y2M3MzFjCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgSmFuIDMwIDE3OjA2OjEwIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBTZXF1b2lhICg0NDBFUHgpIGNvbmZpZyBmaWxlCgogICAgVGhlIGNvbmZpZyBmaWxlIG5vdyBoYW5kbGVzIHRoZSAybmQgdGFyZ2V0LCB0aGUgUmFpbmllciAoNDQwR1J4KQogICAgZXZhbHVhdGlvbiBib2FyZCBiZXR0ZXIuIEFkZGl0aW9uYWxseSB0aGUgUFBDIGlucHV0IGNsb2NrIHdhcwogICAgYWRqdXN0ZWQgdG8gbWF0Y2ggdGhlIGNvcnJlY3QgdmFsdWUgb2YgMzMuMCBNSHouCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDcwMDIwMGM2N2U3M2I4Mzc1MTQxOGFiZTc4MTU4NDBkY2E4ZmQ2Y2IKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gMzAgMTc6MDQ6MTkgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gTWVyZ2UgWW9zZW1pdGUgJiBZZWxsb3dzdG9uZSBib2FyZCBwb3J0cwoKICAgIE5vdyB0aGUgQU1DQyBldmFsIGJvYXJkcyBZb3NlbWl0ZSAoNDQwRVApIGFuZCBZZWxsb3dzdG9uZSAoNDQwR1IpCiAgICBzaGFyZSBvbmUgY29uZmlnIGZpbGUgYW5kIGFsbCBib2FyZCBzcGVjaWZpYyBmaWxlcy4gVGhpcyB3YXkgd2UKICAgIGRvbid0IGhhdmUgdG8gbWFpbnRhaW4gdHdvIGRpZmZlcmVudCBzZXRzIG9mIGZpbGVzIGZvciBuZWFybHkKICAgIGlkZW50aWNhbCBib2FyZHMuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDFiYmY1ZWFlMzIyZjVmMWY2NDI3ZWNjM2FjMTNhMGNiN2RiYThhZDYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gMzAgMTU6MDE6NDkgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIFByb2RyaXZlIFNDUFUgKFBETkIzIHZhcmlhbnQpIGJvYXJkCgogICAgU0NQVSBkb2Vzbid0IHVzZSByZWR1bmRhbnQgZW52aXJvbm1lbnQgaW4gZmxhc2guCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDYzMDQ0MzBlZDY0MmVhOGZhMTVjOWU1YWY5NjVhYzJlMDMzZWVjNDUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gMzAgMTI6NTE6MDcgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gYWxwcjogVXBkYXRlIGFscHIgYm9hcmQgY29uZmlnIGZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgZjhkYjg0ZjEzMmIxZTMzNWYyMGY5NjEzOGExZjA5ZWQ5N2IwODY2NApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgSmFuIDMwIDAwOjUwOjQwIDIwMDcgKzAxMDAKCiAgICBMUEMyMjkyIFNPRElNTSBwb3J0IGNvZGluZyBzdHlsZSBjbGVhbnVwLgoKY29tbWl0IDZiZDI0NDdlZTQ3ZWUyM2MxOGQyYjNjN2NjZDVhMjBmNzYyNmY1YjMKQXV0aG9yOiBHYXJ5IEplbm5lam9obiA8Z2FyeWpAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVdlZCBKYW4gMjQgMTI6MTY6NTYgMjAwNyArMDEwMAoKICAgIEFkZCBwb3J0IGZvciB0aGUgbHBjMjI5MnNvZGltbSBldmFsdWF0aW9uIGJvYXJkIGZyb20gRW1iZWRkZWRBcnRpc3RzCgpjb21taXQgMmRhZjA0NmJhNjI3Zjg1ZjQ0MTk1ODE1Nzc4MTQwMDM5NjM2MjQ0ZQpBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVR1ZSBKYW4gMjMgMTc6MjI6MDYgMjAwNyArMDEwMAoKICAgIFtpRE1SXSBBZGQgTVREIGFuZCBKRkZTMiBzdXBwb3J0LCBhbHNvIGFkZCBkZWZhdWx0IHBhcnRpdGlvbiBkZWZpbml0aW9uLgoKY29tbWl0IGY3ZGIzMzEwMWZiYzljOGYwYTEwNzM4Y2U4NzAzNDg3NWExN2FlYjkKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglUdWUgSmFuIDIzIDE0OjIxOjE0IDIwMDcgKzAxMDAKCiAgICBbaURNUl0gRmxhc2ggZHJpdmVyIG9uIGluaXRpYWxpc2F0aW9uIHdyaXRlLXByb3RlY3RzIHNvbWUgc2VjdG9ycywKICAgIGN1cnJlbnRseSBzZWN0b3JzIDAtMy4gU2VjdG9yIDMgZG9lcyBub3QgbmVlZCB0byBiZSBwcm90ZWN0ZWQsIHRob3VnaAogICAgKFUtYm9vdCBvY2N1cGllcyBzZWN0b3JzIDAtMSBhbmQgdGhlIGVudmlyb25tZW50IHNlY3RvciAyKS4gVGhpcyBjb21taXQKICAgIGZpeGVzIHRoaXMsIGkuZS4sIG9ubHkgc2VjdG9ycyAwLTIgYXJlIHByb3RlY3RlZC4KCmNvbW1pdCAwZWQ0N2JiMTE5Y2QyYzRjMTZlZGIyNTQ4Nzg5MTQ4ZjllNmRjOWRlCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiAyMyAxNDoxMToyMiAyMDA3ICswMTAwCgogICAgW2lETVJdIFVzaW5nIE1JSS1yZWxhdGVkIGNvbW1hbmRzIG9uIGlEUk0gYm9hcmQgZG9lc24ndCB3b3JrIG5vdyAoZS5nLiwKICAgICJtaWkgZGV2aWNlIiByZXN1bHRzIGluICJVbmV4cGVjdGVkIGV4Y2VwdGlvbiIpLiBGaXhpbmcgdGhpcyBwcm9wZXJseQogICAgcmVxdWlyZXMgc29tZSBjbGVhbi11cCBpbiB0aGUgRkVDIGRyaXZlcnMgaW5mcmFzdHJ1Y3R1cmUgZm9yIENvbGRGaXJlLCBzbwogICAgdGhpcyBjb21taXQgZGlzYWJsZXMgTUlJIGNvbW1hZHMgZm9yIG5vdy4KCmNvbW1pdCAzNjNkMWQ4ZjljOTliNjNkYWVmODFmNTk4NWNhYjNmYzAwZWRkZTVjCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJVHVlIEphbiAyMyAxMzoyNToyMiAyMDA3ICswMTAwCgogICAgW0NvbGRGaXJlIE1DRjUyNzEgZmFtaWx5XSBBZGQgQ1BVIGRldGVjdGlvbiBiYXNlZCBvbiB0aGUgdmFsdWUgb2YgQ2hpcAogICAgSWRlbnRpZmljYXRpb24gUmVnaXN0ZXIgKENJUikuCgpjb21taXQgZmRlZjM4ODc1ODUwNjc2NWQ0ZDZhNzE1NWM4ZjE1ODRjNjNmZjU4MQpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEphbiAyMiAxMzoxOToyMSAyMDA3ICswODAwCgogICAgdXNlICBDRkdfV1JJVEVfU1dBUFBFRF9EQVRBIGRlZmluZSBpbnN0ZWFkIG9mIGRlZmluZSBDRkdfRkxBU0hfQ0ZJX1NXQVAKICAgIFRoZSBwYXRjaCBieSBIZWlrbyBTY2hvY2hlciA8aHNAcG9sbHV4LmRlbnguZGU+IG9uIEphbiwgMTksIDIwMDcKICAgIGZpeGVzIGNmaV9kcml2ZXIgYnVnIGZvciBtcGM3NDQ4aHBjMiBib2FyZC4gVGhlIGRlZmF1bHQgY2ZpX2RyaXZlciBjYW4gc3VwcG9ydAogICAgbXBjNzQ0OGhwYzIgYm9hcmQuCgpjb21taXQgYTQwMTIzOTY2NDU1MzNhZWYyMTgzNTRlZWJhNzU0ZGZmMGRlYWNlOApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglGcmkgSmFuIDE5IDIzOjA4OjM5IDIwMDcgKzAxMDAKCiAgICBNaW5vciBjb2RlIGNsZWFudXAuCgpjb21taXQgZjUzOWI3YmE3ZDdlZjZkZDE4N2M4MjA5NjA5MDAxY2IxY2Q5NWUzOQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJRnJpIEphbiAxOSAxOTo1NzoxMCAyMDA3ICswMTAwCgogICAgW1BBVENIXSBTQzMgYm9hcmQ6IGFkZGVkIENGR19DTURfQVVUT1NDUklQVC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCBkMGI2ZTE0MDg3ZGRkODc4OWYyMjRhNDhlMWQzM2YyYTVkZjRkMTY3CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglGcmkgSmFuIDE5IDE4OjA1OjI2IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIENGSTogZGVmaW5lIENGR19XUklURV9TV0FQUEVEX0RBVEEgZm9yIHRoZSBDRkktRmxhc2ggZHJpdmVyCgkJIGlmIHlvdSBtdXN0IHN3YXAgdGhlIGJ5dGVzIGJldHdlZW4gcmVhZGluZy93cml0aW5nLgoJCSAoTmVlZGVkIGZvciB0aGUgU0MzIGJvYXJkKQoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IDlkOGQ1YTViZmI2NDc2OGYyOWEwY2I0N2ZjMzdjZDZmNGM0MGUyNzYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBKYW4gMTggMTY6MDU6NDcgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQWRkIHN1cHBvcnQgZm9yIFByb2RyaXZlIFNDUFUgKFBETkIzIHZhcmlhbnQpIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDAwNTdkNzU4ZTNlODc0Y2JlN2YyNDc0NWQwY2NlOGMxY2I2YzIwN2UKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVRodSBKYW4gMTggMTE6NTQ6NTIgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIFByb2RyaXZlIFAzTXggc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAzNDE2N2EzNmMyOWVlOTQ2YjcyNzQ2NWRiNWMwMTQ3NDZhMDhlOTc4CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSmFuIDE4IDExOjQ4OjEwIDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBtaXNzaW5nIFRhaXNoYW4gY29uZmlnIGZpbGUKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2I0ODIwNzI1ZTlmYzQwOWM1Y2JjOGU4MzA1NGE2ZWQ1MjJkMjExMQpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IEphbiAxOCAxMToyODo1MSAyMDA3ICswMTAwCgogICAgW1BBVENIXSBGaXg6IENvbXBpbGVyd2FybmluZ3MgZm9yIFNDMyBib2FyZC4KCQkgVGhlIEVCQyBDb25maWd1cmF0aW9uIFJlZ2lzdGVyIGlzIG5vdyBieSBDRkdfRUJDX0NGRyBkZWZpbmFibGUKCQkgQWRkZWQgSkZGUzIgc3VwcG9ydCBmb3IgdGhlIFNDMyBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCA1ZmI2OTJjYWU1N2QxNzEwYzhmNTJhNDI3Y2Y3ZjM5YTM3MzgzZmNkCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUaHUgSmFuIDE4IDEwOjI1OjM0IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBzdXBwb3J0IGZvciBBTUNDIFRhaXNoYW4gUFBDNDQwR1ggZXZhbCBib2FyZAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA2ZDNlMDEwNzIzNWFhMGU2YTZkY2I3N2Y5ODg0NDk3MjgwYmY4NWFkCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBKYW4gMTYgMTg6MzA6NTAgMjAwNyArMDEwMAoKICAgIFJhbmFtZSBzb2xpZGNhcmQzIGludG8gc2MzOyBhZGQgcmVkdW5kYW50IGVudiBmb3Igc2MzCgpjb21taXQgMWJiYmJkZDIwZmNlYzk5MzM2OTcwMDBkY2Y1NWZmNzk3MjYyMjU5NgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgSmFuIDE2IDEyOjQ2OjM1IDIwMDcgKzAxMDAKCiAgICBVcGRhdGUgZGVmYXVsdCBlbnZpcm9ubWVudCBmb3IgU29saWRjYXJkMwoKY29tbWl0IDVhNWM1Njk4NmE5Y2NmNzE2NDJjOGI2Mzc0ZWIxODQ4N2IxNWZlY2QKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBKYW4gMTUgMDk6NDY6MjkgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gRml4IDQ0MFNQZSByZXYgQiBkZXRlY3Rpb24gZnJvbSBwcmV2aW91cyBwYXRjaAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBhNDQzZDMxNDEwYzU3MWVlOGY5NzBkYTgxOWE0NGQ2OThmZGQ2YjFmCkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTdW4gSmFuIDE0IDEzOjM1OjMxIDIwMDcgKzAxMDAKCglbRklYXSBjb3JyZWN0IEkyQyBXcml0ZXMgZm9yIHRoZSBMTTgxIFNlbnNvci4KCglTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KCmNvbW1pdCAwYmJhNTQ1MjgzNWYxOWE2MTIwNGVkY2RhM2E1ODExMmZkOGUyMjA4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVNhdCBKYW4gMTMgMTE6MTc6MTAgMjAwNyArMDEwMAoKICAgIFVuZG8gY29tbWl0IDMwMzNlYmIyOiByZXNldCBjb21tYW5kIGRvZXMgbm90IHRha2UgYW55IGFyZ3VtZW50cwoKICAgIEhhaXlpbmcgV2FuZydzIG1vZGlmaWNhdGlvbiB0byB0aGUgcmVzZXQgY29tbWFuZCB3YXMgYnJva2VuLCB1bmRvIGl0LgoKICAgIFNpZ25lZC1vZmYtYnk6IFdvbGZnYW5nIERlbmsgPHdkQGRlbnguZGU+Cgpjb21taXQgOTU5ODE3NzhjZmYwMDM4ZmQ5OTQxMDQ0ZDZhM2VkYTgxMGUzMzI1OApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IEphbiAxMyAwODowMTowMyAyMDA3ICswMTAwCgogICAgW1BBVENIXSBVcGRhdGUgNDQwU1AoZSkgY3B1IHJldmlzaW9ucwoKICAgIEFsc28gZGlzcGxheSBlbmFibGVkL2Rpc2FibGVkIFJBSUQgNiBzdXBwb3J0IGZvciA0NDBTUC80NDBTUGUgUFBDJ3MuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDc3ZGRjNWI5YWZiMzI1MjYyZmQ4ODc1MmJhNDMwYTFkZGVkMWYwYzcKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gMTMgMDc6NTk6NTYgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIFllbGxvd3N0b25lICg0NDBHUikgdG8gZGlzcGxheSBib2FyZCByZXYgYW5kIFBDSSBidXMgc3BlZWQKCiAgICBOb3cgdGhlIGJvYXJkIHJldmlzaW9uIGFuZCB0aGUgY3VycmVudCBQQ0kgYnVzIHNwZWVkIGFyZSBwcmludGVkIGFmdGVyCiAgICB0aGUgYm9hcmQgbWVzc2FnZS4KCiAgICBBbHNvIHRoZSBFQkMgaW5pdGlhbGlzaW5nIGlzIG5vdyBkb25lIHZpYSBkZWZpbmVzIGluIHRoZSBib2FyZCBjb25maWcKICAgIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDM2YWRmZjM2MmMyYzAxNDFmZjhhODEwZDQyYTdlNDc4Zjc3OTEzMGYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gMTMgMDc6NTk6MTkgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIFlvc2VtaXRlICg0NDBFUCkgdG8gZGlzcGxheSBib2FyZCByZXYgYW5kIFBDSSBidXMgc3BlZWQKCiAgICBOb3cgdGhlIGJvYXJkIHJldmlzaW9uIGFuZCB0aGUgY3VycmVudCBQQ0kgYnVzIHNwZWVkIGFyZSBwcmludGVkIGFmdGVyCiAgICB0aGUgYm9hcmQgbWVzc2FnZS4KCiAgICBBbHNvIHRoZSBFQkMgaW5pdGlhbGlzaW5nIGlzIG5vdyBkb25lIHZpYSBkZWZpbmVzIGluIHRoZSBib2FyZCBjb25maWcKICAgIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGUwYjllYThjOGEyOTRkZTZhNTM1MGFlNjM4ODc5ZDI0YjViNzA5ZDYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBKYW4gMTMgMDc6NTc6NTEgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIFNlcXVvaWEgKDQ0MEVQeCkgdG8gZGlzcGxheSBib2FyZCByZXYgYW5kIFBDSSBidXMgc3BlZWQKCiAgICBOb3cgdGhlIGJvYXJkIHJldmlzaW9uIGFuZCB0aGUgY3VycmVudCBQQ0kgYnVzIHNwZWVkIGFyZSBwcmludGVkIGFmdGVyCiAgICB0aGUgYm9hcmQgbWVzc2FnZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2E0M2JhMThlOTEwMjA2ZWY4MDYzZTRiMjJkMjgyNjMwYmZmM2ZkMgpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IEphbiAxMSAxNTo0NDo0NCAyMDA3ICswMTAwCgoJQWRkZWQgc3VwcG9ydCBmb3IgdGhlIFNPTElEQ0FSRCBJSUkgYm9hcmQgZnJvbSBFdXJvZGVzaWduCgoJU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgNmFiYWVlNDI2MjFjMDdlODFhMmNkMTg5YWQ0MzY4YjVlOGM1MDI4MApBdXRob3I6IFJlaW5oYXJkIFRoaWVzIDxSZWluaGFyZC5UaGllc0B3ZWIuZGU+CkRhdGU6CVdlZCBKYW4gMTAgMTQ6NDE6MTQgMjAwNyArMDEwMAoKICAgIEFkanVzdGVkIGRlZmF1bHQgZW52aXJvbm1lbnQgZm9yIGNhbTUyMDAgYm9hcmQuCgpjb21taXQgYmFiNWE5MGQ0Y2NjMWE0NmE4MTI3Yjg2N2ZhNTkwMjhjYzYyM2FkOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgSmFuIDEwIDE1OjM1OjUyIDIwMDcgKzAxMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HCgpjb21taXQgNzg3ZmExNTg2MGE1NzgzM2U1MGJkMzA1NTUwNzlhOWNkNGU1MTliOApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgSmFuIDEwIDAxOjI4OjM5IDIwMDcgKzAxMDAKCiAgICBGaXggYXV0b191cGRhdGUgZm9yIE1DQzIwMCBib2FyZC4KCiAgICBUaGUgaW52b2NhdGlvbiBvZiBkb19hdXRvX3VwZGF0ZSgpIGlzIG1vdmVkIHRvIHRoZSBlbmQgb2YgdGhlCiAgICBtaXNjX2luaXRfcigpIGZ1bmN0aW9uLCBhZnRlciB0aGUgZmxhc2ggbWFwcGluZ3MgaGF2ZSBiZWVuCiAgICBpbml0aWFsaXplZC4gUGxlYXNlIGZpbmQgYXR0YWNoZWQgYSBwYXRjaCB0aGF0IGltcGxlbWVudHMgdGhhdAogICAgY2hhbmdlLgoKICAgIEFsc28gY29ycmVjdCB0aGUgZGVjb2Rpbmcgb2YgdGhlIGtleXBhZCBzdGF0dXMuIFdpdGggdGhpcyB1cGRhdGUsIHRoZQogICAga2V5IHRoYXQgd2lsbCB0cmlnZ2VyIHRoZSB1cGRhdGUgaXMgQ29sdW1uIDIsIFJvdyAyLgoKY29tbWl0IGQ5Mzg0ZGUyZjU3MTA0NmU3MTA4MWJhZTIyYjQ5ZTNkNWNhMmUzZDUKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgSmFuIDEwIDAwOjI2OjE1IDIwMDcgKzAxMDAKCiAgICBDQU01MjAwIGZsYXNoIGRyaXZlciBtb2RpZmljYXRpb25zOgogICAgLSB1c2UgQ0ZJIGRyaXZlciAocmVwbGFjZXMgY3VzdG9tIGZsYXNoIGRyaXZlcikgZm9yIG1haW4gJ2NhbTUyMDAnIHRhcmdldAogICAgLSBhZGQgc2Vjb25kIGJ1aWxkIHRhcmdldCAnY2FtNTIwMF9uaW9zZmxhc2gnIHdoaWNoIHN0aWxsIHVzZXMgY3VzdG9tIGRyaXZlcgoKY29tbWl0IDY3ZmVhMDIyZmE5NTdmNTk2NTNiNTIzOGM3NDk2ZjgwYTZiNzA0MzIKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglUdWUgSmFuIDkgMTY6MDI6NDggMjAwNyArMDEwMAoKICAgIFNQQzE5MjA6IGNsZWFudXAgbWVtb3J5IGNvbnRvbGxlciBzZXR1cAoKY29tbWl0IDhmYzIxMDJmYWEyMzU5M2M4MDM4MTQzN2MwOWY3NzQ1YTE0ZGViNDAKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglUdWUgSmFuIDkgMTQ6NTc6MTQgMjAwNyArMDEwMAoKICAgIEZpeCB0aGUgY3B1IHNwZWVkIHNldHVwIHRvIHdvcmsgd2l0aCBhbGwgYm9hcmRzLgoKY29tbWl0IDkyOTVhY2I3NzQ4MWNmMDk5ZWY5YjQwZTFmYTJkMTQ1YjNjNzQ5MGMKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglUdWUgSmFuIDkgMTQ6NTc6MTMgMjAwNyArMDEwMAoKICAgIFNQQzE5MjA6IGFkZCBzdXBwb3J0IGZvciB0aGUgRk0xOEwwOCBSYW10cm9uIEZSQU0KCmNvbW1pdCAzOGNjZDJmZGYzMzY0YTUzZmU4MGU5YjM2NTMwM2VjZGFmYzllMjIzCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIEphbiA5IDE0OjU3OjEzIDIwMDcgKzAxMDAKCiAgICBTUEMxOTIwOiB1cGRhdGUgdGhlIEhQSSByZWdpc3RlciBhZGRyZXNzZXMgdG8gd29yayB3aXRoIHRoZSBzZWNvbmQKICAgIGdlbmVyYXRpb24gb2YgaGFyZHdhcmUKCmNvbW1pdCA1OTIxZTUzMTNmYzNlYWRkNDI3NzBjMmI5OWJhZGQ3ZmFlNWVjZjFlCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAY3JlYW1uZXQuZGU+CkRhdGU6CVR1ZSBKYW4gOSAxNDo1NzoxMyAyMDA3ICswMTAwCgogICAgTWlzY2VsbGFuaW91cyBzcGMxOTIwIHJlbGF0ZWQgY2xlYW51cHMKCmNvbW1pdCBlNGMyZDM3YWRjOGJiMWJmNjlkY2Y2MDBjYmM2Yzc1ZjkxNmE2MTIwCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIEphbiA5IDE0OjU3OjEyIDIwMDcgKzAxMDAKCiAgICBTUEMxOTIwIEdPL05PR08gbGVkIHNob3VsZCBiZSBzZXQgdG8gY29sb3IgcmVkIGluIFUtQm9vdAoKY29tbWl0IDBiZTYyNzI4YWFjNDU5YmEyNjhkNmQ3NTJlZDQ5ZWMwZTJiYzczNDgKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BjcmVhbW5ldC5kZT4KRGF0ZToJVHVlIEphbiA5IDE0OjU3OjEyIDIwMDcgKzAxMDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgdGhlIERTMzIzMSBSVEMKCmNvbW1pdCA4MTM5NTY3YjYwZDY3ODU4NGIwNWYwNzE4YTY4MWYyMDQ3YzVlMTRmCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAY3JlYW1uZXQuZGU+CkRhdGU6CVR1ZSBKYW4gOSAxNDo1NzoxMSAyMDA3ICswMTAwCgogICAgU01DMSB1c2VzIGV4dGVybmFsIENMSzQgaW5zdGVhZCBvZiBCUkcgb24gc3BjMTkyMAoKY29tbWl0IGQ4ZDlkZTFhMDJmYmQ4ODBiNjEzZDYwNzE0M2QxZjU3MzQyYWZmYzcKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BjcmVhbW5ldC5kZT4KRGF0ZToJVHVlIEphbiA5IDE0OjU3OjEwIDIwMDcgKzAxMDAKCiAgICBVcGRhdGUgdGhlIFNQQzE5MjAgQ01CIFBMRCBkcml2ZXIKCmNvbW1pdCAzZjM0Zjg2OTE2Mjc1MGU1ZTk5OWZkMTQwZjg4NGY1ZGU5NTJiY2ZlCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAY3JlYW1uZXQuZGU+CkRhdGU6CVR1ZSBKYW4gOSAxNDo1NzoxMCAyMDA3ICswMTAwCgogICAgQWRkIC8gZW5hYmxlIEkyQyBzdXBwb3J0IG9uIHRoZSBzcGMxOTIwIGJvYXJkCgpjb21taXQgZDI4NzA3ZGJjZTFlOWFjMjAxN2FkMDUxZGE0MTMzYmYyMmI0MjA0ZgpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGNyZWFtbmV0LmRlPgpEYXRlOglUdWUgSmFuIDkgMTQ6NTc6MTAgMjAwNyArMDEwMAoKICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgdG1zMzIwNjcxeCBob3N0IHBvcnQgaW50ZXJmYWNlIChIUEkpCgpjb21taXQgZjRlYjU0NTI5YmIzNjY0YzNhNTYyZTQ4OGI0NjBmZTA3NWY3OWQ2NwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTdW4gSmFuIDcgMDA6MTM6MTEgMjAwNyArMDEwMAoKICAgIFByZXBhcmUgZm9yIHJlbGVhc2UgMS4yLjAKCmNvbW1pdCBmMDdhZTdhOWRhZWYyN2EzZDAyMTNhNGYzZmUzOWQ1MzQyMTczYzAyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDYgMTU6NTg6MDkgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gNDR4OiBGaXggcHJvYmxlbSB3aXRoIEREUiBjb250cm9sbGVyIHNldHVwIChyZWZyZXNoIHJhdGUpCgogICAgVGhpcyBwYXRjaCBmaXhlcyBhIHByb2JsZW0gd2l0aCBhbiBpbmNvcnJlY3Qgc2V0dXAgZm9yIHRoZSByZWZyZXNoCiAgICB0aW1lciBvZiB0aGUgNDR4IEREUiBjb250cm9sbGVyIGluIHRoZSBmaWxlIGNwdS9wcGM0eHgvc2RyYW0uYwoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBmMTZjMWRhOTU3N2YwNmM1ZmMwODY1MWE0MDY1NTM3NDA3ZGU0NjM1CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgSmFuIDYgMTU6NTY6MTMgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIEFMUFIgYm9hcmQgZmlsZXMKCiAgICBUaGlzIHVwZGF0ZSBicmluZ3MgdGhlIEFMUFIgYm9hcmQgc3VwcG9ydCB0byB0aGUgbmV3ZXN0IHZlcnNpb24uCiAgICBJdCBhbHNvIGZpeGVzIGEgcHJvYmxlbSB3aXRoIHRoZSBOQU5EIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2QxZDkzN2Y5MDI1MGEzMjk4OGMzN2IyYjRhZjgzNjRkMjVkZThlZApBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEphbiA1IDExOjQ2OjA1IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIG5hbmQ6IEZpeCBwcm9ibGVtIHdpdGggb29ic2l6ZSBjYWxjdWxhdGlvbgoKICAgIEhlcmUgdGhlIGRlc2NyaXB0aW9uIGZyb20gQnJpYW4gQnJlbHNmb3JkIDxCcmlhbl9CcmVsc2ZvcmRAZGVsbC5jb20+OgoKICAgIFRoZSBIeW5peCBwYXJ0IHJldHVybnMgYSAweDFkIGluIHRoZSA0dGggSUQgYnl0ZS4gVGhlIFNhbXN1bmcgcGFydAogICAgcmV0dXJucyBhIDB4MTUuIEluIHRoZSBjb2RlIGZyYWdtZW50IGJlbG93IGJpdHMgWzE6MF0gZGV0ZXJtaW5lIHRoZQogICAgcGFnZSBzaXplLCBpdCBpcyBBTkRlZCB2aWEgIihleHRpZCAmIDB4MykiIHRoZW4gc2hpZnRlZCBvdXQuIFRoZQogICAgbmV4dCBmaWVsZCBpcyBhbHNvIEFORGVkIHdpdGggMHgzLiBIb3dldmVyIHRoaXMgaXMgYSBvbmUgYml0IGZpZWxkCiAgICBhcyBkZWZpbmVkIGluIHRoZSBIeW5peCBhbmQgU2Ftc3VuZyBwYXJ0cyBpbiB0aGUgNHRoIElEIGJ5dGUgdGhhdAogICAgZGV0ZXJtaW5zIHRoZSBvb2JzaXplLCBub3QgYSB0d28gYml0IGZpZWxkLiBJdCB3b3JrcyBvbiBTYW1zdW5nIGFzCiAgICBiaXRzWzM6Ml0gYXJlIDAxLiBIb3dldmVyIGZvciB0aGUgSHluaXggdGhlcmUgaXMgYSAxMSBpbiB0aGVzZSB0d28KICAgIGJpdHMsIHNvIHRoZSBvb2Igc2l6ZSBnZXRzIG1lc3NlZCB1cC4KCiAgICBJIGNoZWNrZWQgdGhlIGNvcnJlY3QgbGludXggY29kZSBhbmQgdGhlIHN1Z2dlc3RlZCBmaXggZnJvbSBCcmlhbiBpcwogICAgYWxzbyBhdmFpbGFibGUgaW4gdGhlIGxpbnV4IG5hbmQgbXRkIGRyaXZlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgYTc4YmM0NDNhZTVhNGE4YmE4NzU5MDU4N2Q1ZTM1YmY1YTc4N2IyZQpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIEphbiA1IDEwOjQwOjM2IDIwMDcgKzAxMDAKCiAgICBbUEFUQ0hdIENsZWFyIFBMQjRBMF9BQ1JbV1JQXSBvbiBTZXF1b2lhICg0NDBFUHgpCgogICAgVGhpcyBmaXggd2lsbCBtYWtlIHRoZSBNQUwgYnVyc3QgZGlzYWJsaW5nIHBhdGNoIGZvciB0aGUgTGludXgKICAgIEVNQUMgZHJpdmVyIG9ic29sZXRlLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAwMjM4ODk4MzgyODJiNjIzN2I0MDE2NjRmMjJkZDIyZGZiYTJjMDY2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglGcmkgSmFuIDUgMTA6Mzg6MDUgMjAwNyArMDEwMAoKICAgIFtQQVRDSF0gQWRkIEREUjIgb3B0aW1pemF0aW9uIGNvZGUgZm9yIFNlcXVvaWEgKDQ0MEVQeCkgYm9hcmQKCiAgICBUaGlzIGNvZGUgd2lsbCBvcHRpbWl6ZSB0aGUgRERSMiBjb250cm9sbGVyIHNldHVwIG9uIGEgYm9hcmQgc3BlY2lmaWMKICAgIGJhc2lzLgoKICAgIE5vdGU6IFRoaXMgY29kZSBkb2Vzbid0IHdvcmsgcmlnaHQgbm93IG9uIHRoZSBOQU5EIGJvb3RpbmcgaW1hZ2UgZm9yIHRoZQogICAgU2VxdW9pYSBib2FyZCwgc2luY2UgaXQgZG9lc24ndCBmaXQgaW50byB0aGUgNGtCeXRlcyBmb3IgdGhlIFNQTCBpbWFnZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2NlNGFjYmI2ODM5ODYzNGI4ZDAxMWVkN2JiMGQxMjI2OWM4NDIzMApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVRodSBEZWMgMjggMTk6MDg6MjEgMjAwNiArMDEwMAoKICAgIEZldyBWMzhCIGNoYW5nZXM6CiAgICAgIC0gZml4IGEgdHlwbyBpbiBWMzhCIGNvbmZpZyBmaWxlCiAgICAgIC0gbW92ZSB3YXRjaGRvZyBpbml0aWFsaXNhdGlvbiBlYXJsaWVyIGluIHRoZSBib290IHByb2Nlc3MKICAgICAgLSBhZGQgIndkdD1vZmYiIHRvIGRlZmF1bHQga2VybmVsIGNvbW1hbmQgbGluZSAoZGlzYWJsZXMga2VybmVsIHdhdGNoZG9nKQoKY29tbWl0IDkyZWI3MjliYWQ4NzY3MjVhZWVhOTA4ZDJhZGRiYTA4MDA2MjA4NDAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJV2VkIERlYyAyNyAwMToyNjoxMyAyMDA2ICswMTAwCgogICAgRml4IGJ1ZyBpbiBhZGFwdGlvbiBvZiBTdGVmYW5vIEJhYmljJ3MgQ0ZJIGRyaXZlciBwYXRjaC4KCmNvbW1pdCA5YzBmNDJlY2ZlMjVmN2ZmY2U4ZWM3YTgxNWYwMzg2NGQ3MjNmZmUzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVN1biBEZWMgMjQgMDE6NDI6NTcgMjAwNiArMDEwMAoKICAgIE1pbm9yIGNvZGUgY2xlYW51cC4KCmNvbW1pdCBkNzg0ZmRiMDU5MDBhZGEzNjg2ZDU3Nzg3ODNlMWZiMzI4ZTlmYjY2CkF1dGhvcjogU3RlZmFubyBCYWJpYyA8c2JhYmljQGRlbnguZGU+CkRhdGU6CVR1ZSBEZWMgMTIgMDA6MjI6NDIgMjAwNiArMDEwMAoKICAgIEZpeCBjZmkgZmFpbHVyZSB3aXRoIFNwYW5zaW9uIEZsYXNoIChTcGFuc2lvbiBGbGFzaCBEZXZpY2VzIGhhdmUgYSBkaWZmZXJlbnQgb2Zmc2V0IHRvIGdvIGludG8gQ0ZJIG1vZGUpCgpjb21taXQgMWIzYzM2MGMyMzVkYzY4NGVjMDZjMmQ1ZjE4M2YwYTI4MmNlNDVlMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJRnJpIERlYyAyMiAxNDoyOTo0MCAyMDA2ICswMTAwCgogICAgW1BBVENIXSBGaXggc2VxdW9pYSBmbGFzaCBhdXRvZGV0ZWN0aW9uIChmaW5hbGx5IGNvcnJlY3QpCgogICAgTm93IDMyTUJ5dGUgYW5kIDY0TUJ5dGUgRkxBU0ggaXMga25vdyB0byB3b3JrIGFuZCBvdGhlcgogICAgY29uZmlndXJhdGlvbnMgc2hvdWxkIHdvcmsgdG9vLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA4MmU1MjM2YThiNzE5NTQzNjQzZmQyNmQ1ODI3OTM4YWIyYjk0ODE4CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CUZyaSBEZWMgMjIgMTA6MzA6MjYgMjAwNiArMDEwMAoKICAgIE1pbm9yIGNvZGUgY2xlYW51cDsgdXBkYXRlIENIQU5HRUxPRy4KCmNvbW1pdCBmYTIzMDQ0NTY0MDkxZjA1ZDk2OTViZWI3YjViOWE5MzFlN2Y0MWE0CkF1dGhvcjogSGVpa28gU2Nob2NoZXIgPGhzQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUaHUgRGVjIDIxIDE3OjE3OjAyIDIwMDYgKzAxMDAKCiAgICBBZGRlZCBzdXBwb3J0IGZvciB0aGUgVFFNODI3MiBib2FyZCBmcm9tIFRRCgogICAgU2lnbmVkLW9mZi1ieTogSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Cgpjb21taXQgNmRlZGYzZDQ5ZGQxNGMzYmY1NDFjOGVjZWU3ZmZhYWM1ZjBlMWQ2YwpBdXRob3I6IEhlaWtvIFNjaG9jaGVyIDxoc0Bwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IERlYyAyMSAxNjoxNDo0OCAyMDA2ICswMTAwCgogICAgW1BBVENIXSBBZGQgc3VwcG9ydCBmb3IgdGhlIFVDMTAxIGJvYXJkIGZyb20gTUFOLgoKICAgIFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgoKY29tbWl0IGM4NGJhZDBlZjYwZTcwNTVhYjBiZDQ5YjkzMDY5NTA5Y2VjYzM4MmEKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgRGVjIDIwIDAwOjI5OjQzIDIwMDYgKzAxMDAKCiAgICBGaXggdG8gbWFrZSB0aGUgYmF1ZHJhdGUgY2hhbmdlcyBpbW1lZGlhdGUgZm9yIHRoZSBNQ0Y1MngyIGZhbWlseS4KCmNvbW1pdCBkYWE2ZTQxOGJjYzBjNzE3NzUyZThkZTkzOWMyMTNjNzkwMjg2MDk2CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIERlYyAyMCAwMDoyNzozMiAyMDA2ICswMTAwCgogICAgUHJlbGltaW5hcnkgc3VwcG9ydCBmb3IgdGhlIGlETVIgYm9hcmQgKENvbGRGaXJlKS4KCmNvbW1pdCBjZGI5N2E2Njc4ODI2Zjg1ZTdjNjllYWU2YTFjMTEzZDAzNGM5YjEwCkF1dGhvcjogQW5kcmVpIFNhZnJvbm92IDxzYWZyb25vdkBwb2xsdXguZGVueC5kZT4KRGF0ZToJRnJpIERlYyA4IDE2OjIzOjA4IDIwMDYgKzAxMDAKCiAgICBhdXRvbWF0aWMgdXBkYXRlIG1lY2hhbmlzbQoKY29tbWl0IDlkMjdiM2EwNjg1ZmY5OWZjNDc3OTgzZjMxNWMwNGQ0OWY2NTdhOGEKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBEZWMgNCAxNzo1Njo1OSAyMDA2ICswODAwCgogICAgU2xpZ2h0IGNvZGUgY2xlYW4gdXAuCiAgICBBZGQgY29tbWVudHMsIGRlbGV0ZSBkdXBsaWNhdGUgZGVmaW5lIGFuZCByZW1vdmUgc3BhY2VzLgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRkYmNkNjllM2UyNzc2ZWEzMzQ1OTBkNTc2OGUzNjkyYzVmYWU1YzEKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBEZWMgNCAxNzo1NDoyMSAyMDA2ICswODAwCgogICAgSW50cm9kdWNlIFBMTF9DRkdbMDo0XSB0YWJsZSBmb3IgcHJvY2Vzc29yIDc0NDgvNzQ0N0EvNzQ1NS83NDU3LiBUaGUgb3JpZ2luYWwKICAgIG11bHRpcGxpZXIgdGFibGUgY2FuIG5vdCByZWZlY3QgdGhlIHJlYWwgUExMIGNsb2NrIGJlaGF2aW9yIG9mIHRoZXNlCiAgICBwcm9jZXNzb3JzLiBQbGVhc2UgcmVmZXIgdG8gdGhlIGhhcmR3YXJlIHNwZWNpZmljYXRpb24gZm9yIGRldGFpbGVkCiAgICBpbmZvcm1hdGlvbiBvZiB0aGUgY29ycmVzcG9uZGluZyBwcm9jZXNzb3JzLgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRlZmUyMGM5NTc5MDExZDk5ODdmNjJlZDdkMzVlZThjZGMxY2YwZTAKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CU1vbiBEZWMgNCAxNDo0NjoyMyAyMDA2ICswODAwCgogICAgUmVtb3ZlIHRoZSBzdGF0aWMgTUFDIGFkZHJlc3MsIGlwIGFkZHJlc3MsIHNlcnZlciBpcCwgbmV0bWFzayBhbmQKICAgIGdhdGV3YXkgaXAgZm9yIG5ldHdvcmsgc2V0dGluZy4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2ZjEyYzYxY2YzMWVkNzNkNzJkZGZjZmM3MTJhODU0YTNhMTc3YWFmCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gRGVjIDQgMTQ6MzM6MDggMjAwNiArMDgwMAoKICAgIFJlbW92ZSB0aGUgZHVwbGljYXRlIG1lbW9yeSB0ZXN0IGNvZGUgZm9yIG1wYzc0NGlocGMyIGJvYXJkLgogICAgSWYgYSBtZW1vcnkgdGVzdCBpcyBuZWVkZWQsIHBsZWFzZSB1c2UgdGhlIGZ1bmN0aW9ucyBpbgogICAgcG9zdC9tZW1vcnkuYyBvciBtZW10ZXN0IGNvbW1hbmQuCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzljMWVlZWQ3ZGQxOTNmYTY1ZmIxOTQ2NTQxMzIwNDBkNDlkNGQzYQpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIERlYyAxIDE5OjAxOjI1IDIwMDYgKzA4MDAKCiAgICBGaXggdGhlIGV4Y2VwdGlvbiBvY2N1cmluZyBpbiBSQU0gdGFibGUgc2VhcmNoIGlzc3VlLgogICAgVGhlIG9yaWdpbmFsIHNlYXJjaF9vbmVfdGFibGUoKSBmdW5jdGlvbiBjb2RlIGNhbiBvbmx5IHByb2Nlc3NlcyB0aGUgc2VhcmNoCiAgICBmb3IgdGhlIGV4Y2VwdGlvbiBvY2N1cnJpbmcgaW4gRkxBU0gvUk9NLCBiZWNhdXNlIHRoZSBleGNlcHRpb24gYW5kIGZpeHVwCiAgICB0YWJsZSB1c3VhbGx5IGxvY2F0ZSBpbiBGTEFTSC4gSWYgdGhlIGV4Y2VwdGlvbiBhZGRyZXNzIGlzIGFsc28gaW4KICAgIEZMQVNILCBpdCB3aWxsIGJlIE9LLgogICAgSWYgdGhlIGV4Y2VwdGlvbiBvY2N1cnMgaW4gUkFNLCBhZnRlciB0aGUgdS1ib290IHJlbG9jYXRpb24sIGEKICAgIHJlbG9jYXRpb24gb2Zmc2V0IHNob3VsZCBiZSBhZGRlZC4KCiAgICBjbGVhbiB1cCB0aGUgY29kZSBpbiBjcHUvNzR4eF83eHgvY3B1LmMKCiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZWUzMTEyMTRlMGQyMTZmOTA0ZmVlYTI2OTU5OWQwOTM0YmY3MWYyMwpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIERlYyAxIDExOjQ3OjM2IDIwMDYgKzA4MDAKCiAgICBDbGVhbiB1cCB0aGUgY29kZSBhY2NvcmRpbmcgdG8gY29kZXN0eWxlOgogICAgKDEpIHJlbW92ZSBzb21lIEMrKyBjb21tZW50cy4KICAgICgyKSByZW1vdmUgdHJhaWxpbmcgd2hpdGUgc3BhY2UuCiAgICAoMykgcmVtb3ZlIHRyYWlsaW5nIGVtcHR5IGxpbmUuCiAgICAoNCkgSW5kZW50YXRpb24gYnkgdGFibGUuCiAgICAoNSkgcmVtb3ZlIHt9IGluIG9uZSBsaW5lIGNvbmRpdGlvbi4KICAgICg2KSBhZGQgc3BhY2UgYmVmb3JlICcoJyBpbiBmdW5jdGlvbiBjYWxsLgogICAgUmVtb3ZlIHNvbWUgd2VpcmQgcHJpbnRmICgpIG91dHB1dC4KICAgIEFkZCBuZWNlc3NhcnkgY29tbWVudHMuCiAgICBNb2RpZmllZCBNYWtlZmlsZSB0byBzdXBwb3J0IGJ1aWxkaW5nIGluIGEgc2VwYXJhdGUgZGlyZWN0b3J5LgoKY29tbWl0IGRkNTIwYmYzMTRjN2FkZDQxODNjNTE5MTY5MjE4MGY1NzZmOTZiNjAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IE5vdiAzMCAxODowMjoyMCAyMDA2ICswMTAwCgogICAgQ29kZSBjbGVhbnVwLgoKY29tbWl0IDhkOWE4NjEwYjgyNTYzMzExMzIyMjdlOWU2NTg1YzZiZDU3NDI3ODcKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IE5vdiAzMCAwMTo1NDowNyAyMDA2ICswMTAwCgogICAgQ29kZSBjbGVhbnVwLiBVcGRhdGUgQ0hBTkdFTE9HLgoKY29tbWl0IDcyNmU5MGFhY2YwYjFlY2IwZTcwNTViZTU3NDYyMmZiZTNlNDUwYmEKQXV0aG9yOiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+CkRhdGU6CVdlZCBOb3YgMjkgMTY6MjM6NDIgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gW01QQzUyeHhdIFVzZSBJUEIgYnVzIGZyZXF1ZW5jeSBmb3IgU09DIHBlcmlwaGVyYWxzCgogICAgVGhlIHNvYyBub2RlIG9mIHRoZSBtcGM1Mnh4IG5lZWRzIHRvIGJlIGxvYWRlZCB3aXRoIHRoZSBJUEIgYnVzIGZyZXF1ZW5jeSwKICAgIG5vdCB0aGUgWExCIGZyZXF1ZW5jeS4KCiAgICBUaGlzIHBhdGNoIGRlcGVuZHMgb24gdGhlIHByZXZpb3VzIHBhdGNoZXMgZm9yIE1QQzUyeHggZGV2aWNlIHRyZWUgc3VwcG9ydAoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KICAgIFNpZ25lZC1vZmYtYnk6IFN5bHZhaW4gTXVuYXV0IDx0bnRAMjQ2dE50LmNvbT4KCmNvbW1pdCAxZWFjMmE3MTQxN2I2Njc1YjExYWFjZTcyMTAyYTJlN2ZkZThmNWM2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTm92IDI5IDE1OjQyOjM3IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIEFkZCBzdXBwb3J0IGZvciBQcm9kcml2ZSBQM003NTAgJiBQM003NDQ4IChQM014KSBib2FyZHMKCiAgICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIFByb2RyaXZlIFAzTTc1MCAoUFBDNzUwICYgTVY2NDQ2MCkKICAgIGFuZCB0aGUgUDNNNzQ0OCAoTVBDNzQ0OCAmIE1WNjQ0NjApIFBNQyBtb2R1bGVzLiBCb3RoIG1vZHVsZXMgYXJlCiAgICBxdWl0ZSBzaW1pbGFyIGFuZCBzaGFyZSB0aGUgc2FtZSBib2FyZCBkaXJlY3RvcnkgInByb2RyaXZlL3AzbXgiCiAgICBhbmQgdGhlIHNhbWUgY29uZmlnIGZpbGUgInAzbXguaCIuCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDFiZGQ0NjgzMmFlYjU2OWY1ZTA0YjFmMjBmNjQzMTg1MjViNjUyNWEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVdlZCBOb3YgMjkgMTI6NTM6MTUgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gY29tbW9uL2NtZF9lbGYuYzogRW5hYmxlIGxvYWRhZGRyIGFzIHBhcmFtZXRlciBpbiBib290dnggY29tbWFuZAoKICAgIEluIHRoZSBib290dnggY29tbWFuZCB0aGUgbG9hZCBhZGRyZXNzIHdhcyBvbmx5IHJlYWQgZnJvbSB0aGUgZW52CiAgICB2YXJpYWJsZSAibG9hZGFkZHIiIGFuZCBub3Qgb3B0aW9uYWxseSBwYXNzZWQgYXMgcGFyYW10ZXIgYXMgZGVzY3JpYmVkCiAgICBpbiB0aGUgaGVscC4gVGhpcyBpcyBmaXhlZCB3aXRoIHRoaXMgcGF0Y2guIFRoZSBiZWhhdmlvdXIgaXMgbm93IHRoZQogICAgc2FtZSBhcyBpbiB0aGUgYm9vdGVsZiBjb21tYW5kLgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0ZTI2ZjEwNzRjM2FjMWJkOGZkMDk0ZjBkYzRhMWM0YTBiMTVhNTkyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglXZWQgTm92IDI5IDEyOjAzOjU3IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIGluY2x1ZGUvcHBjNDQwLmggbWlub3IgZXJyb3IgYWZmZWN0aW5nIGludGVycnVwdHMKCiAgICBGaXhlZCBpbmNsdWRlL3BwYzQ0MC5jIGZvciBVSUMgYWRkcmVzcyBCdWcKCiAgICBDb3JyZWN0cyBidWcgYWZmZWN0aW5nIHRoZSBhZGRyZXNzZXMgZm9yIHRoZSB1bml2ZXJzYWwgaW50ZXJydXB0CiAgICBjb250cm9sbGVyIFVJQzIgYW5kIFVJQzMgb24gdGhlIFBQQzQ0MCBFcHgsIEdSeCwgYW5kIFNQRSBjaGlwcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWZmIE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxOTM5ZDk2OTQ0M2NjZjMxNmNhYjJiZjMyYWIxMDI3ZDRkYjViYTFhCkF1dGhvcjogSm9ha2ltIFRqZXJubHVuZCA8Sm9ha2ltLlRqZXJubHVuZEB0cmFuc21vZGUuc2U+CkRhdGU6CVR1ZSBOb3YgMjggMTY6MTc6MjcgMjAwNiAtMDYwMAoKICAgIE1ha2UgZnNsLWkyYyBub3QgY29uZmxpY3Qgd2l0aCBTT0ZUIEkyQwoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTQxOThiZjc2OGZkYzk1OGUzYzFhZmQyNDA0ZTUyNjIyMDhlOThkNwpBdXRob3I6IEpvYWtpbSBUamVybmx1bmQgPEpvYWtpbS5UamVybmx1bmRAdHJhbnNtb2RlLnNlPgpEYXRlOglUdWUgTm92IDI4IDE2OjE3OjE4IDIwMDYgLTA2MDAKCiAgICBGaXggSTJDIG1hc3RlciBhZGRyZXNzIGluaXRpYWxpemF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgY2YzZDA0NWU1MWNhOGRjYzZjZjc1OTgyNzE0MDg2MWQ2YWMyNWMwNApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBOb3YgMjggMjM6MzE6MTkgMjAwNiAtMDYwMAoKICAgIEFzc2lnbiBtYWludGFpbmVycyBmb3IgbXBjODM0OWVtZHMgYW5kIG1wYzgzNjBlbWRzCgogICAgRGF2ZSBmb3IgbXBjODM2MGVtZHMsIGFuZCBtZSBmb3IgbXBjODM0OWVtZHMuCgpjb21taXQgMWFhOTM0YzgxYjc3ZjIwODBkM2NhNGIyMjZlYWI2N2IxN2EzMzk2MQpBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBOb3YgMjggMjM6Mjg6MzMgMjAwNiAtMDYwMAoKICAgIEVsaW1pbmF0ZSBnY2MgNCAndXNlZCB1bmluaXRpYWxpemVkJyB3YXJuaW5ncyBpbiBkcml2ZXJzL3FlL3VjY2YuYwoKICAgIGdpdmUgaW5pdGlhbCB2YWx1ZXMgZm9yIHJlZ19udW0sIHNoaWZ0LCBwX2NteHVjciBpbiB1Y2Nfc2V0X2Nsa19zcmMKICAgIHNpbmNlIHRoZXkgYXJlIHBhc3NlZCBieSByZWZlcmVuY2UgdG8gdWNjX2dldF9jbXh1Y3JfcmVnIGFuZCBhc3NpZ25lZC4KCmNvbW1pdCBlODU3YTViZGIzOTU0Yjg5NmMwOTIwY2I5ZDhkMmIxYjljMTA3Y2U1CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE5vdiAyOCAxMjowOTozNSAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogTWlzY2VsbGFuZW91cyBjb2RlIHN0eWxlIGZpeGVzCgogICAgSW1wbGVtZW50IHZhcmlvdXMgY29kZSBzdHlsZSBmaXhlcyBhbmQgc2ltaWxhciBjaGFuZ2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTU5NTgxYzU2YWI1ZDZlMDIwN2RkYWMzYjJjMWQ1NWNiMzZlYzcwNgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE5vdiAyOCAxNzo1NTo0OSAyMDA2ICswMTAwCgogICAgW1BBVENIXSBFbmFibGUgdGhlIEljZUN1YmUvbGl0ZTUyMDAgdmFyaWFudHMgdG8gcGFzcyBhIGRldmljZSB0cmVlIHRvIExpbnV4LgoKICAgIFRoaXMgcGF0Y2ggYWRkcyB0aGUgY29kZSBhbmQgY29uZmlndXJhdGlvbiBuZWNlc3NhcnkgdG8gYm9vdCB3aXRoIGFuCiAgICBhcmNoL3Bvd2VycGMgTGludXgga2VybmVsLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QGdtYWlsLmNvbT4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU3MzJmYWVjOTVhODNjYjQ2OGI0ODUwYWU4MDdjODMwMWRkZThmNmEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMjggMTY6MDk6MjQgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gUFBDNHh4OiA0NDBTUCBSZXYuIEMgZGV0ZWN0aW9uIGFkZGVkCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGU3ZjNlOWZmMDFmYmQ3ZmE3MmViNDJhOTY3NWZiZWQ2YmM0NzM2YjAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBOb3YgMjggMTE6MDQ6NDUgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gbmFuZDogRml4IHBhdGNoIG1lcmdlIHByb2JsZW0KCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgNThlM2IxNGMxOGVkMzI4OGNlZWY4ZDA4Njk0NmRiZjNkZjY0Y2NmMgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJVHVlIE5vdiAyOCAxMTowNDo0NSAyMDA2ICswMTAwCgogICAgW1BBVENIXSBuYW5kOiBGaXggcGF0Y2ggbWVyZ2UgcHJvYmxlbQoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0ZjRiNjAyZWM3NTI0YTAzMmJkZjNjNmQyOGM3ZjUyNWE0YTY3ZWFhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMjI6NTM6NTMgMjAwNiArMDEwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCmNvbW1pdCBmNmU0OTVmNTRjZGI4ZmUzNDBiOWMwM2RlYWI0MGFkNzQ2ZDUyZmFlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDE3OjQzOjI1IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIDR4eF9lbmV0LmM6IENvcnJlY3QgdGhlIHNldHRpbmcgb2Ygem1paWZlciByZWdpc3RlcgoKICAgIFBhdGNoIGJlbG93IGNvcnJlY3RzIHRoZSBzZXR0aW5nIG9mIHRoZSB6bWlpZmVyIHJlZ2lzdGVyLCBpdCB3YXMKICAgIG92ZXJ3cml0dGluZyB0aGUgcmVnaXN0ZXIgcmF0aGVyIHRoYW4gT1JpbmcgdGhlIHNldHRpbmdzLgoKICAgIFNpZ25lZC1vZmYtYnk6IE5laWwgV2lsc29uIDxOV2lsc29uQGFpcnNwYW4uY29tPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGQxYTcyNTQ1Mjk2ODAwYjdlMjE5ZjkzMTA0YWQ1ODM2ZjAwMDNkNjYKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTc6MzQ6MTAgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gU2VsZWN0IE5BTkQgZW1iZWRkZWQgZW52aXJvbm1lbnQgZnJvbSBib2FyZCBjb25maWd1cmF0aW9uCgogICAgVGhlIGN1cnJlbnQgTkFORCBCb290bG9hZGVyIHNldHVwIGZvcmNlcyB0aGUgZW52aXJvbm1lbnQKICAgIHZhcmlhYmxlcyB0byBiZSBpbiBsaW5lIHdpdGggdGhlIGJvb3Rsb2FkZXIuIFRoaXMgY2hhbmdlCiAgICBlbmFibGVzIHRoZSBjb25maWd1cmF0aW9uIHRvIGJlIG1hZGUgaW4gdGhlIGJvYXJkIGluY2x1ZGUKICAgIGZpbGUgaW5zdGVhZCBzbyB0aGF0IGl0IGNhbiBiZSBpbmRpdmlkdWFsbHkgZW5hYmxlZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBOaWNrIFNwZW5jZSA8bmljay5zcGVuY2VAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxNTc4NDg2Mjg1N2MzYzIyMTQ0OThkZWZjZmVkODRmZjEzN2ZiODFlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDE3OjIyOjE5IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIG5hbmRfd2FpdCgpIHRpbWVvdXQgZml4ZXMKCiAgICBUd28gZml4ZXMgZm9yIHRoZSBuYW5kX3dhaXQoKSBmdW5jdGlvbiBpbgogICAgZHJpdmVycy9uYW5kL25hbmRfYmFzZS5jOgoKICAgIDEuIFVzZSBjb3JyZWN0IHRpbWVvdXRzLiBUaGUgb3JpZ2luYWwgdGltZW91dHMgaW4gTGludXgKICAgIHNvdXJjZSBhcmUgNDAwbXMgYW5kIDIwbXMgbm90IDQwcyBhbmQgMjBzCgogICAgMi4gUmV0dXJuIGNvcnJlY3QgZXJyb3IgdmFsdWUgaW4gY2FzZSBvZiB0aW1lb3V0LiAwIGlzCiAgICBpbnRlcnByZXRlZCBhcyBPSy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBSdWkgU291c2EgPHJ1aS5zb3VzYUBsYXBvc3RlLm5ldD4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBkYTU1NTNiMDk1YmYwNGY0ZjEwOWFkN2U1NjVkYWUzYWJhNDdiMjMwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDE3OjA0OjA2IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIEFsbG93IENPTkZJR19PRl9GTEFUX1RSRUUgdG8gYm9vdCBhIG5vbi1hcmNoL3Bvd2VycGMga2VybmVsCgogICAgVGhpcyBwYXRjaCBhbGxvd3MgYW4gYXJjaC9wcGMga2VybmVsIHRvIGJlIGJvb3RlZCBieSBqdXN0IHBhc3NpbmcgMSBvciAyCiAgICBhcmd1bWVudHMgdG8gYm9vdG0uICBJdCByZW1vdmVzIHRoZSBnZXRlbnYoImRpc2FibGVfb2YiKSB0ZXN0IHRoYXQgdXNlZAogICAgdG8gYmUgdXNlZCBmb3IgdGhpcyBwdXJwb3NlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEdyYW50IExpa2VseSA8Z3JhbnQubGlrZWx5QHNlY3JldGxhYi5jYT4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGE5Mzk4ZTAxODU5Mzc4MmM1ZmE3ZDA3NDE5NTVmYzEyNTZiMzRjMWUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxNTozMjo0MiAyMDA2ICswMTAwCgogICAgTWlub3IgY29kZSBjbGVhbnVwLiBVcGRhdGUgQ0hBTkdFTE9HLgoKY29tbWl0IDE3MjliOTJjZGU1NzU0NzY2ODRiZmZlODE5ZDBiNzc5MWI1N2JmZjIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTQ6NTI6MDQgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gNHh4OiBGaXggcHJvYmxlbSB3aXRoIGJvYXJkIHNwZWNpZmljIHJlc2V0IGNvZGUgKG5vdyBmb3IgcmVhbCkKCiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgY2M1ZWU4YTkyYTBlM2NhNmY3MjdhZjcxYjhmZDIwNjQ2MGM3YWZkNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxNDo0OTo1MSAyMDA2ICswMTAwCgogICAgW1BBVENIXSBhbHByOiByZW1vdmUgdW51c2VkIGJvYXJkIHNwZWNpZmljIGZsYXNoIGRyaXZlcgoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCAxZjk0ZDE2MmUyYjVmMGVkYzI4ZDlmYjExNDgyNTAyYzQ0ZDIxOGUxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDE0OjQ4OjQxIDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIDR4eDogRml4IHByb2JsZW0gd2l0aCBib2FyZCBzcGVjaWZpYyByZXNldCBjb2RlCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IGVjMGMyZWM3MjVhZWM5NTI0YTE3N2E3N2NlNzU1NTllNjQ0YTkzMWEKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTQ6NDY6MDYgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gUmVtb3ZlIHRlc3RpbmcgNHh4IGVuZXQgUEhZIHNldHVwCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDFjMmNlMjI2MjA2OTUxMGYzMWM3ZDNmZDdlZmQzZDU4YjhjMGMxNDgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjcgMTQ6MTI6MTcgMjAwNiArMDEwMAoKICAgIFtQQVRDSF0gVXBkYXRlIFByb2RyaXZlIEFMUFIgYm9hcmQgc3VwcG9ydCAoNDQwR1gpCgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDU4YjQ4NTc3NjY5OGMzZDcxZWM1YTIxNWUzOTIxMjNiNGMxNWFmYTMKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDExOjUxOjIxIDIwMDYgKzAxMDAKCiAgICBBZGQgYSBzbWFsbCBSRUFETUUgd2l0aCBpbmZvcm1hdGlvbiBvbiB0aGUgZ2VuZXJpYyBvaGNpIGRyaXZlci4KCmNvbW1pdCBhZTNiNzcwZTRlYWU4ZTk4YjZlOWUyOTY2MmUxOGM0N2ZkZjAxNzFmCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxMTo0Njo0NiAyMDA2ICswMTAwCgogICAgRml4IHNvbWUgZW5kaWFubmVzcyBpc3N1ZXMgcmVsYXRlZCB0byB0aGUgZ2VuZXJpYyBvaGNpIGRyaXZlcgoKY29tbWl0IDdiNTliM2M3YThjZTJlNGI1NjdhYmY5OWMxY2Q2NjdiZjM1Yjk0MTgKQXV0aG9yOiBNYXJrdXMgS2xvdHpidWVjaGVyIDxta0BkZW54LmRlPgpEYXRlOglNb24gTm92IDI3IDExOjQ0OjU4IDIwMDYgKzAxMDAKCiAgICBJbnRyb2R1Y2VkIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbiBDT05GSUdfVVNCX09IQ0lfTkVXIGluIG9yZGVyIHRvIGJlIGFibGUKICAgIHRvIGNob29zZSBiZXR3ZWVuIHRoZSBvbGQgYW5kIHRoZSBnZW5lcmljIE9IQ0kgZHJpdmVycy4KCmNvbW1pdCA1M2UzMzZlOWZmYzUxMDM1YmRjNGU1ODY3NjMxYjMzNzg3NjFiNGRmCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJTW9uIE5vdiAyNyAxMTo0MzowOSAyMDA2ICswMTAwCgogICAgTW9kaWZpZWQgdGhlIG1wYzV4eHggYW5kIHRoZSBwcGM0eHggY3B1IHRvIHVzZSB0aGUgZ2VuZXJpYyBPSENJIGRyaXZlcgogICAgYW5kIGFkYXB0ZWQgYm9hcmQgY29uZmlncyBUUU01MjAwIGFuZCB5b3NlbWl0ZSBhY2NvcmRpbmdseS4gVGhpcyBjb21taXQKICAgIGFsc28gbWFrZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJvb3QgaHViIHBvcnRzIGNvbmZpZ3VyYWJsZQogICAgKENGR19VU0JfT0hDSV9NQVhfUk9PVF9QT1JUUykuCgpjb21taXQgNzhkNjIwZWJiNTg3MWQyNTIyNzBkZWRmYWQ2MGM2NTY4OTkzYjc4MApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQGF0bGFzLmRlbnguZGU+CkRhdGU6CVRodSBOb3YgMjMgMjI6NTg6NTggMjAwNiArMDEwMAoKICAgIFVwZGF0ZXMgZm9yIFRRTTUyMDAgbW9kdWxlczoKICAgIC0gZml4IG9mZi1ieS1vbmUgZXJyb3IgaW4gYm9hcmQvdHFtNTIwMC9jYW01MjAwX2ZsYXNoLmMgZXJyb3IgbWVzc2FnZQogICAgLSBzaW1wbGlmeSAidWRhdGUiIGRlZmluaXRpb25zCgpjb21taXQgMjA1MzI4MzMwNGVlZGRmMjUwZDEwOWU2NzkxZWI2ZmE0Y2FkMTRmNwpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJV2VkIE5vdiAyMiAxMzoyMDo1MCAyMDA2ICswMTAwCgogICAgW1BBVENIXSBQUEM0eHggc3RhcnQuUzogRml4IGZvciBwcm9jZXNzb3IgZXJyYXRhCgogICAgRml4ZWQgY3B1L3BwYzR4eC9zdGFydC5TIGZvciA0NDBFUHggRXJyYXRhOiBmdXJ0aGVyIGNvcnJlY3RzIFBQQzQ0MEVQeAogICAgZXJyYXRhIDEuMTI6IDQ0MF8zMyBieSBtb3ZpbmcgcGF0Y2ggdXAgaW4gY29kZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKZWZmIE1hbm4gPG1hbm5qQGVtYmVkZGVkcGxhbmV0LmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCA0ZWY2MjUxNDAzZjYzNzg0MTAwMGUwZmVmOWU4MzJhYTAxMzM5ODIyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDIwIDIwOjM5OjUyIDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIFVwZGF0ZSBBTUNDIFNlcXVvaWEgY29uZmlnIGZpbGUgdG8gc3VwcG9ydCA2NE1CeXRlIE5PUiBGTEFTSAoKICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBlNGJiZDhkYTE2NGI5NzZkMzg2MTZiZDljNjljNWU4NmUxOTNjZGYwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBOb3YgMjAgMTA6Mjg6MzAgMjAwNiArMDEwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCmNvbW1pdCAyNjA0MjFhMjFlOTM0YTY4ZDMxZmI2MTI1YjBmYmQyNjMxYThjYTIwCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglNb24gTm92IDEzIDEzOjU1OjI0IDIwMDYgKzAxMDAKCiAgICBbUEFUQ0hdIENGSSBkcml2ZXIgQU1EIENvbW1hbmQgU2V0IFRvcCBib290IGdlb21ldHJ5IHJldmVyc2FsLCBldGMuIFtVcGRhdGVkXQoKICAgICAgICogQWRkcyBzdXBwb3J0IGZvciBBTUQgY29tbWFuZCBzZXQgVG9wIEJvb3QgZmxhc2ggZ2VvbWV0cnkgcmV2ZXJzYWwKICAgICAgICogQWRkcyBzdXBwb3J0IGZvciByZWFkaW5nIEpFREVDIE1hbnVmYWN0dXJlciBJRCBhbmQgRGV2aWNlIElECiAgICAgICAqIEFkZHMgc3VwcG9ydCBmb3IgZGlzcGxheWluZyBjb21tYW5kIHNldCwgbWFudWZhY3R1cmVyIGlkIGFuZAoJIGRldmljZSBpZHMgKGZsaW5mbykKICAgICAgICogTWFrZXMgZmxpbmZvIG91dHB1dCB0byBiZSBjb25zaXN0ZW50IHdoZW4gQ0ZHX0ZMQVNIX0VNUFRZX0lORk8gZGVmaW5lZAogICAgICAgKiBSZW1vdmVzIG91dGRhdGVkIGNoYW5nZSBoaXN0b3J5IChyZWZlciB0byBnaXQgbG9nIGluc3RlYWQpCgogICAgU2lnbmVkLW9mZi1ieTogVG9sdW5heSBPcmt1biA8bGlzdG1lbWJlckBvcmt1bi51cz4KICAgIFNpZ25lZC1vZmYtYnk6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KCmNvbW1pdCBiMjFiNTExZDRjNTA0MDhmNDg1M2Y0NmYwNmI2MDEyNzIxOTYyMjNmCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVN1biBOb3YgMTIgMjE6MTM6MjMgMjAwNiArMDEwMAoKICAgIFVwZGF0ZSBDSEFOR0VMT0cKCmNvbW1pdCBjZTNmMWE0MGM1MDdhZmJhYjA2YzVlYjU4Y2NkYzY3MTNlZGEzMjQ1CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJU2F0IE5vdiAxMSAyMjo0ODoyMiAyMDA2ICswMTAwCgogICAgRGlzYWJsZSB0aGUgd2F0Y2hkb2cgaW4gdGhlIGRlZmF1bHQgY29uZmlnIGZvciB0aGUgVjM4QiBib2FyZC4KCmNvbW1pdCA0NGE0N2U2ZGIyNjk0ODQxMjExZjFjOGZkYmFmZDM2OTkyZTljZDFhCkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJU2F0IE5vdiAxMSAyMjo0MzowMCAyMDA2ICswMTAwCgogICAgQ2hhbmdlIHRoZSBHUElPIHBpbiBtdWx0aXBsZXhpbmcgY29uZmlndXJhdGlvbiBmb3IgVjM4Qi4gVGhlIFVTQiBHUElPIHBpbgogICAgZ3JvdXAgaXMgZW5hYmxlZCBmb3IgVVNCIGVhcmxpZXIgKGluIGNwdV9pbml0X2YoKSBpbnN0ZWFkIG9mCiAgICB1c2JfbG93bGV2ZWxfaW5pdCgpKS4KCmNvbW1pdCA5MTY1MGIzZTRkZTY4ODAzOGQ0ZjcxMjc5YzQ0ODU4ZTNlMmM2ODcwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBOb3YgNiAxNzowNjozNiAyMDA2ICswMTAwCgogICAgU2VxdWVudGlhbCBhY2Nlc3NlcyB0byBub24tZXhpc3RlbnQgbWVtb3J5IG11c3QgYmUgc3luY2hyb25pemVkLAogICAgYXQgbGVhc3Qgb24gRzIgY29yZXMuCgogICAgVGhpcyBmaXhlcyBnZXRfcmFtX3NpemUoKSBwcm9ibGVtcyBvbiBNUEM1MjAwIFJldi4gQiBib2FyZHMuCgpjb21taXQgYmU1ZTYxODE1ZDVhMWZhYzI5MGNlOWMwZWYwOWNiNmE4ZTQyODhmYQpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBOb3YgMyAxOToxNTowMCAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogVXBkYXRlIDgzeHggdG8gdXNlIGZzbF9pMmMuYwoKICAgIFVwZGF0ZSB0aGUgODN4eCB0cmVlIHRvIHVzZSBJMkMgc3VwcG9ydCBpbiBkcml2ZXJzL2ZzbF9pMmMuYy4gIERlbGV0ZQogICAgY3B1L21wYzgzeHgvaTJjLmMsIGluY2x1ZGUvYXNtLXBwYy9pMmMuaCwgYW5kIGFsbCByZWZlcmVuY2VzIHRvIHRob3NlIGZpbGVzLgogICAgQWRkZWQgbXVsdGlwbGUgSTJDIGJ1cyBzdXBwb3J0IHRvIGZzbF9pMmMuYy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQyMzlkNzRiMWM5Mzc5ODRiYzUxOTA4M2E4ZTdkZTM3M2EzOTBmMDYKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTm92IDMgMTI6MDA6MjggMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IFJlcGxhY2UgQ0ZHX0lNTVJCQVIgd2l0aCBDRkdfSU1NUgoKICAgIFJlcGxhY2UgYWxsIGluc3RhbmNlcyBvZiBDRkdfSU1NUkJBUiB3aXRoIENGR19JTU1SLCBzbyB0aGF0IHRoZSA4M3h4CiAgICB0cmVlIG1hdGNoZXMgdGhlIG90aGVyIDh4eHggdHJlZXMuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmN2ZiMmU3MDNlYzk2ODg1NDE0MTY5NjI3MjRhZGZmNzBhNzMyMmNiCkF1dGhvcjogS2ltIFBoaWxsaXBzIDxraW0ucGhpbGxpcHNAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE5OjQ3OjExIDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBMaW5kZW50IGFuZCBjbGVhbiB1cCBjcHUvbXBjODN4eC9zcGVlZC5jCgpjb21taXQgOTBmMzBhNzEwYTNjNjE5YjU0MDU4NjBhNjg2YzRkZGZjNDk1ZDRiNgpBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxODowNTo1MCAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogRml4IHRoZSBpbmNvcnJlY3QgZGNieiBvcGVyYXRpb24KCiAgICBUaGUgODM0eCByZXYxLnggc2lsaWNvbiBoYXMgb25lIENQVTUgZXJyYXRhLgoKICAgIFRoZSBpc3N1ZSBpcyB3aGVuIHRoZSBkYXRhIGNhY2hlIGxvY2tlZCB3aXRoCiAgICBISUQwW0RMT0NLXSwgdGhlIGRjYnogaW5zdHJ1Y3Rpb24gbG9va3MgbGlrZSBuby1vcCBpbnN0LgoKICAgIFRoZSByaWdodCBiZWhhdmlvciBvZiB0aGUgZGF0YSBjYWNoZSBpcyB3aGVuIHRoZSBkYXRhIGNhY2hlCiAgICBMb2NrZWQgd2l0aCBISUQwW0RMT0NLXSwgdGhlIGRjYnogaW5zdHJ1Y3Rpb24gYWxsb2NhdGVzCiAgICBuZXcgdGFncyBpbiBjYWNoZS4KCiAgICBUaGUgODM0eCByZXYzLjAgYW5kIGxhdGVyIGFuZCA4MzYwIGhhdmUgbm90IHRoaXMgYnVnIGluc2lkZS4KCiAgICBTbywgd2hlbiA4MzR4IHJldjMuMC84MzYwIGFyZSB3b3JraW5nIHdpdGggRUNDLCB0aGUgZGNiegogICAgaW5zdHJ1Y3Rpb24gd2lsbCBjb3JydXB0IHRoZSBzdGFjayBpbiBjYWNoZSwgdGhlIHByb2Nlc3NvciB3aWxsCiAgICBjaGVja3N0b3AgcmVzZXQuCgogICAgSG93ZXZlciwgdGhlIDgzNHggcmV2MS54IGNhbiB3b3JrIHdpdGggRUNDIHdpdGggdGhlc2UgY29kZSwKICAgIGJlY2F1c2UgdGhlIHNpbGxpY29uIGhhcyB0aGlzIGNhY2hlIGJ1Zy4gVGhlIGRjYnogd2lsbCBub3QKICAgIGNvcnJ1cHQgdGhlIHN0YWNrIGluIGNhY2hlLgogICAgUmVhbGx5LCBpdCBpcyB0aGUgZmF1bHQgY29kZSBydW5uaW5nIG9uIGZhdWx0IHNpbGxpY29uLgoKICAgIFRoaXMgcGF0Y2ggZml4IHRoZSBpbmNvcnJlY3QgZGNieiBvcGVyYXRpb24uIEluc3RlYWQgb2YKICAgIENQVSBGUCB3cml0aW5nIHRvIGluaXRpYWxpc2UgdGhlIEVDQy4KCiAgICBDSEFOR0VMT0c6CiAgICAqIEZpeCB0aGUgaW5jb3JyZWN0IGRjYnogb3BlcmF0aW9uIGluc3RlYWQgb2YgQ1BVIEZQCiAgICB3cml0aW5nIHRvIGluaXRpYWxpc2UgdGhlIEVDQyBtZW1vcnkuIE90aGVyd2lzZSwgaXQKICAgIHdpbGwgY29ycnVwdCB0aGUgc3RhY2sgaW4gY2FjaGUsIFRoZSBwcm9jZXNzb3Igd2lsbCBjaGVja3N0b3AKICAgIHJlc2V0LgoKICAgIFNpZ25lZC1vZmYtYnk6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmYwYjU0MmQ2NzczYTVhMWNiY2U3NzY5MWYwMDliMDZkOWFlYjU3ZApBdXRob3I6IEtpbSBQaGlsbGlwcyA8a2ltLnBoaWxsaXBzQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBOb3YgMSAwMDoxMDo0MCAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogYWRkIE9GX0ZMQVRfVFJFRSBiaXRzIHRvIDgzeHggYm9hcmRzCgogICAgYWRkIGZ0X3BjaV9zZXR1cCwgT0ZfQ1BVLCBPRl9TT0MsIE9GX1RCQ0xLLCBhbmQKICAgIFNURE9VVF9QQVRIIGNvbmZpZ3VyYXRpb24gYml0cyB0byBtcGM4MzQ5ZW1kcywKICAgIG1wYzgzNDlpdHgsIGFuZCBtcGM4MzYwZW1kcyBib2FyZCBjb2RlLgoKICAgIHJlZG8gZW52aXJvbm1lbnQgdG8gdXNlIGJvb3RtIHdpdGggdGhlIGZkdGFkZHIKICAgIGZvciBib290aW5nIEFSQ0g9cG93ZXJwYyBrZXJuZWxzIGJ5IGRlZmF1bHQsCiAgICBhbmQgcHJvdmlkZSBkZWZhdWx0IGZkdGFkZHIgdmFsdWVzLgoKY29tbWl0IDQ4MDQxMzY1YjM0MjA1ODlhZDQ2NGViYzc3NTJlMDA1MzUzOGI3MjkKQXV0aG9yOiBLaW0gUGhpbGxpcHMgPGtpbS5waGlsbGlwc0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTm92IDEgMDA6MDc6MjUgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IGNoYW5nZSBmdCBjb2RlIHRvIG1vZGlmeSBsb2NhbC1tYWMtYWRkcmVzcyBwcm9wZXJ0eQoKICAgIFVwZGF0ZSA4M3h4IE9GIGNvZGUgdG8gdXBkYXRlIGxvY2FsLW1hYy1hZGRyZXNzIHByb3BlcnRpZXMKICAgIGZvciBldGhlcm5ldCBpbnN0ZWFkIG9mIHRoZSBvYnNvbGV0ZSAnYWRkcmVzcycgcHJvcGVydHkuCgpjb21taXQgOWNhODgwYTI1MDg3MGE3ZDU1NzU0MjkxYjU1OTFkMmI1ZmU4OWI1NApBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMzEgMjE6MjM6MTYgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IEZpeCBkdWFsIEkyQyBzdXBwb3J0IGZvciB0aGUgTVBDODM0OUlUWCwgTVBDODM0OUVNRFMsIFRRTTgzNHgsIGFuZCBNUEM4MzYwRU1EUwoKICAgIFRoaXMgcGF0Y2ggYWxzbyBhZGRzIGFuIGltcHJvdmVkIEkyQyBzZXRfc3BlZWQoKSwgd2hpY2ggaGFuZGxlcyBhbGwgY2xvY2sKICAgIGZyZXF1ZW5jaWVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYWM0YjU2MjJjZTA1MGI1ZWUxZTE1NGI5OGRmNjMwZDc3ODY2MTYzMgpBdXRob3I6IERhdmUgTGl1IDxkYXZlbGl1QGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMzEgMTk6NTQ6NTkgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IGFkZCB0aGUgUkVBRE1FLm1wYzgzNjBlbWRzCgogICAgYWRkIGRvYy9SRUFETUUubXBjODM2MGVtZHMgdG8gYWNjb21wYW55IHRoZSBuZXcgYm9hcmQgc3VwcG9ydAoKY29tbWl0IDc3MzdkNWM2NThjNjA2Zjk5OWRmYmUzZTg2YjBmZWQ0OWU1YzUwZWYKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTm92IDMgMTI6MTE6MTUgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IGFkZCBRRSBldGhlcm5ldCBzdXBwb3J0CgogICAgdGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBRVUlDQyBFbmdpbmUgYmFzZWQgVUNDIGdpZ2FiaXQgZXRoZXJuZXQgZGV2aWNlLgoKY29tbWl0IDVmODIwNDM5NGUzOWJiZThjZDlmMDhiOGY4ZDE0NWI2YzAxZjdjNzMKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTm92IDMgMTk6MzM6NDQgMjAwNiAtMDYwMAoKICAgIG1wYzgzeHg6IEFkZCBNUEM4MzYwRU1EUyBiYXNpYyBib2FyZCBzdXBwb3J0CgogICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBGcmVlc2NhbGUgTVBDODM2MEVNRFMgYm9hcmQuCiAgICBJbmNsdWRlcyBERFIsIERVQVJULCBMb2NhbCBCdXMsIFBDSS4KCmNvbW1pdCAyMzg5MmU0OTM1MmRlNzRmN2ZhYzM2ZmY5MGJiMWJlMTQzZDE5NWUzCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAzMSAxOTozMDo0MCAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogYWRkIHRoZSBRVUlDQyBFbmdpbmUgKFFFKSBpbW1hcCBmaWxlCgogICAgY29tbW9uIFFFIGltbWFwIGZpbGUuICBBbHNvIHJlcXVpcmVkIGZvciA4MzYwLgoKY29tbWl0IGI3MDE2NTJhNDk5MmJkY2M2MmZiMWE2MDM4YTg1YmVlZjllNTVkYTQKQXV0aG9yOiBEYXZlIExpdSA8ZGF2ZWxpdUBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDMxIDE5OjI1OjM4IDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBBZGQgODM2MCBzcGVjaWZpY3MgdG8gODN4eCBpbW1hcAoKICAgIE1haW5seSBhZGQgUUUgZGV2aWNlIGRlcGVuZGVuY2llcywgd2l0aCBhcHByb3ByaWF0ZSA4MzYwIHByb3RlY3Rpb24uCiAgICBMaW5kZW50IGFsc28gcnVuLgoKY29tbWl0IDk4ODgzMzMyNGE3ZmRhNDgyYzhhYzNjYTIzZWI1MzlmODIzMmU0MDQKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDMxIDE5OjE0OjQxIDIwMDYgLTA2MDAKCiAgICBtcGM4M3h4OiBGaXggUENJLCBVU0IsIGJvb3RhcmdzIGZvciBNUEM4MzQ5RS1tSVRYCgogICAgUFJFUkVRVUlTSVRFIFBBVENIRVM6CgogICAgKiBUaGlzIHBhdGNoIGNhbiBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgdGhlIGZvbGxvd2luZyBwYXRjaGVzIGhhdmUgYmVlbiBhcHBsaWVkOgoKICAgICAgMSkgRE5YIzIwMDYwOTIxNDIwMDAwMTUgIkFkZCBzdXBwb3J0IGZvciB0aGUgTVBDODM0OUUtbUlUWCAgMS8yIgogICAgICAyKSBETlgjMjAwNjA5MjE0MjAwMDAyNCAiQWRkIHN1cHBvcnQgZm9yIHRoZSBNUEM4MzQ5RS1tSVRYICAyLzIiCgogICAgQ0hBTkdFTE9HOgoKICAgICogRm9yIHRoZSA4MzQ5RS1tSVRYLCBmaXggc29tZSBzaXplIHZhbHVlcyBpbiBwY2lfaW5pdF9ib2FyZCgpLCBlbmFibGUKICAgICAgdGhlIGNsb2NrIGZvciB0aGUgMm5kIFVTQiBib2FyZCAoTGludXgga2VybmVsIHdpbGwgaGFuZyBvdGhlcndpc2UpLAogICAgICBhbmQgZml4IHRoZSBDT05GSUdfQk9PVEFSR1MgbWFjcm8uCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyYWQ2YjUxM2IzMTA3MGJkMGMwMDM3OTJlZDFjM2U3ZjVkNzQwMzU3CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAzMSAxODo0NDo0MiAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogQWRkIHN1cHBvcnQgZm9yIHRoZSBNUEM4MzQ5RS1tSVRYCgogICAgUFJFUkVRVUlTSVRFIFBBVENIRVM6CgogICAgKiBUaGlzIHBhdGNoIGNhbiBvbmx5IGJlIGFwcGxpZWQgYWZ0ZXIgdGhlIGZvbGxvd2luZyBwYXRjaGVzIGhhdmUgYmVlbiBhcHBsaWVkOgoKICAgICAgMSkgRE5YIzIwMDYwOTA3NDIwMDAwMjQgIkFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBJMkMgYnVzZXMiCiAgICAgIDIpIEROWCMyMDA2MDkwNzQyMDAwMDMzICJNdWx0aS1idXMgSTJDIGltcGxlbWVudGF0aW9uIG9mIE1QQzgzNHgiCiAgICAgIDMpIEROWCMyMDA2MDkxMjQyMDAwMDQxICJBZGRpdGlvbmFsIE1QQzgzNDkgc3VwcG9ydCBmb3IgbXVsdGlidXMgaTJjIgogICAgICA0KSBETlgjMjAwNjA5MTI0MjAwMDA3OCAiQWRkIHN1cHBvcnQgZm9yIHZhcmlhYmxlIGZsYXNoIG1lbW9yeSBzaXplcyBvbiA4M3h4IHN5c3RlbXMiCiAgICAgIDUpIEROWCMyMDA2MDkxMjQyMDAwMDY5ICJBZGQgc3VwcG9ydCBmb3IgRXJyYXRhIEREUjYgb24gTVBDIDgzNHggc3lzdGVtcyIKCiAgICBDSEFOR0VMT0c6CgogICAgKiBBZGQgc3VwcG9ydCBmb3IgdGhlIEZyZWVzY2FsZSBNUEM4MzQ5RS1tSVRYIHJlZmVyZW5jZSBkZXNpZ24gcGxhdGZvcm0uCiAgICAgIFRoZSBzZWNvbmQgVFNFQyAoVml0ZXNzZSA3Mzg1IHN3aXRjaCkgaXMgbm90IHN1cHBvcnRlZCBhdCB0aGlzIHRpbWUuCgogICAgU2lnbmVkLW9mZi1ieTogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxODNkYTZkOWI0NDZjYzEyMTIzNDU1ODQ0YWQxMTg3ZTIzNzU2MjZmCkF1dGhvcjogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+CkRhdGU6CVR1ZSBTZXAgMTIgMTA6MTU6NTMgMjAwNiAtMDQwMAoKICAgIEFkZGl0aW9uYWwgTVBDODM0OSBzdXBwb3J0IGZvciBtdWx0aWJ1cyBpMmMKCiAgICBIZWxsbywKCiAgICBIZXJlIGlzIGEgcGF0Y2ggZm9yIGEgZmlsZSB0aGF0IHdhcyBhY2NpZGVudGFsbHkgbGVmdCBvdXQgb2YgYSBwcmV2aW91cwogICAgYXR0ZW1wdC4KCiAgICBJdCBhY2NvbXBhbmllcyB0aGUgcGF0Y2ggd2l0aCB0aWNrZXQgRE5YIzIwMDYwOTA3NDIwMDAwMjQKCiAgICBDSEFOR0VMT0c6CgkgICAgQ2hhbmdlIFBDSSBpbml0aWFsaXphdGlvbiB0byB1c2UgbmV3IG11bHRpLWJ1cyBJMkMgQVBJLgoKICAgIHJlZ2FyZHMsCiAgICBCZW4KCmNvbW1pdCBiMjRmMTE5ZDY3MmI3MDlkMTUzZmYyYWMwOTFkNGFhNjNlYzY4NzdkCkF1dGhvcjogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+CkRhdGU6CVRodSBTZXAgNyAxNjo1MTowNCAyMDA2IC0wNDAwCgogICAgTXVsdGktYnVzIEkyQyBpbXBsZW1lbnRhdGlvbiBvZiBNUEM4MzR4CgogICAgSGVsbG8sCgogICAgQXR0YWNoZWQgaXMgYSBwYXRjaCBpbXBsZW1lbnRpbmcgbXVsdGlwbGUgSTJDIGJ1c2VzIG9uIHRoZSBNUEM4MzR4IENQVQogICAgZmFtaWx5IGFuZCB0aGUgTVBDODM0OUVNRFMgYm9hcmQgaW4gcGFydGljdWxhci4KICAgIFRoaXMgcGF0Y2ggcmVxdWlyZXMgUGF0Y2ggMSAoQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIEkyQyBidXNlcykuCiAgICBUZXN0aW5nIHdhcyBwZXJmb3JtZWQgb24gYSA1MzNNSHogYm9hcmQuCgogICAgLyoqKiBOb3RlOiBUaGlzIHBhdGNoIHJlcGxhY2VzIHRpY2tldCBETlgjMjAwNjA4MzA0MjAwMDAyNyAqKiovCgogICAgU2lnbmVkLW9mZi1ieTogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+CgogICAgQ0hBTkdFTE9HOgoJICAgIEltcGxlbWVudGVkIGRyaXZlci1sZXZlbCBjb2RlIHRvIHN1cHBvcnQgdHdvIEkyQyBidXNlcyBvbiB0aGUKICAgIE1QQzgzNHggQ1BVIGZhbWlseSBhbmQgdGhlIE1QQzgzNDlFTURTIGJvYXJkLiAgQXZhaWxhYmxlIEkyQyBidXMgc3BlZWRzCiAgICBhcmUgNTBrSHosIDEwMGtIeiBhbmQgNDAwa0h6IG9uIGVhY2ggYnVzLgoKICAgIHJlZ2FyZHMsCiAgICBCZW4KCmNvbW1pdCBiYjk5YWQ2ZDgyNTdiZjgyOGYxNTBkNDBmNTA3YjMwZDgwYTRhN2FlCkF1dGhvcjogQmVuIFdhcnJlbiA8YndhcnJlbkBxc3RyZWFtcy5jb20+CkRhdGU6CVRodSBTZXAgNyAxNjo1MDo1NCAyMDA2IC0wNDAwCgogICAgQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIEkyQyBidXNlcwoKICAgIEhlbGxvLAoKICAgIEF0dGFjaGVkIGlzIGEgcGF0Y2ggcHJvdmlkaW5nIHN1cHBvcnQgZm9yIG11bHRpcGxlIEkyQyBidXNlcyBhdCB0aGUKICAgIGNvbW1hbmQgbGV2ZWwuICBUaGUgc2Vjb25kIHBhcnQgb2YgdGhlIHBhdGNoIGluY2x1ZGVzIGFuIGltcGxlbWVudGF0aW9uCiAgICBmb3IgdGhlIE1QQzgzNHggQ1BVIGFuZCBNUEM4MzQ5RU1EUyBib2FyZC4KCiAgICAvKioqIE5vdGU6IFRoaXMgcGF0Y2ggcmVwbGFjZXMgdGlja2V0IEROWCMyMDA2MDgzMDQyMDAwMDE4ICoqKi8KCiAgICBTaWduZWQtb2ZmLWJ5OiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KCiAgICBPdmVydmlldzoKCiAgICAxLiBJbmNsdWRlIG5ldyAnaTJjJyBjb21tYW5kIChiYXNlZCBvbiBVU0IgaW1wbGVtZW50YXRpb24pIHVzaW5nCiAgICBDT05GSUdfSTJDX0NNRF9UUkVFLgoKICAgIDIuIEFsbG93IG11bHRpcGxlIGJ1c2VzIGJ5IGRlZmluaW5nIENPTkZJR19JMkNfTVVMVElfQlVTLiAgTm90ZSB0aGF0CiAgICB0aGUgY29tbWFuZHMgdG8gY2hhbmdlIGJ1cyBudW1iZXIgYW5kIHNwZWVkIGFyZSBvbmx5IGF2YWlsYWJsZSB1bmRlciB0aGUKICAgIG5ldyAnaTJjJyBjb21tYW5kIG1lbnRpb25lZCBpbiB0aGUgZmlyc3QgYnVsbGV0LgoKICAgIDMuIFRoZSBvcHRpb24gQ0ZHX0kyQ19OT1BST0JFUyBoYXMgYmVlbiBleHBhbmRlZCB0byB3b3JrIGluIG11bHRpLWJ1cwogICAgc3lzdGVtcy4gIFdoZW4gQ09ORklHX0kyQ19NVUxUSV9CVVMgaXMgdXNlZCwgdGhpcyBvcHRpb24gdGFrZXMgdGhlIGZvcm0KICAgIG9mIGFuIGFycmF5IG9mIGJ1cy1kZXZpY2UgcGFpcnMuICBPdGhlcndpc2UsIGl0IGlzIGFuIGFycmF5IG9mIHVjaGFyLgoKICAgIENIQU5HRUxPRzoKCSAgICBBZGRlZCBuZXcgJ2kyYycgbWFzdGVyIGNvbW1hbmQgZm9yIGFsbCBJMkMgaW50ZXJhY3Rpb24uICBUaGlzIGlzCiAgICBjb25kaXRpb25hbGx5IGNvbXBpbGVkIHdpdGggQ09ORklHX0kyQ19DTURfVFJFRS4gIE5ldyBjb21tYW5kcyBhZGRlZCBmb3IKICAgIHNldHRpbmcgSTJDIGJ1cyBzcGVlZCBhcyB3ZWxsIGFzIGNoYW5naW5nIHRoZSBhY3RpdmUgYnVzIGlmIHRoZSBib2FyZAogICAgaGFzIG1vcmUgdGhhbiBvbmUgKGNvbmRpdGlvbmFsbHkgY29tcGlsZWQgd2l0aAogICAgQ09ORklHX0kyQ19NVUxUSV9CVVMpLiAgVXBkYXRlZCBOT1BST0JFIGxvZ2ljIHRvIGhhbmRsZSBtdWx0aXBsZSBidXNlcy4KICAgIFVwZGF0ZWQgUkVBRE1FLgoKICAgIHJlZ2FyZHMsCiAgICBCZW4KCmNvbW1pdCBiZWQ4NWNhZjg3MjcxNGViZjUzMDEzOTY3YTY5NWM5ZDYzYWNmYzY4CkF1dGhvcjogVGltdXIgVGFiaSA8dGltdXJAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAzMSAxODoxMzozNiAyMDA2IC0wNjAwCgogICAgbXBjODN4eDogQWRkIHN1cHBvcnQgZm9yIEVycmF0YSBERFI2IG9uIE1QQyA4MzR4IHN5c3RlbXMKCiAgICBDSEFOR0VMT0c6CgogICAgKiBFcnJhdGEgRERSNiwgd2hpY2ggYWZmZWN0cyBhbGwgY3VycmVudCBNUEMgODM0eCBwcm9jZXNzb3JzLCBsaXN0cyBjaGFuZ2VzCiAgICAgIHJlcXVpcmVkIHRvIG1haW50YWluIGNvbXBhdGliaWxpdHkgd2l0aCB2YXJpb3VzIHR5cGVzIG9mIEREUiBtZW1vcnkuICBUaGlzCiAgICAgIHBhdGNoIGltcGxlbWVudHMgdGhvc2UgY2hhbmdlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFmZDZlNDcwZjYzOTg4MzAwMmM3YzU5ZDU2MjY5MGE1Y2IwZjQ4NjUKQXV0aG9yOiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgT2N0IDI1IDE4OjQ1OjIzIDIwMDYgLTA1MDAKCiAgICBtcGM4M3h4OiBmaXggVFFNIGJ1aWxkIGJ5IGRlZmluaW5nIGEgQ0ZHX0ZMQVNIX1NJWkUgZm9yIGl0Cgpjb21taXQgMzEwNjhiN2M0YWJlZWZjYjJjOGZkNGZiZWNjYzhlYzZjNmQwNDc1YQpBdXRob3I6IFRpbXVyIFRhYmkgPHRpbXVyQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjIgMTc6MDc6MDAgMjAwNiAtMDUwMAoKICAgIG1wYzgzeHg6IEFkZCBzdXBwb3J0IGZvciB2YXJpYWJsZSBmbGFzaCBtZW1vcnkgc2l6ZXMgb24gODN4eCBzeXN0ZW1zCgogICAgQ0hBTkdFTE9HOgoKICAgICogT24gODN4eCBzeXN0ZW1zLCB1c2UgdGhlIENGR19GTEFTSF9TSVpFIG1hY3JvIHRvIHByb2dyYW0gdGhlIExCQyBsb2NhbCBhY2Nlc3MKICAgICAgIHdpbmRvdyByZWdpc3RlcnMsIGluc3RlYWQgb2YgdXNpbmcgYSBoYXJkLWNvZGVkIHZhbHVlIG9mIDhNQi4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUaW11ciBUYWJpIDx0aW11ckBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDJmYzM0YWU2NmU3M2ZhNzg0MWQxYTAwNmRjMWI1ZGNiYzFmNzg5NjUKQXV0aG9yOiBUYW55YSBKaWFuZyA8dGFueWEuamlhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAzIDE4OjM4OjEzIDIwMDYgKzA4MDAKCiAgICBtcGM4M3h4OiBVbmlmaWVkIFRRTTgzNHggdmFyaWFibGUgbmFtZXMgd2l0aCA4M3h4IGFuZCBjb25zb2xpZGF0ZWQgbWFjcm9zCgogICAgVW5pZmllZCBUUU04MzR4IHZhcmlhYmxlIG5hbWVzIHdpdGggODN4eCBhbmQgY29uc29saWRhdGVkIG1hY3JvCiAgICBpbiBwcmVwYXJhdGlvbiBmb3IgdGhlIDgzNjAgYW5kIG90aGVyIHVwY29taW5nIDgzeHggZGV2aWNlcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBUYW55YSBKaWFuZyA8dGFueWEuamlhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmNmVkYTdmODBjY2MxM2Q2NTgwMjAyNjhjNTA3ZDcxNzNjZjJlOGFhCkF1dGhvcjogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIE9jdCAyNSAxNDo0MToyMSAyMDA2IC0wNTAwCgogICAgbXBjODN4eDogQ2hhbmdlZCB0byB1bmlmaWVkIG1weDgzeHggbmFtZXMgYW5kIGFkZGVkIGNvbW1vbiA4M3h4IGNoYW5nZXMKCiAgICBJbmNvcnBvcmF0ZWQgdGhlIGNvbW1vbiB1bmlmaWVkIHZhcmlhYmxlIG5hbWVzIGFuZCB0aGUgY2hhbmdlcyBpbiBwcmVwYXJhdGlvbgogICAgZm9yIHJlbGVhc2luZyBtcGM4MzYwIHBhdGNoZXMuCgogICAgU2lnbmVkLW9mZi1ieTogRGF2ZSBMaXUgPGRhdmVsaXVAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzODk0YzQ2YzI3YzY0ODkxZjkzYWMwNGVkZGU4NmE5ZmE5NzU4ZDkyCkF1dGhvcjogVGFueWEgSmlhbmcgPHRhbnlhLmppYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBdWcgMyAxODozNjowMiAyMDA2ICswODAwCgogICAgbXBjODN4eDogRml4IG1pc3NpbmcgYnVpbGQgZm9yIG1wYzgzNDllbWRzIHBjaS5jCgogICAgTWFrZSBwY2kgYnVpbGQgZm9yIG1wYzgzNDllbWRzCgogICAgU2lnbmVkLW9mZi1ieTogVGFueWEgSmlhbmcgPHRhbnlhLmppYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDlhODFmZjc0MGIyOWRlZWExZTJhYjA4YTNjMmFjMTM2YzJlNjIxOQpBdXRob3I6IFRhbnlhIEppYW5nIDx0YW55YS5qaWFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgQXVnIDMgMTg6Mzk6NDkgMjAwNiArMDgwMAoKICAgIG1wYzgzeHg6IFJlbW92ZWQgdW51c2VkIGZpbGUgcmVzZXR2ZWMuUyBmb3IgbXBjODN4eCBjcHUKCiAgICBSZW1vdmVkIHVudXNlZCBmaWxlIHJlc2V0dmVjLlMgZm9yIG1wYzgzeHggY3B1CgogICAgU2lnbmVkLW9mZi1ieTogVGFueWEgSmlhbmcgPHRhbnlhLmppYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDRmODk5ZmM0NjVjM2U0NGYyYjU1ZWNjNzA2MThmNTY5NmZjMGRkZgpBdXRob3I6IE5pY2sgU3BlbmNlIDxOaWNrLlNwZW5jZUBmcmVlc2NhbGUuY29tPgpEYXRlOglTYXQgU2VwIDMwIDAwOjMyOjU5IDIwMDYgLTA3MDAKCiAgICBOQU5EIEZsYXNoIHZlcmlmeSBhY3Jvc3MgYmxvY2sgYm91bmRhcmllcwoKICAgIFRoaXMgcGF0Y2ggYWRkcmVzc2VzIGEgcHJvYmxlbSB3aGVuIENPTkZJR19NVERfTkFORF9WRVJJRllfV1JJVEUgaXMKICAgIGRlZmluZWQKICAgIGFuZCB0aGUgd3JpdGUgY3Jvc3NlcyBhIGJsb2NrIGJvdW5kYXJ5LiBUaGUgcG9pbnRlciB0byB0aGUgdmVyaWZpY2F0aW9uCiAgICBidWZmZXIgKGJ1ZnN0YXJ0KSBpcyBub3QgYmVpbmcgdXBkYXRlZCB0byByZWZsZWN0IHRoZSBzdGFydGluZyBvZiB0aGUKICAgIG5ldwogICAgYmxvY2sgc28gdGhlIHZlcmlmaWNhdGlvbiBvZiB0aGUgc2Vjb25kIGJsb2NrIGZhaWxzLgoKICAgIENIQU5HRUxPRzoKCiAgICAqIEZpeCBOQU5EIEZMQVNIIHBhZ2UgdmVyaWZpY2F0aW9uIGFjcm9zcyBibG9jayBib3VuZGFyaWVzCgpjb21taXQgZjQ4NGRjNzkxYTM5MzI1MzcyMTNjNDNjNjU0Y2MxMjk1YzY0Yjg0YwpBdXRob3I6IE5pY2sgU3BlbmNlIDxuaWNrLnNwZW5jZUBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgU2VwIDcgMDc6Mzk6NDYgMjAwNiAtMDcwMAoKICAgIEFkZGVkIFJHTUlJIHN1cHBvcnQgdG8gdGhlIFRTRUNzIGFuZCBNYXJ2ZWxsIDg4MTExMSBQaHkKCiAgICBBZGRlZCBhIHBoeSBpbml0aWFsaXphdGlvbiB0byBhZGp1c3QgdGhlIFJHTUlJIFJYIGFuZCBUWCB0aW1pbmcKICAgIEFsd2F5cyBzZXQgdGhlIFIxMDAgYml0IGluIDEwMCBCYXNlVCBtb2RlIHJlZ2FyZGxlc3Mgb2YgdGhlIFRTRUMgbW9kZQoKICAgIFNpZ25lZC1vZmYtYnk6IE5pY2sgU3BlbmNlIDxuaWNrLnNwZW5jZUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ4MzFjOGI4YTk3Nzk5ZGE3NzkyM2Q2YmJiNGMyNjBjMGQ0NTUyMWMKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBOb3YgMyAxMzoxMDowMCAyMDA2ICswODAwCgogICAgUmVtb3ZlIHNvbWUgdW51c2VkIENGRyBkZWZpbmUuCiAgICB1bmRlZiBDRkdfRFJBTV9URVNUCgpjb21taXQgOTljMDljNGRlYzM0Zjc3YzI0M2JmNTFiZWE1MzJlM2YzMzk0MTBhZApBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE5vdiAzIDEzOjA3OjM2IDIwMDYgKzA4MDAKCiAgICBDaGFuZ2UgdGhlIFRFWFRfQkFTRSBmcm9tIDB4RkZGMDAwMDAgdG8gMHhGRjAwMDAwMC4KICAgIEJvdGggd29yay4gMHhGRjAwMDAwMCBzZWVtcyBtb3JlIHJlYXNvbmFibGUuCgpjb21taXQgYzU5MjAwNDQzMDcyMzUzMDQ0YWE0YmY3MzdhNWE2MGY5YTlhZjIzMQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUaHUgTm92IDIgMTU6MTU6MDEgMjAwNiArMDEwMAoKICAgIFJlbGVhc2UgVS1Cb290IDEuMS42Cgpjb21taXQgYzFmYmU0MTAzYTBkNmM4OTU3ZjkxMmFmOTAyZDcwNWJhNjc4MzZmMgpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE5OjE0OjQ4IDIwMDYgKzA4MDAKCiAgICBUaGlzIHBhdGNoIGNvbWVzIGZyb20gWXVsaSdzIHBvc3RlZCBwYXRjaCBvbiA4LzgvMjAwNgogICAgdGl0bGVkICJDRkkgRHJpdmVyIExpdHRsZS1FbmRpYW4gd3JpdGUgSXNzdWUiLgoKICAgIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvbWFpbGFyY2hpdmUvbWVzc2FnZS5waHA/bXNnX2lkPTM2MzExOTk5CgogICAgSWYgdGhhdCBwYXRjaCBhcHBsaWVkLCBwbGVhc2UgZGlzY2FyZCB0aGlzIG9uZS4KICAgIFVudGlsIG5vdyAsIEkgZG8gbm90IHNlZSBoaXMgcGF0Y2ggaXMgYXBwbGllZC4gU28gcGxlYXNlIGFwcGx5IHRoaXMgb25lLgoKICAgIFNpZ25lZC1vZmYtYnk6IFl1bGkgQmFyY29oZW4gPHl1bGlAYXJhYmVsbGFzdy5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjgyNWYxNThlNDQ5ZTFlOWNmNzRjMDhlNTcyOTU1ZTEyMjM5NGM5NgpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE5OjEyOjMxIDIwMDYgKzA4MDAKCiAgICBUc2kxMDggb24gY2hpcCBpMmMgc3VwcG9ydC4KCiAgICBUaGUgaTJjICBJbnRlcmZhY2UgcHJvdmlkZXMgYSBtYXN0ZXItb25seSwgc2VyaWFsIGludGVyZmFjZSB0aGF0IGNhbiBiZQogICAgdXNlZCBmb3IgaW5pdGlhbGl6aW5nIFRzaTEwOC9Uc2kxMDkgcmVnaXN0ZXJzIGZyb20gYW4gRUVQUk9NIGFmdGVyIGEKICAgIGRldmljZSByZXNldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgQm91bmluZSA8YWxleGFuZHJlYkB0dW5kcmEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDkyMjZlN2Q2ZjA5YjlhMWFjMDc0Y2Q5MThjODEyMjVhNDY4OWJiYTgKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxOToxMTowNiAyMDA2ICswODAwCgogICAgVHNpMTA4IG9uIGNoaXAgcGNpIGNvbnRyb2xsZXIgc3VwcG9ydC4KCiAgICBJZiB0aGVyZSBpcyBubyBwY2kgY2FyZCwgdGhlIHRzaTEwOC8xMDkgcGNpIGNvbmZpZ3VyZSByZWFkIHdpbGwKICAgIGNhdXNlIGEgbWFjaGluZSBjaGVjayBleGNlcHRpb24gdG8gdGhlIHByb2Nlc3Nvci4gUENJIGVycm9yIHNob3VsZAogICAgYWxzbyBiZSBjbGVhcmVkIGFmdGVyIHRoZSByZWFkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRyZSBCb3VuaW5lIDxhbGV4YW5kcmViQHR1bmRyYS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDE5MjdjZWU5NzcxMjZlNTQ3Y2VlYmEyM2U0Zjk3OGYzNzdjZmI4ZgpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE5OjA4OjU1IDIwMDYgKzA4MDAKCiAgICBUdW5kcmEgdHNpMTA4IG9uIGNoaXAgRXRoZXJuZXQgY29udHJvbGxlciBzdXBwb3J0LgoKICAgIFRoZSBmb2xsb3dpbmcgaXMgYSBicmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgRXRoZXJuZXQgY29udHJvbGxlcjoKICAgIFRoZSBUc2kxMDgvOSBFdGhlcm5ldCBDb250cm9sbGVyIGNvbm5lY3RzIFN3aXRjaCBGYWJyaWMgdG8gdHdvIGluZGVwZW5kZW50CiAgICBHaWdhYml0IEV0aGVybmV0IHBvcnRzLEUwIGFuZCBFMS4gIEl0IHVzZXMgYSBzaW5nbGUgTWFuYWdlbWVudCBpbnRlcmZhY2UKICAgIHRvIG1hbmFnZSB0aGUgdHdvIHBoeXNpY2FsIGNvbm5lY3Rpb24gZGV2aWNlcyAoUEhZcykuICBFYWNoIEV0aGVybmV0IHBvcnQKICAgIGhhcyBpdHMgb3duIHN0YXRpc3RpY3MgbW9uaXRvciB0aGF0IHRyYWNrcyBhbmQgcmVwb3J0cyBrZXkgaW50ZXJmYWNlCiAgICBzdGF0aXN0aWNzLiAgRWFjaCBwb3J0IHN1cHBvcnRzIGEgMjU2LWVudHJ5IGhhc2ggdGFibGUgZm9yIGFkZHJlc3MKICAgIGZpbHRlcmluZy4JSW4gYWRkaXRpb24sIGVhY2ggcG9ydCBpcyBicmlkZ2VkIHRvIHRoZSBTd2l0Y2ggRmFicmljCiAgICB0aHJvdWdoIGEgMi1LYnl0ZSB0cmFuc21pdCBGSUZPIGFuZCBhIDQtS2J5dGUgUmVjZWl2ZSBGSUZPLgoKICAgIEVhY2ggRXRoZXJuZXQgcG9ydCBhbHNvIGhhcyBhIHBhaXIgb2YgaW50ZXJuYWwgRXRoZXJuZXQgRE1BIGNoYW5uZWxzIHRvCiAgICBzdXBwb3J0IHRoZSB0cmFuc21pdCBhbmQgcmVjZWl2ZSBkYXRhIGZsb3dzLiAgVGhlIEV0aGVybmV0IERNQSBjaGFubmVscwogICAgdXNlIGRlc2NyaXB0b3JzIHNldCB1cCBpbiBtZW1vcnksIHRoZSBtZW1vcnkgbWFwIG9mIHRoZSBkZXZpY2UsIGFuZAogICAgYWNjZXNzIHZpYSB0aGUgU3dpdGNoIEZhYnJpYy4gIFRoZSBFdGhlcm5ldCBDb250cm9sbGVyP3MgRE1BIGFyYml0ZXIKICAgIGhhbmRsZXMgYXJiaXRyYXRpb24gZm9yIHRoZSBTd2l0Y2ggRmFicmljLglUaGUgQ29udHJvbGxlciBhbHNvCiAgICBoYXMgYSByZWdpc3RlciBidXNpbnRlcmZhY2UgZm9yIHJlZ2lzdGVyIGFjY2Vzc2VzIGFuZCBzdGF0dXMgbW9uaXRvcgogICAgY29udHJvbC4KCiAgICBUaGUgUE1EIChQaHlzaWNhbCBNZWRpYSBEZXZpY2UpIGludGVyZmFjZSBvcGVyYXRlcyBpbiBNSUksIEdNSUksIG9yIFRCSQogICAgbW9kZXMuICBUaGUgTUlJIG1vZGUgaXMgdXNlZCBmb3IgY29ubmVjdGluZyB3aXRoIDEwIG9yIDEwMCBNYml0L3MgUE1Ecy4KICAgIFRoZSBHTUlJIGFuZCBUQkkgbW9kZXMgYXJlIHVzZWQgdG8gY29ubmVjdCB3aXRoIEdpZ2FiaXQgUE1Ecy4gIEludGVybmFsCiAgICBkYXRhIGZsb3dzIHRvIGFuZCBmcm9tIHRoZSBFdGhlcm5ldCBDb250cm9sbGVyIHRocm91Z2ggdGhlIFN3aXRjaCBGYWJyaWMuCgogICAgRWFjaCBFdGhlcm5ldCBwb3J0IHVzZXMgaXRzIHRyYW5zbWl0IGFuZCByZWNlaXZlIERNQSBjaGFubmVscyB0byBtYW5hZ2UKICAgIGRhdGEgZmxvd3MgdGhyb3VnaCBidWZmZXIgZGVzY3JpcHRvcnMgdGhhdCBhcmUgcHJlZGVmaW5lZCBieSB0aGUKICAgIHN5c3RlbSAodGhlIGRlc2NyaXB0b3JzIGNhbiBleGlzdCBhbnl3aGVyZSBpbiB0aGUgc3lzdGVtIG1lbW9yeSBtYXApLgogICAgVGhlc2UgZGVzY3JpcHRvcnMgYXJlIGRhdGEgc3RydWN0dXJlcyB0aGF0IHBvaW50IHRvIGJ1ZmZlcnMgZmlsbGVkCiAgICB3aXRoIGRhdGEgcmVhZHkgdG8gdHJhbnNtaXQgb3ZlciBFdGhlcm5ldCwgb3IgdGhleSBwb2ludCB0byBlbXB0eQogICAgYnVmZmVycyByZWFkeSB0byByZWNlaXZlIGRhdGEgZnJvbSBFdGhlcm5ldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgQm91bmluZSA8YWxleGFuZHJlYkB0dW5kcmEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDc4YWEwYzM0MjdmM2VjZGViMzRhYWJmYmJlMmRkMjNiNmFkOGY0MGUKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxOTowMTozMyAyMDA2ICswODAwCgogICAgVHVuZHJhIHRzaTEwOCBoZWFkZXIgZmlsZS4KCiAgICBUaGUgVHVuZHJhIFNlbWljb25kdWN0b3IgQ29ycG9yYXRpb24gKFR1bmRyYSkgVHNpMTA4IGlzIGEgaG9zdCBicmlkZ2UgZm9yCiAgICBQb3dlclBDIHByb2Nlc3NvcnMgdGhhdCBvZmZlcnMgbnVtZXJvdXMgc3lzdGVtIGludGVyY29ubmVjdCBvcHRpb25zIGZvcgogICAgZW1iZWRkZWQgYXBwbGljYXRpb24gZGVzaWduZXJzLiBUaGUgVHNpMTA4IGNhbiBpbnRlcmNvbm5lY3QgNjB4IG9yCiAgICBNUFggcHJvY2Vzc29ycyB0byBQQ0kvWCBwZXJpcGhlcmFscywgRERSMi00MDAgbWVtb3J5LCBHaWdhYml0IEV0aGVybmV0LAogICAgYW5kIEZsYXNoLiBQcm92aWRlZCB0aGUgbWFjcm8gZGVmaW5lIGZvciB0c2kxMDggY2hpcC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgQm91bmluZSA8YWxleGFuZHJlYkB0dW5kcmEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg3YzRkYjA5Njk5YzZiODkxNzZiMzEwMDRhZmNiODNlYjE1ODVkNDcKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxODo1OToxNSAyMDA2ICswODAwCgogICAgQWRkICBtcGM3NDQ4aHBjMiAgKG1wYzc0NDggKyB0c2kxMDgpICBib2FyZCBhc3NvY2lhdGVkIGNvZGUgc3VwcG9ydC4KICAgIG1wYzc0NDhocGMyIGJvYXJkIHN1cHBvcnQgaGlnaCBsZXZlbCBjb2RlOnRzaTEwOCBpbml0ICsgbXBjNzQ0OGhwYzIuCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGFuZHJlIEJvdW5pbmUgPGFsZXhhbmRyZWJAdHVuZHJhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNzgwMWI4YWIxMWM2MWI1NzdlNDU3NDJhNTE1YmIzYjIzYjgwMjQxCkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTg6NTc6MjEgMjAwNiArMDgwMAoKICAgIEFkZCAgbXBjNzQ0OGhwYzIgIChtcGM3NDQ4ICsgdHNpMTA4KSAgYm9hcmQgYXNzb2NpYXRlZCBjb2RlIHN1cHBvcnQuCiAgICBNYWtlICxjb25maWcubWsgYW5kIGxpbmsgZmlsZSBmb3IgdGhlIG1wYzc0NDhocGMyIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRyZSBCb3VuaW5lIDxhbGV4YW5kcmViQHR1bmRyYS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzY0MTFjMGMzYmJjNzlmOWJhOGFlZjU4Mjk2YTQyZDhmOWQ4YTBhNgpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE4OjU1OjA0IDIwMDYgKzA4MDAKCiAgICBBZGQgIG1wYzc0NDhocGMyICAobXBjNzQ0OCArIHRzaTEwOCkgIGJvYXJkIGFzc29jaWF0ZWQgY29kZSBzdXBwb3J0LgogICAgVGhlIG1wYzc0NDhocGMyIGJvYXJkIHN1cHBvcnQgaGVhZGVyIGZpbGUuCgogICAgU2lnbmVkLW9mZi1ieTogQWxleGFuZHJlIEJvdW5pbmUgPGFsZXhhbmRyZWJAdHVuZHJhLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA2MjViYjVkZGI1MGIyNDNmOTMxMjYyY2E4YzQ2OTU2NDA5NDcxOTE3CkF1dGhvcjogcm95IHphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgTm92IDIgMTg6NTI6MjEgMjAwNiArMDgwMAoKICAgIEFkZCAgbXBjNzQ0OGhwYzIgIChtcGM3NDQ4ICsgdHNpMTA4KSAgYm9hcmQgYXNzb2NpYXRlZCBjb2RlIHN1cHBvcnQuCiAgICBUaGUgbXBjNzQ0OGhwYzIgYm9hcmQgc3VwcG9ydCBsb3cgbGV2ZWwgYXNzZW1ibGUgbGFuZ3VhZ2UgaW5pdCBjb2RlLgoKICAgIFNpZ25lZC1vZmYtYnk6IEFsZXhhbmRyZSBCb3VuaW5lIDxhbGV4YW5kcmViQHR1bmRyYS5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBSb3kgWmFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNGM1Mjc4M2IzZDAyNGUxNTNjNDk3MmI5NzMzMmUzMTRiYzNiZGM0NgpBdXRob3I6IHJveSB6YW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE5vdiAyIDE4OjQ5OjUxIDIwMDYgKzA4MDAKCiAgICBHZW5lcmFsIGNvZGUgbW9kaWZpY2F0aW9uIGZvciBtcGM3NDQ4aHBjMiBib2FyZCBzdXBwb3J0LgogICAgMS4gQWRkIDc0NDdBIGFuZCA3NDQ4IHByb2Nlc3NvciBzdXBwb3J0LgogICAgMi4gQWRkIHRoZSBmb2xsb3dpbmcgZmxhZ3MuCgogICAgQ0ZHX0NPTkZJR19CVVNfQ0xLIDogSWYgdGhlIDc0eHggYnVzIGZyZXF1ZW5jeSBjYW4gYmUgY29uZmlndXJlZCBkeW5hbWljYWxseQogICAgKHN1Y2ggYXMgYnkgc3dpdGNoIG9uIGJvYXJkKSwgdGhpcyBmbGFnIHNob3VsZCBiZSBzZXQuCgogICAgQ0ZHX0VYQ0VQVElPTl9BRlRFUl9SRUxPQ0FURTogSWYgYW4gZXhjZXB0aW9uIG9jY3VycyBhZnRlciB0aGUgdS1ib290CiAgICByZWxvY2F0ZXMgdG8gUkFNLCB0aGlzIGZsYWcgc2hvdWxkIGJlIHNldC4KCiAgICBDRkdfU0VSSUFMX0hBTkdfSU5fRVhDRVBUSU9OOiBJZiB0aGUgcHJpbnQgb3V0IGZ1bmN0aW9uIHdpbGwgY2F1c2UgdGhlCiAgICBzeXN0ZW0gaGFuZyBpbiBleGNlcHRpb24sIHRoaXMgZmxhZyBzaG91bGQgYmUgc2V0LgoKICAgIFRoZXJlIGlzIGEgZGVzaWduIGlzc3VlIGZvciB0c2kxMDgvMTA5IHBjaSBjb25maWd1cmUgIHJlYWQuIFdoZW4gcGNpIHNjYW4KICAgIHRoZSBzbG90cywgaWYgdGhlcmUgaXMgbm8gcGNpIGNhcmQsIHRoZSB0c2kxMDgvOSB3aWxsIGNhdXNlIGEgbWFjaGluZQogICAgY2hlY2sgZXhjZXB0aW9uIGZvciBtcGM3NDQ4IHByb2Nlc3Nvci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcmUgQm91bmluZSA8YWxleGFuZHJlYkB0dW5kcmEuY29tPgogICAgU2lnbmVkLW9mZi1ieTogUm95IFphbmcgPHRpZS1mZWkuemFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDY5MzY2YmY0MmYyMmQ2N2VmY2U4ZGEzZjhjNDBhNDNkNGEzYzI2OTUKQXV0aG9yOiByb3kgemFuZyA8dGllLWZlaS56YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBOb3YgMiAxODozNDo0NyAyMDA2ICswODAwCgogICAgQWRkIFJFQURNRSBmaWxlIGZvciBtcGM3NDQ4aHBjMiBib2FyZC4KICAgIFNpZ25lZC1vZmYtYnk6IFJveSBaYW5nIDx0aWUtZmVpLnphbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAyNTcyMWI1Y2VjMmJlNGJjZTc5Y2ZhZGUxN2VjOGY2YWExZTY3NTI2CkF1dGhvcjogQmFydGxvbWllaiBTaWVrYSA8dHVyQHNlbWloYWxmLmNvbT4KRGF0ZToJV2VkIE5vdiAxIDAyOjA0OjM4IDIwMDYgKzAxMDAKCiAgICBGaW5pc2ggdXAgc3VwcG9ydCBmb3IgTWFyZWxWMzhCIGJvYXJkCiAgICAgLSBhZGQgd2F0Y2hkb2cgc3VwcG9ydAogICAgIC0gZW5hYmxlIEdQSU9fV0tVUF83IHBpbiBmb3IgaW5wdXQKICAgICAtIGNvZGUgY2xlYW51cAoKY29tbWl0IGZmYTE1MGJjOTBjOTQzY2EyNjUxNzBiZDFiZTNmMjkzNjc0ZGQ1YzcKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTm92IDEgMDE6NDU6NDYgMjAwNiArMDEwMAoKICAgIC0gRml4IGlzc3VlcyByZWxhdGVkIHRvIHRoZSB1c2Ugb2YgRUxESyA0IHdoZW4gY29tcGlsaW5nIGZvciBNYXJlbFYzOEI6CgkgICogcmVtb3ZlIHdhcm5pbmdzIHdoZW4gY29tcGlsaW5nIGV0aGFkZHIuYwoJICAqIGFkanVzdCBsaW5rZXIgc2NyaXB0IChmaXhlcyBhIGNyYXNoIHJlc3VsdGluZyBmcm9tIGluY29ycmVjdAoJICBkZWZpbml0aW9uIG9mIF9fdV9ib290X2NtZF9zdGFydCkKICAgIC0gU29tZSBNYXJlbFYzOEIgY29kZSBjbGVhbnVwLgoKY29tbWl0IGRhZTgwZjNjYWY5NzU0YTZkZDNkZGYzY2Y5MDNkMGM0NmNiZDQzODUKQXV0aG9yOiBCYXJ0bG9taWVqIFNpZWthIDx0dXJAc2VtaWhhbGYuY29tPgpEYXRlOglXZWQgTm92IDEgMDE6Mzg6MTYgMjAwNiArMDEwMAoKICAgIC0gQWRkIE1QQzVYWFggcmVnaXN0ZXIgZGVmaW5pdGlvbiBNUEM1WFhYX1dVX0dQSU9fREFUQV9JIGFuZCBjaGFuZ2UgdGhlCiAgICAgIE1QQzVYWFhfV1VfR1BJT19EQVRBIG1hY3JvIHRvIE1QQzVYWFhfV1VfR1BJT19EQVRBX08gKHBlciBNUEM1MjAwIFVzZXIncwogICAgICBNYW51YWwpLiBSZXBsYWNlIHRoZSB1c2VzIG9mIE1QQzVYWFhfV1VfR1BJT19EQVRBIHdpdGgKICAgICAgTVBDNVhYWF9XVV9HUElPX0RBVEFfTyBmb3IgYWZmZWN0ZWQgYm9hcmRzLgoKICAgIC0gQWRkIGRlZmludGlvbnMgZm9yIHNvbWUgTVBDNVhYWCBHUElPIHBpbnMuCgpjb21taXQgODJkOWM5ZWMyOWExYmVjMWIwM2JhNjE2NDI1ZWJhZWQyMzEwNzJjOApBdXRob3I6IEJhcnRsb21pZWogU2lla2EgPHR1ckBzZW1paGFsZi5jb20+CkRhdGU6CVdlZCBOb3YgMSAwMTozNDoyOSAyMDA2ICswMTAwCgogICAgQ2hhbmdlZCBNYXJlbFYzOEIgYm9hcmQgbWFrZSB0YXJnZXQgdG8gbG93ZXJjYXNlLiBDb25maWcgZmlsZSBjbGVhbnVwLgoKY29tbWl0IDE5NTRiZTZlOWM5NDIxYjQ1ZDBhOWQwNWIxMDM1NmFjYzc1NjMxNTAKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJU3VuIE9jdCAyOSAwMTowMzo1MSAyMDA2ICswMjAwCgogICAgQXV0b21hdGljYWxseSBhZGp1c3QgQVJGTEFHUyBzbyAibWFrZSAtcyIgaXMgcmVhbGx5IHNpbGVudC4KCmNvbW1pdCBmYWU2ODRlODk4NDQ4NTYzODNiZGYxMDE0NDA4ODk1NTdkZjNlNmIxCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDI4IDE2OjQ1OjAwIDIwMDYgKzAyMDAKCiAgICBbUEFUQ0hdIG9tYXA5MjUuYzogUmVtb3ZlIHVudXNlZCBmdW5jdGlvbnMKCiAgICBTaWduZWQtb2ZmLWJ5OiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMTI2NTU4MTUwMmFiOGVhOGMwOGU4ZWRiZTliZjY0ZmJkNjJmZDc3NgpBdXRob3I6IFN0ZWZhbiBSb2VzZSA8c3JAZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAyOCAxNzoxMjo1OCAyMDA2ICswMjAwCgogICAgW1BBVENIXSBBZGQgc29tZSBtaXNzaW5nIG1hY2h0eXBlcyBmb3IgbmV0c3RhciAmIHZvaWNlYmx1ZSBib2FyZHMKCiAgICBVc2UgTUFDSF9UWVBFX05FVFNUQVIgYW5kIE1BQ0hfVFlQRV9WT0lDRUJMVUUgZGVmaW5lcyBpbnN0ZWFkIG9mCiAgICBudW1iZXJzIGluIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgogICAgU2lnbmVkLW9mZi1ieTogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgoKY29tbWl0IDg1NmYwNTQ0MTBjZWY1MmQ4NjhmZWIzMzAxNjhiMmE0YzQwOTEzMjgKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBPY3QgMjggMTU6NTU6NTIgMjAwNiArMDIwMAoKICAgIFtQQVRDSF0gTkFORDogUGFydGl0aW9uIG5hbWUgc3VwcG9ydCBhZGRlZCB0byBOQU5EIHN1YnN5c3RlbQoKICAgIGNocGFydCwgbmJvb3QgYW5kIE5BTkQgc3Vic3lzdGVtIHJlbGF0ZWQgY29tbWFuZHMgbm93IGFjY2VwdCBhbHNvIHBhcnRpdGlvbgogICAgbmFtZSB0byBzcGVjaWZ5IG9mZnNldC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBMYWRpc2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+CiAgICBTaWduZWQtb2ZmLWJ5OiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+Cgpjb21taXQgMDdhNjlhMThjMmVjZmRhOTA0MjMxZmRmMjNlMjUyM2VhNzc5MmViNgpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTYXQgT2N0IDI4IDAyOjI5OjQ0IDIwMDYgKzAyMDAKCiAgICBVcGRhdGUgQ0hBTkdFTE9HLgoKY29tbWl0IDI3NTFhOTVhYmQxYjk2OTExMDgxYzM1N2U5NmExMmZhOTdiNDBkZWUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAyOCAwMjoyOToxNCAyMDA2ICswMjAwCgogICAgRW5hYmxlIGNvbW1hbmRsaW5lIGVkaXRpbmcgYW5kIGh1c2ggc2hlbGwgb24gYWxsIFRRTSBib2FyZHMuCgpjb21taXQgODA3OGYxYTVmNjNhNzM5Yjg1MzM0NzhmNmMyYjYyZmIxZTJmNzlkNwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglTYXQgT2N0IDI4IDAyOjI4OjAyIDIwMDYgKzAyMDAKCiAgICBSRUFETUUgc2F5cyBDRkdfQVVUT19DT01QTEVURSwgYnV0IG9jZGUgdXNlcyBDT05GSUdfQVVUT19DT01QTEVURQoKY29tbWl0IDQ3MWE3YmU3YTA0MmU5NWU0NDBmNWRlOTY5Yzk3NjUyMTRhZThkNmUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDI4IDAxOjE0OjMyIDIwMDYgKzAyMDAKCiAgICBDaGVjayBmb3IgaWxsZWdhbCBjaGFyYWN0ZXIgJz0nIGluIGVudmlyb25tZW50IHZhcmlhYmxlIG5hbWVzLgoKICAgIE1ha2Ugc3VyZSB0aGUgc3RyaW5nIHBhc3NlZCBhcyB2YXJpYWJsZSBuYW1lIGRvZXMgbm90IGNvbnRhaW4gYSAnPScKICAgIGNoYXJhY3Rlci4gVGhpcyBub3Qgb25seSBwcmV2ZW50cyB0aGUgY29tbW9uIGVycm9yIG9yIHR5cGluZwogICAgInNldGVudiBmb289YmFyIiBpbnN0ZWFkIG9mICJzZXRlbnYgZm9vIGJhciIsIGJ1dCAobW9yZSBpbXBvcnRhbnRseSkKICAgIGFsc28gY2xvc2VzIGEgYmFja2Rvb3Igd2hpY2ggYWxsb3dlZCB0byBkZWxldGUgd3JpdGUtcHJvdGVjdGVkCiAgICBlbnZpcm9ubWVudCB2YXJpYWJsZXMsIGZvciBleGFtcGxlIGJ5IHVzaW5nICJzZXRlbnYgZXRoYWRkcj0iLgoKY29tbWl0IDE5OTczYjZhZDk4NjNhNTZmNWM1ZmJjZmQ5MGUyMGFiMjQ5MGEyYzIKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJU2F0IE9jdCAyOCAwMDozODozOSAyMDA2ICswMjAwCgogICAgTWlub3IgY29kZSBjbGVhbnVwLgoKY29tbWl0IGUxMTg4N2E3N2Q4MTA3NzQxNmEyZDFjNWUwMzU0OTE2ZmVlOGMwMzQKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJVGh1IE9jdCAyNiAxNzo1NTozMSAyMDA2ICswMjAwCgogICAgRG9uJ3QgcGFzcyBhbnkgZGVidWcgb3B0aW9ucyBkaXJlY3RseSB0byB0aGUgYXNzZW1ibGVyCgogICAgV2hlbiBwYXNzaW5nIHRoZSAtZyBvcHRpb24gdG8gZ2NjLCBnY2MgYXV0b21hdGljYWxseSBzZWxlY3RzIGEKICAgIHN1aXRhYmxlIC0tZzxmb3JtYXQ+IG9wdGlvbiB0byBwYXNzIG9uIHRvIHRoZSBhc3NlbWJsZXIuCiAgICBUaHVzLCB0aGVyZSdzIG5vIHBvaW50IGluIGZvcmNpbmcgYSBzcGVjaWZpYyBkZWJ1ZyBvcHRpb24gb24gdGhlCiAgICBhc3NlbWJsZXIgdXNpbmcgdGhlIC1XYSBtZWNoYW5pc20uCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZWEwOGZmNmUxNGY5ZWJiOGMwN2NmYTc5YzUxZWY1NDBlYjA4NzM5MwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMjcgMDc6NDc6MjIgMjAwNiAtMDUwMAoKICAgIE1QQzg2eHg6IENsZWFuZWQgdXAgdW51c2VkIGFuZCBjb25kaXRpb25hbGx5IHVzZWQgbG9jYWwgdmFyaWFibGVzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDM4OTM2Y2RhZTQ2YmZkMjYyM2ZmODNmNmNlOWI2MTZkMzZhYjBmOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglGcmkgT2N0IDI3IDExOjU1OjIxIDIwMDYgKzAyMDAKCiAgICBGaXggImFyIiBmbGFncyBpbiBzb21lIE1ha2VmaWxlcyB0byBhbGxvdyBmb3Igc2lsZW50ICJtYWtlIC1zIgoKY29tbWl0IDQ2NTNmOTFjMTNlZDUxYzIxY2M0YzM4NTU3NDVkNjlhM2ZiMTgxN2YKQXV0aG9yOiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KRGF0ZToJVGh1IE9jdCAyNiAxNDozODoyNSAyMDA2IC0wNDAwCgogICAgRml4IFRTRUMgZHJpdmVyIChub3cgZm9yIHJlYWwpOiBhdm9pZCBjcmFzaGVzIGlmIFBIWSBpcyBub3QgYXR0YWNoZWQKICAgIHRvIGEgVFNFQyAoZS5nLiBhIHN3aXRjaCBpcyBjb25uZWN0ZWQgdmlhIFJNSUkpIG9yCiAgICBpZiB0aGUgUEhZIGlzIGRlZmVjdGl2ZS9pbmNvcnJlY3RseSBjb25maWd1cmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IGI5ODViNWQ2ZTRmYjg4ZjUwOGY3YWEwZjEyNmMyZTI3YWRhMmI5OTkKQXV0aG9yOiBCZW4gV2FycmVuIDxid2FycmVuQHFzdHJlYW1zLmNvbT4KRGF0ZToJVGh1IE9jdCAyNiAxNDozODoyNSAyMDA2IC0wNDAwCgogICAgRml4IFRTRUMgZHJpdmVyOiBhdm9pZCBjcmFzaGVzIGlmIFBIWSBpcyBub3QgYXR0YWNoZWQKICAgIHRvIGEgVFNFQyAoZS5nLiBhIHN3aXRjaCBpcyBjb25uZWN0ZWQgdmlhIFJNSUkpIG9yCiAgICBpZiB0aGUgUEhZIGlzIGRlZmVjdGl2ZS9pbmNvcnJlY3RseSBjb25maWd1cmVkLgoKICAgIFNpZ25lZC1vZmYtYnk6IEJlbiBXYXJyZW4gPGJ3YXJyZW5AcXN0cmVhbXMuY29tPgoKY29tbWl0IDJiMmE0MGJlYmJmMTgyMjUwNmU4MGU2MzFkNzI1M2U2MGYwZTBmZTYKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVGh1IE9jdCAyNiAxNjoyNDozMSAyMDA2ICswMjAwCgogICAgQ29kZSBjbGVhbnVwLgoKY29tbWl0IDVlM2IwYmMxOWYwN2VkMjc3ZDg1MzI0YWQwNDI3NjQyYzg5ODFiYWYKQXV0aG9yOiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KRGF0ZToJV2VkIE9jdCAyNSAxNTo0ODo1OSAyMDA2ICswMjAwCgogICAgRmluaXNoIHVwIHN1cHBvcnQgZm9yIHRoZSBBVFNUSzEwMDAvQVRTVEsxMDAyIGJvYXJkcwoKICAgIEFkZCBhdHN0azEwMDJfY29uZmlnIHRhcmdldCB0byBNYWtlZmlsZSBhbmQgbW92ZSB0aGUgQVZSMzIgc2VjdGlvbgogICAgZG93biBiZWxvdyBCbGFja2ZpbiBzbyB0aGF0IGl0IGRvZXNuJ3QgZW5kIHVwIGluIHRoZSBtaWRkbGUgb2YKICAgIE1JUFMuCgogICAgRHJvcCB0aGUgYXV0b2dlbmVyYXRlZCBsaW5rZXIgc2NyaXB0IHRoaW5nIGZvciBub3cuIFdpbGwgaGF2ZSB0bwogICAgcmV2aXNpdCBob3cgdG8gaGFuZGxlIGNoaXBzIHdpdGggZGlmZmVyZW50IGZsYXNoIGFuZCBSQU0gbGF5b3V0CiAgICBsYXRlci4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCBjNzZmOTUxYTc0N2NmYjg3YmE4MjZlZjQ1YjVhZWE4MmQ1YjVkYmI0CkF1dGhvcjogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KRGF0ZToJVHVlIE9jdCAyNCAyMzo0NzozNyAyMDA2IC0wNTAwCgogICAgQWRkZWQgc3VwcG9ydCBmb3IgTXVsdGktSW1hZ2UgZmlsZXMgdGhhdCBjb250YWluIGEgZGV2aWNlIHRyZWUKCiAgICBJZiBhIE11bHRpLUltYWdlIGZpbGUgY29udGFpbnMgYSB0aGlyZCBpbWFnZSB3ZSB0cnkgdG8gdXNlIGl0IGFzIGEKICAgIGRldmljZSB0cmVlLiAgVGhlIGRldmljZSB0cmVlIGltYWdlIGlzIGFzc3VtZWQgdG8gYmUgdW5jb21wcmVzc2VkIGluIHRoZQogICAgaW1hZ2UgZmlsZS4gIFdlIGF1dG9tYXRpY2FsbHkgYWxsb2NhdGUgc3BhY2UgZm9yIHRoZSBkZXZpY2UgdHJlZSBpbiBtZW1vcnkKICAgIGFuZCBwcm92aWRlIGFuIDhrIHBhZCB0byBhbGxvdyBtb3JlIHRoYW4gYSByZWFzb25hYmxlIGFtb3VudCBvZiBncm93dGguCgogICAgQWRkaXRpb25hbGx5LCBhIGRldmljZSB0cmVlIHRoYXQgd2FzIGNvbnRhaW5lZCBpbiBmbGFzaCB3aWxsIG5vdyBhdXRvbWF0aWNhbGx5CiAgICBnZXQgY29waWVkIHRvIHN5c3RlbSBtZW1vcnkgYXMgcGFydCBvZiBib290LiAgUHJldmlvdXNseSBhbiBlcnJvciB3YXMKICAgIHJlcG9ydGVkIGlmIG9uZSB0cmllZCB0byBib290IGEgZGV2aWNlIHRyZWUgdGhhdCB3YXMgaW4gZmxhc2guCgogICAgU2lnbmVkLW9mZi1ieTogS3VtYXIgR2FsYSA8Z2FsYWtAa2VybmVsLmNyYXNoaW5nLm9yZz4KCmNvbW1pdCA3YzUyYzRiOTQzZmY1MmJiZTg3OTZhN2UyZDNlNDc2Y2VhZjNmNTEyCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAyMTozNTo1NSAyMDA2ICswMjAwCgogICAgU3dpdGNoIHRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIENIQU5HRUxPRyBmaWxlLgogICAgKHVzZSAibWFrZSBDSEFOR0VMT0ciIHRvIHVwZGF0ZSBpdCBmcm9tIHRpbWUgdG8gdGltZSkKCmNvbW1pdCA3YWRlMGM2MzRhOTc5YzMyZmE5MWE3NGU4ZjU3NzVmMjQ2NTFmYmU2CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDE4OjA2OjQ4IDIwMDYgKzAyMDAKCiAgICBGaXggYnVnIGluIFBQQzQ0MCBOQU5EIGRyaXZlciBjcHUvcHBjNHh4L25kZmMuYwogICAgUGF0Y2ggYnkgU3RlZmFuIFJvZXNlLCAyNCBPY3QgMjAwNgoKY29tbWl0IDhhZTNiNzEzYjIyODZlMGMzMjEzYjc4MDIwNjJlNGMxNTk5MDEwZGUKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAxNzoyNDo1NSAyMDA2ICswMjAwCgogICAgTWVyZ2Ugd2l0aCAvaG9tZS93ZC9naXQvdS1ib290L21hc3RlcgoKY29tbWl0IDQ3YTY5ODljMTA2ODVkMmFiM2VmY2Y5NTIyOGNlNTBkMmE0OTZkM2UKQXV0aG9yOiBXb2xmZ2FuZyBEZW5rIDx3ZEBwb2xsdXguZGVueC5kZT4KRGF0ZToJVHVlIE9jdCAyNCAxNTozMjo1NyAyMDA2ICswMjAwCgogICAgQ29kZSBjbGVhbnVwCgpjb21taXQgM2E3OGUzZTc1YjYzM2VjYjY0MTMxMTRmZmQxMWUyZjAwMGM0ZjExZQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDE0OjUxOjM2IDIwMDYgKzAyMDAKCiAgICBNb3ZlIGF0c3RrMTAwMCBmaWxlcyBpbnRvIHZlbmRvciBzcGVjaWZpYyBkaXJlY3RvcnkuCiAgICBQYXRjaCBieSBIYWF2YXJkIFNraW5uZW1vZW4sIDEyIFNlcCAyMDA2Cgpjb21taXQgNmNjZWM0NDkyZTc3NDI4ZmQ2ZWFmZDNkZmU5NGZiZGYwOGU5MWQzNwpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDE0OjQyOjM3IDIwMDYgKzAyMDAKCiAgICBBZGQgQVRTVEsxMDAwIGFuZCBBVFNUSzEwMDIgYm9hcmQgc3VwcG9ydAogICAgUGF0Y2ggYnkgSGFhdmFyZCBTa2lubmVtb2VuLCAwNiBTZXAgMjAwNgoKICAgIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0aGUgQVRTVEsxMDAwIHdpdGggdGhlIEFUU1RLMTAwMiBDUFUKICAgIGRhdWdodGVyYm9hcmQuCgogICAgQVRTVEsxMDAwIGlzIGEgZnVsbC1mZWF0dXJlZCBkZXZlbG9wbWVudCBib2FyZCBmb3IgQVQzMkFQIENQVXMuIEl0CiAgICBoYXMgdHdvIGV0aGVybmV0IHBvcnRzLCBhIGhpZ2ggcXVhbGl0eSBRVkdBIExDRCBwYW5lbCwgYSBsb3Vkc3BlYWtlciwKICAgIGFuZCBjb25uZWN0b3JzIGZvciBVU0FSVCwgUFMvMiwgVkdBLCBVU0IsIE1NQy9TRCBjYXJkcyBhbmQKICAgIENvbXBhY3RGbGFzaCBjYXJkcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSBzZWUgdGhpcyBwYWdlOgoKICAgIGh0dHA6Ly93d3cuYXRtZWwuY29tL2R5bi9wcm9kdWN0cy90b29scy5hc3A/ZmFtaWx5X2lkPTY4MgoKICAgIFRoZSBBVFNUSzEwMDIgaXMgYSBkYXVnaHRlcmJvYXJkIGZvciB0aGUgQVRTVEsxMDAwIHN1cHBvcnRpbmcgdGhlCiAgICBBVDMyQVA3MDAwIGNoaXAuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgZjkzYWU3ODhjMzY0MGZjZGU1ZGIzODM0NzFkNDU1NDhmZjQwNjBkMApBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDE0OjMxOjI0IDIwMDYgKzAyMDAKCiAgICBBZGQgY29tbW9uIHNlcmlhbCBkcml2ZXIgZm9yIEF0bWVsIEFUMzIgYW5kIEFUOTEgY2hpcHMKICAgIFBhdGNoIGJ5IEhhYXZhcmQgU2tpbm5lbW9lbiwgMDYgU2VwIDIwMDYKCiAgICBUaGlzIGlzIGEgZmlyc3QgYXR0ZW1wdCBhdCBjcmVhdGluZyBhIGNvbW1vbiBzZXJpYWwgZHJpdmVyIGZvciBBdG1lbAogICAgY2hpcHMuIEZvciBub3csIGl0IHN1cHBvcnRzIHRoZSBBVDMyQVA3MDAwIEFWUjMyIGNoaXAsIGJ1dCBpdCBzaG91bGQKICAgIGJlIHBvc3NpYmxlIHRvIHN1cHBvcnQgQVQ5MVJNOTIwMCBhbmQgb3RoZXIgQVJNLWJhc2VkIGNoaXBzIHdpdGggc29tZQogICAgbWlub3IgbW9kaWZpY2F0aW9ucy4KCiAgICBUaGVyZSdzIG5vdGhpbmcgZnVuZGFtZW50YWxseSBBVlIzMi1zcGVjaWZpYyBpbiB0aGlzIGRyaXZlciwgYnV0IGl0CiAgICBkb2VzIHVzZSBzb21lIGZlYXR1cmVzIHdoaWNoIGFyZSBjdXJyZW50bHkgb25seSBkZWZpbmVkIGZvciB0aGUKICAgIEFUMzJBUCBDUFUgcG9ydDoKICAgICAgKiBwbV9nZXRfY2xvY2tfZnJlcTogT2J0YWluIHRoZSBjbG9jayBmcmVxdWVuY3kgb2YgYSBnaXZlbiBkb21haW4KICAgICAgKiBnZC0+Y29uc29sZV91YXJ0OiBBICJzdHJ1Y3QgZGV2aWNlIiBjb250YWluaW5nIGluZm9ybWF0aW9uIGFib3V0CglyZWdpc3RlciBtYXBwaW5ncywgZ3BpbyByZXNvdXJjZXMgYW5kIGNsb2NrcyBhc3NvY2lhdGVkIHdpdGggdGhlCglVQVJUIGRldmljZS4KCiAgICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGVzZSBmZWF0dXJlcywgcGxlYXNlIHNlZSB0aGUgIkFUMzJBUAogICAgQ1BVIiBwYXRjaC4KCmNvbW1pdCA3MmEwODdlMDQ3MDVjMjZjYWQ5ODI4NzllYmQwNmI1MjgxYmY4MjVhCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjQgMTQ6Mjc6MzUgMjAwNiArMDIwMAoKICAgIEFkZCBBVDMyQVAgQ1BVIGFuZCBBVDMyQVA3MDAwIFNvQyBzdXBwb3J0CiAgICBQYXRjaCBieSBIYWF2YXJkIFNraW5uZW1vZW4sIDA2IFNlcCAyMDA2CgogICAgVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIHRoZSBBVDMyQVAgQ1BVIGZhbWlseSBhbmQgdGhlIEFUMzJBUDcwMDAKICAgIGNoaXAsIHdoaWNoIGlzIHRoZSBmaXJzdCBjaGlwIGltcGxlbWVudGluZyB0aGUgQVZSMzIgYXJjaGl0ZWN0dXJlLgoKICAgIFRoZSBBVDMyQVAgQ1BVIGNvcmUgaXMgYSBoaWdoLXBlcmZvcm1hbmNlIGltcGxlbWVudGF0aW9uIGZlYXR1cmluZyBhCiAgICA3LXN0YWdlIHBpcGVsaW5lLCBzZXBhcmF0ZSBpbnN0cnVjdGlvbi0gYW5kIGRhdGEgY2FjaGVzLCBhbmQgYSBNTVUuCiAgICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHNlZSB0aGUgIkFWUjMyIEFQIFRlY2huaWNhbCBSZWZlcmVuY2UiOgoKICAgIGh0dHA6Ly93d3cuYXRtZWwuY29tL2R5bi9yZXNvdXJjZXMvcHJvZF9kb2N1bWVudHMvZG9jMzIwMDEucGRmCgogICAgSW4gYWRkaXRpb24gdG8gdGhpcywgdGhlIEFUMzJBUDcwMDAgY2hpcCBjb21lcyB3aXRoIGEgbGFyZ2Ugc2V0IG9mCiAgICBpbnRlZ3JhdGVkIHBlcmlwaGVyYWxzLCBtYW55IG9mIHdoaWNoIGFyZSBzaGFyZWQgd2l0aCB0aGUgQVQ5MSBzZXJpZXMKICAgIG9mIEFSTS1iYXNlZCBtaWNyb2NvbnRyb2xsZXJzIGZyb20gQXRtZWwuIEZ1bGwgZGF0YSBzaGVldCBpcwogICAgYXZhaWxhYmxlIGhlcmU6CgogICAgaHR0cDovL3d3dy5hdG1lbC5jb20vZHluL3Jlc291cmNlcy9wcm9kX2RvY3VtZW50cy9kb2MzMjAwMy5wZGYKCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWF2YXJkIFNraW5uZW1vZW4gPGhza2lubmVtb2VuQGF0bWVsLmNvbT4KCmNvbW1pdCA3YjY0ZmVmMzNjNjZiZTY0ODgyNmMwZmY5NzU4Mjk4ZWYxM2QwNjA0CkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMjQgMTQ6MjE6MTYgMjAwNiArMDIwMAoKICAgIEFkZCBBVlIzMiBhcmNoaXRlY3R1cmUgc3VwcG9ydAogICAgUGF0Y2ggYnkgSGFhdmFyZCBTa2lubmVtb2VuLCA2IFNlcCAyMDA2IDE2OjIzOjAyICswMjAwCgogICAgVGhpcyBwYXRjaCBhZGRzIGNvbW1vbiBpbmZyYXN0cnVjdHVyZSBjb2RlIGZvciB0aGUgQXRtZWwgQVZSMzIKICAgIGFyY2hpdGVjdHVyZS4gU2VlIGRvYy9SRUFETUUuQVZSMzIgZm9yIGRldGFpbHMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFhdmFyZCBTa2lubmVtb2VuIDxoc2tpbm5lbW9lbkBhdG1lbC5jb20+Cgpjb21taXQgMmRhMmQ5YTQ3NjYwNjNiOTg0OGYzYTM1YWQ2MDI1NDk5Y2Y4NzI2NQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDEzOjU3OjMzIDIwMDYgKzAyMDAKCiAgICBVc2UgLWcgaW5zdGVhZCBvZiAtZ3N0YWJzIGluIEFGTEFHU19ERUJVRwogICAgUGF0Y2ggYnkgSGFhdmFyZCBTa2lubmVtb2VuLCAzMCBBdWcgMjAwNgoKICAgIEluIGNvbmZpZy5taywgLVdhLC1nc3RhYnMgaXMgdW5jb25kaXRpb25hbGx5IGFwcGVuZGVkIHRvIEFGTEFHUyBubwogICAgbWF0dGVyIHdoYXQgdGhlIHRhcmdldCdzIHByZWZlcnJlZCBkZWJ1Z2dpbmcgZm9ybWF0IGlzLiBUaGlzIHBhdGNoCiAgICBzaW1wbHkgcmVwbGFjZXMgLWdzdGFicyB3aXRoIC1nLCBzbyB0aGF0IHRoZSBkZWZhdWx0IGRlYnVnZ2luZyBmb3JtYXQKICAgIGZvciB0aGUgYXJjaGl0ZWN0dXJlIGlzIHVzZWQuCgpjb21taXQgOTY1ODI5ODcyMTY5YzI5OTYwMjM4NDBkOThlMWQ4NWFkMTQ4ZDYyOQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglUdWUgT2N0IDI0IDEzOjU1OjE4IDIwMDYgKzAyMDAKCiAgICBGaXgvd29ya2Fyb3VuZCBicm9rZW4gZGVwZW5kZW5jeSBoYW5kbGluZyB3aXRoIG1ha2UgMy44MQogICAgQmFzZWQgb24gcGF0Y2ggYnkgSGFhdmFyZCBTa2lubmVtb2VuLCAyOSBBdWcgMjAwNiAxMToyMDozOSArMDIwMAoKY29tbWl0IDgzMThmYmY4Y2MzMDQxOGI2MjFlYTlmMzliODRiNGMxYTA4ZjAwM2EKQXV0aG9yOiBNYXJpYW4gQmFsYWtvd2ljeiA8bThAc2VtaWhhbGYuY29tPgpEYXRlOglNb24gT2N0IDIzIDIyOjE3OjA1IDIwMDYgKzAyMDAKCiAgICBGaXggc2VxdW9pYSBzZXBhcmF0ZSBvYmplY3QgZGlyZWNvcnkgYnVpbGRpbmcgcHJvYmxlbXMuCgpjb21taXQgM2RmYTljZmRjZWU3OGIzMGRhMzQzMjMxOGIzMjgyMWZmYWJlOTc0YgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMjAgMTc6MTY6MzUgMjAwNiAtMDUwMAoKICAgIFVzZSBnZW5lcmljIEkyQyByZWdpc3RlciBibG9jayBvbiA4NXh4IGFuZCA4Nnh4LgoKICAgIFJlcGxhY2UgcHJpdmF0ZSBJTU1BUCBJMkMgc3RydWN0dXJlcyB3aXRoIGdlbmVyaWMgcmVnIGJsb2NrCiAgICBhbmQgYWxsb3cgODZ4eCB0byBoYXZlIG11bHRpcGxlIEkyQyBkZXZpY2UgYnVzc2VzLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZjUwMTI4MjdkZjExY2EwYzliZTFkZjVmOGIxNTNlMTg4ZGMyZmE3YwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBPY3QgMjAgMTU6NTQ6MzQgMjAwNiAtMDUwMAoKICAgIEZpeCBjb21waWxhdGlvbiB3YXJuaW5ncyBvbiBhIGZldyA4NXh4IGJvYXJkcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDIwNDc2NzI2ODRjZjg1Y2I2Zjk2YTFmYmM5OTMxODBhYWFmMTlhOTkKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDIwIDE1OjUwOjE1IDIwMDYgLTA1MDAKCiAgICBDb252ZXJ0ZWQgYWxsIDg1eHggYm9hcmRzIHRvIHVzZSBhIGNvbW1vbiBGU0wgSTJDIGRyaXZlci4KICAgIEludHJvZHVjZWQgQ09GSUdfRlNMX0kyQyB0byBzZWxlY3QgdGhlIGNvbW1vbiBGU0wgSTJDIGRyaXZlci4KICAgIEFuZCByZW1vdmVkIGhhcmQgaTJjIHBhdGggZnJvbSBhIGZldyB1LWJvb3QubGRzIHNjaXB0cyB0b28uCiAgICBNaW5vciB3aGl0ZXNwYWNlIGNsZWFudXBzIGFsb25nIHRoZSB3YXkuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0ZDQ1ZjY5ZTM2MmIwNTg5MmM5ZTkyYTc5MDdlNTgyMDk5NTYxMmFhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAxOSAxMjowMjoyNCAyMDA2IC0wNTAwCgogICAgUmV3cml0ZSBhIHNlcmllcyBvZiBnb3RvIHN0YXRlbWVudHMgYXMgYSBzZXF1ZW5jZXMgb2YKICAgIGNvbmRpdGlvbmFsIGV4cHJlc3Npb25zIGluc3RlYWQuCgogICAgVXNlIGNvbnNpc3RlbnQgcmV0dXJuIGNvZGUgMC8tMSBmb3IgZ29vZC9iYWQgaW5kaWNhdG9ycy4KCiAgICBJbmNsdWRlIG9uZSBmZXdlciBmaWxlIGlmIHRoZSBkcml2ZXIgaXNuJ3QgdXNlZCBhdCBhbGwuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MjM3YzAzM2IwMmZlMjk1ODgwNDM1ZjFlYjgwODE5YTBjOTg3NTMyCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IE9jdCAxOSAxMTowMjoxNiAyMDA2IC0wNTAwCgogICAgTW92ZWQgaTJjIGRyaXZlciBvdXQgb2YgY3B1L21wYzg2eHgvaTJjLmMgaW50byBkcml2ZXJzL2ZzbF9pMmMuYwoKICAgIGluIGFuIGVmZm9ydCB0byBiZWdpbiB0byB1bmlmeSB0aGUgdW1wdGVlbiBGU0wgSTJDIGRyaXZlcnMgdGhhdAogICAgYXJlIGFsbCBvdGhlcndpc2UgdmVyeSBzaW1pbGFyLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMTNhN2ZjZGYzN2Y2ZWE5NDI5YWUwNGM5ZGY2N2Y4OTMzNjRjZmU0YgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBPY3QgMTkgMTE6MzM6NTIgMjAwNiAtMDUwMAoKICAgICogRml4IGEgYnVuY2ggb2YgY29tcGlsZXIgd2FybmluZ3MgZm9yIGdjYyA0LjAKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGFmOWUxZjViOWU2ZjljZTgxMGY1ZThiZjI5NjFjOTU0MmE1ODY1YzIKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVR1ZSBPY3QgMTcgMDY6MTQ6MzEgMjAwNiArMDIwMAoKICAgIEFkZCBtb25pdG9yIGZ1bmN0aW9ucyBmb3IgaW5kaXJlY3QgYWNjZXNzIHRvIFBQQzQ0MCBEQ1IncwogICAgUGF0Y2ggYnkgTGVvbmlkIEJhcnl1ZGluLCAxMiBPY3QgMjAwNgoKY29tbWl0IDVmMzI0OWEwYTE2OGU0NDZhNGNjOTY2OWIyYmNlMGJjNDU2ZjBhMDkKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgT2N0IDEzIDE2OjQ3OjUzIDIwMDYgLTA1MDAKCiAgICBGaXhlZCBsZWFkaW5nIHdoaXRlc3BhY2UgaXNzdWVzLgogICAgUmVtb3ZlZCBzcHVyaW91cyBMQVdBUiB0aGluZy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDBlZTkwY2I3N2UwMWQ2ZThjY2QzN2UxYmQ5NjY3ODU5Nzg3NWMzOTEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgT2N0IDEyIDEwOjQyOjM2IDIwMDYgLTA1MDAKCiAgICBSZW1vdmUgdW5uZWVkZWQgaW5jbHVkZSBmaWxlcyBhbmQgbG9jYWwgdmFyaWFibGUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAxZWFmM2E1ZmY0OTYwYTQ2ZjNhOTA2MzU2OGJhMmFmNzg4M2YwN2M1CkF1dGhvcjogR3JhbnQgTGlrZWx5IDxncmFudC5saWtlbHlAc2VjcmV0bGFiLmNhPgpEYXRlOglUdWUgT2N0IDEwIDAwOjIzOjMyIDIwMDYgLTA2MDAKCiAgICBGaXggcG9zc2libGUgdW5pbml0aWFsaXplZCB2YXJpYWJsZSBjb21waWxlciB3YXJuaW5nLgoKICAgIFdoZW4gQ09ORklHX09GX0ZMQUdfVFJFRSBpcyBzZXQsIHRoZSBjb21waWxlciBjb21wbGFpbnMgdGhhdCAnbGVuJyBpbgogICAgZG9fYm9vdG1fbGludXgoKSBtYXkgYmUgdW5pbml0aWFsaXplZC4gIFRoZXJlIGlzIG5vIHBvc3NpYmlsaXR5IGluIHRoZQogICAgY3VycmVudCBjb2RlIHRoYXQgbGVuIHdpbGwgZ2V0IHVzZWQgdW5pbml0aWFsaXplZCwgYnV0IHRoaXMgZml4IGZvbGxvd3MKICAgIHRoZSBleGlzdGluZyBjb252ZW50aW9uIG9mIHNldHRpbmcgYm90aCBsZW4gYW5kIGRhdGEgdG8gemVybyBhdCB0aGUgc2FtZQogICAgdGltZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBHcmFudCBMaWtlbHkgPGdyYW50Lmxpa2VseUBzZWNyZXRsYWIuY2E+Cgpjb21taXQgNzM3NmViODdhYWE2MDFmNzI4ZjliOGU1ZTljZDI3MTFhNjdmNTI5ZQpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBPY3QgMTEgMTU6MTM6MDEgMjAwNiAtMDUwMAoKICAgICogRml4IGEgYnVuY2ggb2YgY29tcGlsZXIgd2FybmluZ3MgZm9yIGdjYyA0LjAKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJmNjUxYmFhMzY1ZTU0NDcyNDZhYWQ2YTYzM2NjZDY2N2NmMjRhMzkKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgT2N0IDExIDEwOjEwOjQzIDIwMDYgLTA1MDAKCiAgICBNb3ZlICJhciIgZmxhZ3MgdG8gY29uZmlnLm1rIHRvIGFsbG93IGZvciBzaWxlbnQgIm1ha2UgLXMiCgpjb21taXQgMWZkNTY5OWE0YTI0ZjVjMWRhYjFiMzJmNDgwYmFjZTFlYmI5ZmMzZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMTAgMTc6MTk6MDMgMjAwNiAtMDUwMAoKICAgIENvZGluZyBzdHlsZSBjaGFuZ2VzIHRvIHJlbW92ZSBsb2NhbCB2YXJpYmxlIGJsb2NrcwogICAgYW5kIHJlZm9ybWF0IGEgYml0IG5pY2VyLgoKY29tbWl0IDhiMjgzZGJiM2EwOGQxYjhkNDA2YmMxNWYxMTllMDgxYjNlMjYwNmEKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDEwIDE3OjE2OjA0IDIwMDYgLTA1MDAKCiAgICBGaXggd2hpdGVzcGFjZSBpc3N1ZXMuCgpjb21taXQgN2IzODJiNzEyNWYyMzk3Y2NlNjMyNTNkZjYyZjE4M2UzZGZhMjc3MApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMTAgMTc6MTQ6NDUgMjAwNiAtMDUwMAoKICAgIEZpeCB3aGl0ZXNwYWNlIGlzc3Vlcy4KCmNvbW1pdCBlMTAzOTBkZGQ3MzZiMGRhZDE1MjhlZWM0YjBmZTM1YzA4MjcxMzlhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE9jdCAxMCAxNzowNjo1MyAyMDA2IC0wNTAwCgogICAgRml4IHdoaXRlc3BhY2UgaXNzdWVzLgoKY29tbWl0IDg5ODc1ZTk2YmEzZjAyMzE1N2JmNTBkNWY4ZTMzYmYyNTQ5NjRhNzYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgT2N0IDEwIDE3OjAzOjQzIDIwMDYgLTA1MDAKCiAgICBSYW4gbGluZGVudCBhbmQgY2xlYW5lZCB1cCB3aGl0ZXNwYWNlIGlzc3Vlcy4KICAgIEZvcm1hdCBmb3IgODAtY29sdW1ucyB0b28uCgpjb21taXQgMzMzOTYxYWU3MDk1ZmM2NmQ4YTA0MWZjZTFhYzllZTg3M2IwOWQ4NgpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBPY3QgMTAgMTc6MDI6MjIgMjAwNiAtMDUwMAoKICAgIEZpeCB3aGl0ZXNwYWNlIGFuZCA4MC1jb2wgaXNzdWVzLgoKY29tbWl0IDVjOTEyY2IxYzMxMjY2YzY2Y2E1OWIzNmY5YjZmODcyOTY0MjFkNzUKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBPY3QgNyAxMTozNjo1MSAyMDA2ICswMjAwCgogICAgQ0ZHX05BTkRfUVVJRVRfVEVTVCBhZGRlZCB0byBub3Qgd2FybiB1cG9uIG1pc3NpbmcgTkFORCBkZXZpY2UKICAgIFBhdGNoIGJ5IFN0ZWZhbiBSb2VzZSwgMDcgT2N0IDIwMDYKCmNvbW1pdCA1YmM1MjhmYTRkYTc1MWQ0NzIzOTdiMzA4MTM3MjM4YTY0NjVhZmQyCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDcgMTE6MzU6MjUgMjAwNiArMDIwMAoKICAgIFVwZGF0ZSBBTFBSIGNvZGUgKE5BTkQgc3VwcG9ydCB3b3JraW5nIG5vdykKICAgIFBhdGNoIGJ5IFN0ZWZhbiBSb2VzZSwgMDcgT2N0IDIwMDYKCmNvbW1pdCA3N2Q1MDM0ODQ3ZDMyODc1M2I4MGM0NmI4M2Y5NjBhMTRhMjZmNDBlCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglTYXQgT2N0IDcgMTE6MzM6MDMgMjAwNiArMDIwMAoKICAgIFJlbW92ZSBjb21waWxlIHdhcm5pbmdzIGluIGZwZ2EgY29kZQogICAgUGF0Y2ggYnkgU3RlZmFuIFJvZXNlLCAwNyBPY3QgMjAwNgoKY29tbWl0IGYzNDQzODY3ZTkwZDI5NzlhN2RkMWM2NWIwZDUzNzc3N2UxZjk4NTAKQXV0aG9yOiBTdGVmYW4gUm9lc2UgPHNyQGRlbnguZGU+CkRhdGU6CVNhdCBPY3QgNyAxMTozMDo1MiAyMDA2ICswMjAwCgogICAgQWRkIENPTkZJR19CT0FSRF9SRVNFVCB0byBjb25maWd1cmUgYm9hcmQgc3BlY2lmaWMgcmVzZXQgZnVuY3Rpb24KICAgIFBhdGNoIGJ5IFN0ZWZhbiBSb2VzZSwgMDcgT2N0IDIwMDYKCmNvbW1pdCBmNTVkZjE4MTg3ZTdhNDVjYjczZmVjNDM3MGQxMjEzNWU2NjkxYWUxCkF1dGhvcjogSm9obiBUcmFpbGwgPGpvaG4udHJhaWxsQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBTZXAgMjkgMDg6MjM6MTIgMjAwNiArMDEwMAoKICAgIEZpeCBtaXNzaW5nIHRDeWNsZS9tb2RmcmVxIGNhbGN1bGF0aW9uLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvaG4gVHJhaWxsIDxqb2huLnRyYWlsbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDgyNzJkYzJmNThmMjQ3M2Q4OTk1ZmNjOWI5MTY0NDBjZmJhMDgwZjAKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBTZXAgMTMgMTA6MzM6MzUgMjAwNiAtMDUwMAoKICAgIFVwZGF0ZWQgY29uZmlnIGhlYWRlcnMgdG8gYWRkIGRlZmF1bHQgRkRULWJhc2VkIGJvb3RpbmcKCmNvbW1pdCAwOWYzZTA5ZTllYmNmYTc5MTljYTg5MzFhNGI1NTA0ZmFkZDFmMWQzCkF1dGhvcjogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgU2VwIDEzIDEwOjM0OjE4IDIwMDYgLTA1MDAKCiAgICBBZGQgc3VwcG9ydCBmb3IgZVRTRUMgMyAmIDQgb24gODU0OCBDRFMKCiAgICAqIEFkZGVkIHN1cHBvcnQgZm9yIHVzaW5nIGVUU0VDIDMgYW5kIGVUU0VDIDQgb24gdGhlIDg1NDggQ0RTLgogICAgICBUaGlzIHdpbGwgb25seSB3b3JrIG9uIHJldiAxLjMgYm9hcmRzIChidXQgZG9lc24ndCBicmVhayBvbGRlciBib2FyZHMpCiAgICAqIENsZWFuZWQgdXAgc29tZSBjb21tZW50cyB0byByZWZsZWN0IHRoZSBleHBhbmRlZCByb2xlIG9mIHRzZWMKICAgICAgaW4gb3RoZXIgc3lzdGVtcwoKY29tbWl0IDA4NGQ2NDhiMTA5Yzg5ODRmODM2NzQwNDNjMWE3ZmEzODg1ZWY4MDEKQXV0aG9yOiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBTZXAgMTMgMTA6MzM6NTYgMjAwNiAtMDUwMAoKICAgIEFkZGVkIGNvZGUgdG8gc3VwcG9ydCAyLjYuMTggUENJIGNoYW5nZXMgaW4gdS1ib290CgogICAgKiBBZGRlZCBjb2RlIHRvIHN3aXp6bGUgdGhlIElSUSBtYXAgZm9yIHRoZSBQQ0kKCmNvbW1pdCBhZmJkYzY0OWY4NzUxZTRmNGYxYTZmNTI3ZWRmZTEzOTc3M2YyYzE1CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIFNlcCAxOSAwOTozNDoxMCAyMDA2IC0wNTAwCgogICAgTW9kaWZpZWQgbWFrZWZpbGUgZm9yIG5ldyBidWlsZCBtZWNoYW5pc20uCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkMTRiYTZhNzk4YmViNzUzZTdhODY0NTAwNDE0ZmNjMmQxOThiOGJjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IFNlcCAxNCAwODo0MDozNiAyMDA2IC0wNTAwCgogICAgSGFuZGxlIDg2eHggU1ZSIHZhbHVlcyBhY2NvcmRpbmcgdG8gdGhlIG5ldyBSZWZlcmVuY2UgTWFudWFsLgogICAgQm90aCA4NjQxIGFuZCA4NjQxRCBoYXZlIFNWUiA9PSAweDgwOTAsIGFuZCBhcmUgZGlzdGluZ3Vpc2hlZAogICAgYnkgdGhlIGJ5dGUgaW4gYml0cyAxNi0yMyBpbnN0ZWFkLgogICAgVGhhbmtzIHRvIEphc29uIEppbiBmb3Igbm90aWNpbmcuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4OGM4ZjQ5MjFmYzQ3ZmIwZWIyMzg0YjE2NTg2ZjFiZDdmMjc1YmU3CkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIEF1ZyAyOCAxNDoyNTozMSAyMDA2ICswODAwCgogICAgRml4ZWQgYW4gT0YtdHJlZSBvZmYtYnktb25lIGJ1ZyB3aGVuIGFkZGluZyBhIG5ldyBwcm9wZXJ0eSBuYW1lLgogICAgVGhpcyBidWcgd2lsbCBjYXVzZSB0aGUga2VybmVsIGJvb3RpbmcgdG8gcGF1c2UgYSBsb25nIHRpbWUuCgogICAgU2lnbmVkLW9mZi1ieTogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KICAgIChjaGVycnkgcGlja2VkIGZyb20gMmYxNTc3NmNjYzZkYzMyMzc3ZDhiYTk2NTJiOGY1ODA1OWMyN2M2ZCBjb21taXQpCgpjb21taXQgOWJmZjdhNjlhODg1YWRlYmJkMmJkNDU5OTA0OTRlYzRjZjk5OGEzMApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjkgMTE6MDU6MDkgMjAwNiAtMDUwMAoKICAgIFJlbW92ZSB0cmFpbGluZyBlbXB0eSBsaW5lcy4KCmNvbW1pdCBjZDZkNzNkNWI4OTVhNTkzNWFjNGZkZTBhMzU2Mjg4MTQyYTU4NGUwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyOSAwOTo0ODo0OSAyMDA2IC0wNTAwCgogICAgUmVtb3ZlIGJvZ3VzIG1zeW5jIGFuZCB1c2Ugdm9sYXRpbGUgYXNtLgoKY29tbWl0IDc3OGQ0NTA0OWNlNTkyN2I2NWIzZmYxZDhlNjY5MmI2NTRiZGQ0OWUKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDI5IDA4OjE3OjE0IDIwMDYgLTA1MDAKCiAgICBBZGQgbXlzZWxmIGFzIG1haW50YWluZXIgZm9yIE1QQzg2NDFIUENOLgoKY29tbWl0IDJmMTU3NzZjY2M2ZGMzMjM3N2Q4YmE5NjUyYjhmNTgwNTljMjdjNmQKQXV0aG9yOiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDI4IDE0OjI1OjMxIDIwMDYgKzA4MDAKCiAgICBGaXhlZCBhbiBPRi10cmVlIG9mZi1ieS1vbmUgYnVnIHdoZW4gYWRkaW5nIGEgbmV3IHByb3BlcnR5IG5hbWUuCiAgICBUaGlzIGJ1ZyB3aWxsIGNhdXNlIHRoZSBrZXJuZWwgYm9vdGluZyB0byBwYXVzZSBhIGxvbmcgdGltZS4KCiAgICBTaWduZWQtb2ZmLWJ5OiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IDU1Njc4MDZiNjdkMGFlODM0OTNhYTg4MjNhZDNiNmM5MTRmNTgxZDcKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgQXVnIDI1IDE0OjM4OjM0IDIwMDYgLTA0MDAKCiAgICBDaGFuZ2UgcmFtZGlza2FkZHIgYW5kIGR0YmFkZHIKICAgIFJlbW92ZSBQRVggZmx1ZmYgY29tbWFuZHMuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjJiNzg0MjFkOWRiNDljMjFhODIxYWY4YTE5YzIxYzFmN2RmYjI5ZQpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMjMgMTM6MzI6NDUgMjAwNiAtMDUwMAoKICAgICogQW5vdGhlciBzbWFsbCBmaXggZm9yIGJvb3Rpbmcgd2l0aCBkaXNhYmxlX29mCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0YTdjYzBmMjE5MThlNmVjZjA3ZWQ1NzA3NWQ2N2RmMmM0YTEyOTljCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyAyMyAxMTowNDo0MyAyMDA2IC0wNTAwCgogICAgQ2xlYW51cCBhbmQgbGluZGVudCBuZXcgQUhDSSBkcml2ZXIuCgpjb21taXQgZGFiZjllZjhjMTBiNGRlYWQ1ZWYyMTA2ZWY3NDJiMWMwNmI1NDJkZQpBdXRob3I6IEppbiBaaGVuZ3hpb25nIDxqYXNvbkBidXMuYXAuZnJlZXNjYWxlLm5ldD4KRGF0ZToJV2VkIEF1ZyAyMyAxOToxNToxMiAyMDA2ICswODAwCgogICAgQWRkIEFIQ0kgZGVmaW5lIGFuZCBzYXRhIHN1cHBvcnQgZm9yIE1QQzg2NDFIUENOIGJvYXJkLgoKICAgIFNpZ25lZC1vZmYtYnk6SmFzb24gSmluPGphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDQ3ODJhYzgwYjAyZjBkMDFhZmQzMDllMjIwMGRkM2M3MDM3ZjJiYTQKQXV0aG9yOiBKaW4gWmhlbmd4aW9uZyA8amFzb25AYnVzLmFwLmZyZWVzY2FsZS5uZXQ+CkRhdGU6CVdlZCBBdWcgMjMgMTk6MTA6NDQgMjAwNiArMDgwMAoKICAgIEFkZCBBSENJIHN1cHBvcnQgdG8gdS1ib290CgogICAgQWRkIEFIQ0kgc3VwcG9ydCBpbiB1LWJvb3QsIGVuYWJsZSB0aGUgc2F0YSBkaXNrIGNvbnRyb2xsZXJzIHdoaWNoCiAgICBmb2xsb3dpbmcgdGhlIEFIQ0kgcHJvdG9jb2wuCgogICAgU2lnbmVkLW9mZi1ieTpKYXNvbiBKaW48amFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZDhlYTJhY2Y1ZjEzN2NhZTk5NDE3ZGY0ZjU3M2QwMzZlZTM4NDY2OApBdXRob3I6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgMjMgMTc6NTQ6MzIgMjAwNiArMDgwMAoKICAgIEFkZCBkdGIgYm9vdC11cCBwYXJhbWV0ZXIgdG8gZGVmYXVsdCBib290IGNvbW1hbmRzLgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjkzNzc1YzIwMzZiOTliYWEzOTBlYTQyNWM0NzcxODk1YmJjNjNjNApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjIgMTg6MjY6MDggMjAwNiAtMDUwMAoKICAgIENsZWFudXAgZXZlbiBtb3JlIHBvb3JseSBpbnRyb2R1Y2VkIHdoaXRlc3BhY2UuCgpjb21taXQgYWU2MjQxNjg1Y2JjZjBjNzlhMzYzNjUzMGQyY2VhYjFmYjI5MWE5NApBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjIgMTg6MDc6MDAgMjAwNiAtMDUwMAoKICAgIENsZWFudXAgbW9yZSBwb29ybHkgaW50cm9kdWNlZCB3aGl0ZXNwYWNlLgoKY29tbWl0IDJjMzNlOGExYzUzNWIzYWU5MWNmMGIyODQ0ODA2MDBiZjNmNTdjNTcKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIyIDE3OjU0OjA1IDIwMDYgLTA1MDAKCiAgICBDbGVhbnVwIHBvb3JseSBpbnRyb2R1Y2VkIHdoaXRlc3BhY2UuCgpjb21taXQgODBlOTU1YzdkZDk4ZjRiNGZkMjNjMjExM2NhZjc1ZWQyYjc3YjViMwpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjIgMTI6MjU6MjcgMjAwNiAtMDUwMAoKICAgIEdlbmVyYWwgaW5kZW50IGFuZCB3aGl0ZXNwYWNlIGNsZWFudXBzLgoKY29tbWl0IGZmZmYzYWU1NmY1ODQyY2EzNjc5ZTRjZTc5MjJiODE5YTg3YWFkOWYKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDIyIDEyOjA2OjE4IDIwMDYgLTA1MDAKCiAgICBHZW5lcmFsIGluZGVudCBhbmQgd2hpdGVzcGFjZSBjbGVhbnVwcy4KCmNvbW1pdCA0MWEwZThiMzA0ZDNmZjU1ZmUyN2EyMzA1MDdhYWM3OTY4NDAxNmFjCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyMiAxMDo0MjoyMSAyMDA2IC0wNTAwCgogICAgQ2xlYW51cCBjb21waWxlciB3YXJuaW5ncy4KCmNvbW1pdCA1ZGU2MmM0N2E4NjI4YjNkYTRkNzNmN2MwNzAyN2YzMmEzMzQyZDQwCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAyMiAwOTozMTo1OSAyMDA2IC0wNTAwCgogICAgRml4IGRpc2FibGVfb2YgYm9vdGluZwoKICAgIFNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgODdhNDQ5YzhhYzM5NjQyMGNiMjQyNjBmNzE3ZWE5ZTZmYWE4MjA0NwpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMjIgMDk6MjM6NTUgMjAwNiAtMDUwMAoKICAgIFN1cHBvcnQgZm9yIEZEVCBpbiB1SW1hZ2UgZm9ybWF0LCBlcnJvciB3aGVuIHVzaW5nIEZEVCBmcm9tIGZsYXNoCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3NWMyOTljMzgzNjlkMDFhZGRkNWUwNTRiOGExNjIxN2I3MGY0YTg2CkF1dGhvcjogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEF1ZyAxNSAxNToxMjo1NSAyMDA2IC0wNDAwCgogICAgVW5sb2NrIGNhY2hlIGJlZm9yZSBrZXJuZWwgc3RhcnRzIHVwIGZvciBNUEM4Nnh4Cgpjb21taXQgNjcyNTY2NzhmMDBjMDliMGE3ZjE5ZTg2MmU1YzE4NDc1NTNkMzFiYwpBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTUgMTU6MTM6MTUgMjAwNiAtMDQwMAoKICAgIENvcHkgR2xvYmFsIERhdGEgUG9pbnRlciB0byByMjkgZm9yIERFQ0xBUkVfR0xPQkFMX0RBVEFfUFRSCgpjb21taXQgMWM4ZjZkOGZiMDI4ZjE1NjA5NGQwNWYyZDE0Mjk4ZTY0NzkzNjRhYwpBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBBdWcgMTUgMTU6MTI6NTUgMjAwNiAtMDQwMAoKICAgIFVubG9jayBjYWNoZSBiZWZvcmUga2VybmVsIHN0YXJ0cyB1cCBmb3IgTVBDODZ4eAoKY29tbWl0IDBkOWNjYzU1ZWRmOWE3ZjNjNWIyYjYyNjM1ODBhNmVhOGQ3MDJhMDQKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDE1IDE1OjEzOjE1IDIwMDYgLTA0MDAKCiAgICBDb3B5IEdsb2JhbCBEYXRhIFBvaW50ZXIgdG8gcjI5IGZvciBERUNMQVJFX0dMT0JBTF9EQVRBX1BUUgoKY29tbWl0IDg2YzhlMTdmMjVlOTcyYTdlMjcyOTUwYTA3MzVmYWQ4NGUwODJiODgKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE2IDEzOjU5OjQ3IDIwMDYgLTA1MDAKCiAgICAqIEZpeCBkaXNhYmxlX29mIGJvb3RpbmcKCiAgICBTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDI1Yzc1MWU5YWRjODZlMjJmZTNiNWI0N2NmMjgwNjM3OWI1NzVkYjcKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXVnIDE2IDEwOjU0OjA5IDIwMDYgLTA1MDAKCiAgICAqIFN1cHBvcnQgZm9yIEZEVCBpbiB1SW1hZ2UgZm9ybWF0LCBlcnJvciB3aGVuIHVzaW5nIEZEVCBmcm9tIGZsYXNoCgogICAgU2lnbmVkLW9mZi1ieTogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA4OTk2MjBjMmQ2NmQ0ZWVmM2IyYTAwMzRkMDYyZTcxZDQ1ZDg4NmM5CkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDE1IDE0OjIyOjM1IDIwMDYgKzAyMDAKCiAgICBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciB0aGUgQUxQUiBib2FyZCBmcm9tIFByb2RyaXZlCiAgICBOQU5EIG5lZWRzIHNvbWUgYWRkaXRpb25hbCB0ZXN0aW5nCiAgICBQYXRjaCBieSBIZWlrbyBTY2hvY2hlciwgMTUgQXVnIDIwMDYKCmNvbW1pdCBmMGZmNDY5MmZmMzM3MmRlYzU1MDc0YThlYjQ0NDk0M2FiMDk1YWJiCkF1dGhvcjogU3RlZmFuIFJvZXNlIDxzckBkZW54LmRlPgpEYXRlOglUdWUgQXVnIDE1IDE0OjE1OjUxIDIwMDYgKzAyMDAKCiAgICBBZGQgRlBHQSBBbHRlcmEgQ3ljbG9uZSAyIHN1cHBvcnQKICAgIFBhdGNoIGJ5IEhlaWtvIFNjaG9jaGVyLCAxNSBBdWcgMjAwNgoKY29tbWl0IGZlY2YxYzdlNGRlMWIyNzc5ZWRjMTg3NDJiOTFjMjJiZGMzMmI2OGIKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglNb24gQXVnIDE0IDE1OjMzOjM4IDIwMDYgLTA1MDAKCiAgICBGaXggQkFUMCB0byBhY3R1YWxseSBiZSBjYWNoZWFibGUsIG5vbi1ndWFyZGVkIGFzIGRvY3VtZW50ZWQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA0MGJjODM1NTlkYjU3NDU2ODE5MDlmZDczODJhZTUwOTU2N2UxMTZkCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEF1ZyA5IDE1OjMyOjE2IDIwMDYgLTA1MDAKCiAgICBSZW1vdmVkIE1QQzg2NDFIUENOIERUUyBzb3VyY2UgZmlsZSBmcm9tIGJ1aWxkLgogICAgSXQgaXMgbm8gbG9uZ2VyIGxpbmtlZCBpbnRvIFUtQm9vdDsgaXRzIHNvdXJjZXMgYXJlCiAgICBub3cgbG9jYXRlZCBpbiB0aGUga2VybmVsIHRyZWUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCAzNGMzYzBlMDFkYmYxZjhjYzJiZDA4ZGU5MmYyYjg5YmE4NDkyMWViCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NzowMyAyMDA2IC0wNTAwCgogICAgKiBTd2l0Y2hlZCBkZWZhdWx0IFBDSSBzcGVlZCBmb3IgODU0MCBBRFMgYmFjayB0byAzM01IegoKICAgICogQWRkZWQgY29tbWVudHMgYW5kIGEgcHJpbnRmIHRvIHdhcm4gdGhhdCBQQ0ktWCB3b24ndAogICAgICB3b3JrIGF0IDMzTUh6CiAgICAgIFBhdGNoIGJ5IEFuZHkgRmxlbWluZyAxNy1NYXItMjAwNgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBiNmM1ZTEzNzNiNmVhMGJiMzdhMThlNGFlZWNlYzAwNjEzZDFjZDM5CkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NjozNSAyMDA2IC0wNTAwCgogICAgKiBGaXhlZCBhIGJ1ZyB3aGVyZSA4NTU1IFBDSSBjb2RlIHVzZWQgdGhlIG9sZCB2YXJpYWJsZSBhbmQgZnVuY3Rpb24gbmFtZXMgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJmMWRmZmZkOGMyNmY4ZWNkZDYzMGEwYWU0YzgzNGU3NTFlNGU0NTIKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ2OjEzIDIwMDYgLTA1MDAKCiAgICAqIEFkZGVkIFZJQSBjb25maWd1cmF0aW9uIHRhYmxlCgogICAgKiBBZGRlZCBzdXBwb3J0IGZvciBQQ0kyIG9uIENEUwogICAgICBQYXRjaCBieSBBbmR5IEZsZW1pbmcgMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYzg4ZjlmZTY2YjY0MjQ3ZTViNmEzODQxMGJhMzE1Y2EyNTU5NmQxNgpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDU6NDEgMjAwNiAtMDUwMAoKICAgICogRml4ZWQgUENJIG1lbW9yeSBkZWZpbml0aW9ucyBQYXRjaCBieSBBbmR5IEZsZW1pbmcgMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTcwNzRlZDk2NTUzMDliNjQyMzFiYzJjZWU2OWZlODUzOTlmODA1NQpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDU6MTcgMjAwNiAtMDUwMAoKICAgICogQWRkZWQgc3VwcG9ydCBmb3IgaW5pdGlhbGl6aW5nIHNlY29uZCBQQ0kgYnVzIG9uIDg1eHggUGF0Y2ggYnkgQW5keSBGbGVtaW5nIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGYwZTZmNTdmNzFiM2M0ZmRkMTMwMjhlYjAzYzNmM2U5MTkyNmRkYTIKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ0OjQ5IDIwMDYgLTA1MDAKCiAgICAqIEFkZGVkIFBDSS1YICNkZWZpbmVzIGZvciBQQ0ktWCBpbml0aWFsaXphdGlvbiBQYXRjaCBieSBBbmR5IEZsZW1pbmcgb24gMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYTRlMTE1NThiODEwZWYyY2RkZmZkZjdiOWQ4NmJjMTEzMDQ0MTk2MApBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDQ6MjMgMjAwNiAtMDUwMAoKICAgICogTWFkZSBzdXJlIHRoZSBjb2RlIHdoaWNoIGRpc2FibGVzIHByZWZldGNoIGZvciBQQ0kgZGV2aWNlcyBzZXRzIHRoZSBzaXplIG9mIHRoZSBwcmVmZXRjaCByZWdpb24gdG8gMCBQYXRjaCBieSBBbmR5IEZsZW1pbmcgb24gMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMGUxNjM4N2RiMWQ0YWFjZDViZjM1Y2I2ZDdjMTk0Mjc2NWMwMzQ3YgpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDM6MzYgMjAwNiAtMDUwMAoKICAgICogQWRkIEZsYXQgRGV2IFRyZWUgY29uc3RydWN0aW9uIGZvciBNUEM4NXh4IEFEUyBhbmQgQ0RTIGJvYXJkcyBQYXRjaCBieSBKb24gTG9lbGlnZXIgMTctSmFuLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDg1NWU2ZmIwNzNmOWQwNGZlNGE3ZjA2YzEwN2VjYmFjNjM0NGRkZDQKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQzOjAwIDIwMDYgLTA1MDAKCiAgICAqIFJlbW92ZWQgdGhlIG9mdHJlZS5kdHMgZm9yIHN0eHh0eCBpbiBsaWdodCBvZiB0aGUgY2hhbmdlcyB0byB0aGUgZmxhdCBkZXZpY2UgdHJlZSBoYW5kbGluZyBjb2RlIFBhdGNoIGJ5IE1hdHRoZXcgTWNDbGludG9jayAyNi1KdW5lLTIwMDYKCmNvbW1pdCA1NDk4ZDkwMzEyYWFkOWY2YmRiZjA0Nzk4NjAyN2MzNWIwM2NkMTYzCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0MjoyNCAyMDA2IC0wNTAwCgogICAgKiBQYXRjaCB0byBtb2RpZnkgZnRfYnVpbGQuYyB0byB1cGRhdGUgZmxhdCBkZXZpY2UgdHJlZXMgaW4gcGxhY2UgUGF0Y2ggYnkgTWF0dGhldyBNY0NsaW50b2NrIDI2LUp1bmUtMjAwNgoKY29tbWl0IDAyNjc3NjhlZGRjNWNhN2JjMTg2NWJjNDBjODY2ODI5YWM1ZWZiZmUKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQxOjM3IDIwMDYgLTA1MDAKCiAgICAqIE1vZGlmeSBib290bSBjb21tYW5kIHRvIHN1cHBvcnQgYm9vdGluZyB3aXRoIGZsYXQgZGV2aWNlIHRyZWVzIFBhdGNoIGJ5IE1hdHRoZXcgTWNDbGludG9jayAyNi1KdW5lLTIwMDYKCmNvbW1pdCA4ZmM4YmQyY2M0NzliNmNkMTg4ZmRlZGU0MDEwZTBlMDUyOTcwYjhhCkF1dGhvcjogSm9obiBUcmFpbGwgPGpvaG4udHJhaWxsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBBdWcgOSAxNDozMzo1MCAyMDA2ICswMTAwCgogICAgQWRkIFJhcGlkaW8gc3VwcG9ydCBmb3IgdGhlIE1QQzg2NDFIUENOCgogICAgU2lnbmVkLW9mZi1ieTogSm9obiBUcmFpbGwgPGpvaG4udHJhaWxsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgOTFhNDE0YzdkMWZiMGVhYzkxMjU5MmNkOTk1YjMwYzlmMjMwNDVjOQpBdXRob3I6IEpvaG4gVHJhaWxsIDxqb2huLnRyYWlsbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgQXVnIDggMTE6MzI6NDMgMjAwNiArMDEwMAoKICAgIEZpeCBjYXNsYXQgY2FsY3VsYXRpb24KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb2huIFRyYWlsbCA8am9obi50cmFpbGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA3MDlkMzA3M2U3NDE1MzI3OGU3OTA0YTcwODE5YmJlZjdkZjUwZTFhCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEF1ZyAzIDE2OjE3OjU2IDIwMDYgLTA1MDAKCiAgICBDb252ZXJ0IHRvIG1hYy1hZGRyZXNzIGluIGV0aGVybmV0IG5vZGVzLgoKY29tbWl0IDcxNzQ4YWY4MzNjYTEwMTdlZGYxNDE1YmUzNzYzNjZmZjI5MzdkMTcKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPGhhaXlpbmcud2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI4IDEyOjQxOjM1IDIwMDYgLTA0MDAKCiAgICBDb3JyZWN0IHRoZSBpcnEgdmFsdWUgb2YgRFVBUlQyCgpjb21taXQgOWNiM2U4ODE2YWU0ZDg1NGU3ZGMyMjEyOGMzZWVhM2Q3MGJiOTgyYwpBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMjggMTI6NDE6NDEgMjAwNiAtMDQwMAoKICAgIENoYW5nZSB0aGUgc3BhY2Ugc2l6ZSBvZiBQRVggSU8gaW4gUkVBRE1FCgpjb21taXQgMjM5ZGIzN2M5NGY3YTkyOTQxYzQ0NjVmZWNlYjg2N2M2MDkyNDFjNQpBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CUZyaSBKdWwgMjggMTI6NDE6MTggMjAwNiAtMDQwMAoKICAgIE1vdmUgZ2V0X2JvYXJkX3N5c19jbGsgdG8gYm9hcmQgZGlyZWN0b3J5Cgpjb21taXQgNDkyOTAwYjk4NTQzOWZiY2UxYTExOGFmZGUxZTM1ZGVmODcwZGIwMwpBdXRob3I6IEpvaG4gVHJhaWxsIDxqb2huLnRyYWlsbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI4IDA5OjAzOjU0IDIwMDYgKzAxMDAKCiAgICBGaXggODY0MUhQQ04gcG9sbHV0aW9uCgpjb21taXQgNTE1YWI4YTYyZTg1NzRlMmJhYmM2ZThkY2M0MzU0NGFkMjIxYzViMgpBdXRob3I6IEpvaG4gVHJhaWxsIDxqb2huLnRyYWlsbEBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDI4IDA4OjE2OjA2IDIwMDYgKzAxMDAKCiAgICBGaXggODY0MUhQQ04gdGltZWJhc2UKCmNvbW1pdCBjODYzNjBiODMwZjFlZWNkN2E3MjIwODU3NWRkZTRmNTc4NzlmYWVhCkF1dGhvcjogWmhhbmcgV2VpIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIEp1bCAyOCAwMDowMTozNCAyMDA2ICswODAwCgogICAgRml4ZWQgT0YgZGV2aWNlIHRyZWUgb2YgbXBjODZ4eGhwY24gYm9hcmQuCgogICAgVGhlIGNoYW5nZXMgd29ya3MgaW4gd2l0aCBrZXJuZWwgaXJxIG1hcHBpbmcgcmV3b3JrLgoKICAgIFNpZ25lZC1vZmYtYnk6IFpoYW5nIFdlaSA8d2VpLnpoYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmVhM2YyOGQyODU5NDJiZjNmN2FiMzM5Y2U4NTE3OGRlZDU0NDIyNQpBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdWwgMTIgMTA6NDg6MDUgMjAwNiAtMDQwMAoKICAgIEFkZCBzdXBwb3J0IGZvciByZWFkaW5nIGFuZCB3cml0aW5nIG1hYyBhZGRyZXNzZXMgdG8gb3IgZnJvbSBJRCBFRVBST00uCgogICAgQWRkZWQgY29kZSBmb3IgcmVhZGluZyBhbmQgd3JpdGluZyBNYWMgYWRkcmVzc2VzIHRvL2Zyb20gSUQgRUVQUk9NKDB4NTcpLgogICAgV2l0aCBhdHRhY2hlZCBwYXRjaCwgd2UgY2FuIHVzZSBjb21tYW5kICJtYWMvbWFjIHJlYWQvbWFjIHNhdmUvIgogICAgdG8gcmVhZCBhbmQgd3JpdGUgRUVQUk9NIHVuZGVyIHUtYm9vdCBwcm9tcHQuCgogICAgVS1ib290IHdpbGwgY2FsY3VsYXRlIHRoZSBjaGVja3N1bSBvZiBFRVBST00gd2hpbGUgYm9vdHVwLAogICAgaWYgaXQgaXMgcmlnaHQsIHRoZW4gdS1ib290IHdpbGwgY2hlY2sgd2hldGhlciB0aGUgbWFjIGFkZHJlc3MKICAgIG9mIGVUU0VDMC8xLzIvMyBpcyBhdmFpbGFsYmUgKG5vbi16ZXJvKS4KCiAgICBJZiB0aGVyZSBpcyBtYWMgYWRkcmVzcyBhdmFpbGFiZSBpbiBFRVBST00sIHUtYm9vdCB3aWxsIHVzZSBpdCwKICAgIG90aGVyZXdpc2UsIHUtYm9vdCB3aWxsIHVzZSB0aGUgbWFjIGFkZHJlc3MgZGVmaW5lZCBpbgogICAgTVBDODY0MUhQQ04uaC4gVGhpcyBtYXRjaGVzIHRoZSByZXF1aXJlbWVudCB0byBzZXQgdW5pcXVlIG1hYyBhZGRyZXNzCiAgICBmb3IgZWFjaCBUU0VDIHBvcnQuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IFlvcmsgU3VuIDx5b3Jrc3VuQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZmNiMjhlNzYzNDE1ZTBlNGU2NmIwZjQ1ODQyZDE1NTdhZTE5OGU1ZQpBdXRob3I6IEppbiBaaGVuZ3hpb25nIDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEp1bCAxMyAxMDozNToxMCAyMDA2IC0wNTAwCgogICAgRml4ZWQgaW5pdHJkIGlzc3VlIGJ5IGRlZmluZSBiaWcgUkFNCgogICAgU2lnbmVkLW9mZi1ieTpKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGU2Y2QyYTE3ODVkNzRlYzNkMzBhODZmMWNiMzYwYmU4ZGU0NzgxNTEKQXV0aG9yOiBKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgSnVsIDcgMTA6MDE6NDUgMjAwNiAtMDUwMAoKICAgIFdlIG1hZGUgYSB1LWJvb3QgcGF0Y2ggdG8gZml4IHRoZSBoYW5nIHVwIGlzc3VlCiAgICB3aGVuIGJvb3RpbmcgZmlsZXN5c3RlbSBmcm9tIHJhbWRpc2suCgogICAgU2lnbmVkLW9mZi1ieTpKYXNvbiBKaW4gPEphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDM4NDMzY2NjNTg1MGVlNzA1NDlhZjBiMmJjNWI5MjAzNTVlZjUzODgKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ3OjAzIDIwMDYgLTA1MDAKCiAgICAqIFN3aXRjaGVkIGRlZmF1bHQgUENJIHNwZWVkIGZvciA4NTQwIEFEUyBiYWNrIHRvIDMzTUh6CiAgICAqIEFkZGVkIGNvbW1lbnRzIGFuZCBhIHByaW50ZiB0byB3YXJuIHRoYXQgUENJLVggd29uJ3QKICAgICAgd29yayBhdCAzM01IegogICAgICBQYXRjaCBieSBBbmR5IEZsZW1pbmcgMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgZTRjMmEwZWIwYzNlM2ZmYmY4MjQ4MDAxODRlZTQyYmRjOTlkNWIxOQpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDY6MzUgMjAwNiAtMDUwMAoKICAgICogRml4ZWQgYSBidWcgd2hlcmUgODU1NSBQQ0kgY29kZSB1c2VkIHRoZSBvbGQgdmFyaWFibGUgYW5kCiAgICAgIGZ1bmN0aW9uIG5hbWVzCiAgICAgIFBhdGNoIGJ5IEFuZHkgRmxlbWluZyAxNy1NYXItMjAwNgoKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHkgRmxlbWluZyA8YWZsZW1pbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBjYmZjN2NlNzU2Yjg4ZWIyNmU1NTM3YmM3YjYyNWM0NDVjNmRjZmFjCkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0NjoxMyAyMDA2IC0wNTAwCgogICAgKiBBZGRlZCBWSUEgY29uZmlndXJhdGlvbiB0YWJsZQogICAgKiBBZGRlZCBzdXBwb3J0IGZvciBQQ0kyIG9uIENEUwogICAgICBQYXRjaCBieSBBbmR5IEZsZW1pbmcgMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNTJjN2E2OGI4ZDU4N2ViY2Y1YTZiMDUxYjU4YjNkM2ZmYTM3N2RkYwpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDU6NDEgMjAwNiAtMDUwMAoKICAgICogRml4ZWQgUENJIG1lbW9yeSBkZWZpbml0aW9ucwogICAgICBQYXRjaCBieSBBbmR5IEZsZW1pbmcgMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMDg3NDU0NjA5ZTQ3Mjk1NDQzYWY3OTNhMjgyY2RkY2Q5MWE1ZjQ5YwpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDU6MTcgMjAwNiAtMDUwMAoKICAgICogQWRkZWQgc3VwcG9ydCBmb3IgaW5pdGlhbGl6aW5nIHNlY29uZCBQQ0kgYnVzIG9uIDg1eHgKICAgICAgUGF0Y2ggYnkgQW5keSBGbGVtaW5nIDE3LU1hci0yMDA2CgogICAgU2lnbmVkLW9mZi1ieTogQW5keSBGbGVtaW5nIDxhZmxlbWluZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGI2MzZhYWViNmZkNTE2YTQ0MmZiNjExYmJlZWRkZjMwNzdhNjg3ZmIKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQ0OjQ5IDIwMDYgLTA1MDAKCiAgICAqIEFkZGVkIFBDSS1YICNkZWZpbmVzIGZvciBQQ0ktWCBpbml0aWFsaXphdGlvbgogICAgICBQYXRjaCBieSBBbmR5IEZsZW1pbmcgb24gMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMjBhYmJjNmZmZmExMTU2OTAxMDdjYzk0MmM3YWJmODRiZGMwM2ExYgpBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDQ6MjMgMjAwNiAtMDUwMAoKICAgICogTWFkZSBzdXJlIHRoZSBjb2RlIHdoaWNoIGRpc2FibGVzIHByZWZldGNoIGZvciBQQ0kgZGV2aWNlcwogICAgICBzZXRzIHRoZSBzaXplIG9mIHRoZSBwcmVmZXRjaCByZWdpb24gdG8gMAogICAgICBQYXRjaCBieSBBbmR5IEZsZW1pbmcgb24gMTctTWFyLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBBbmR5IEZsZW1pbmcgPGFmbGVtaW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNDBkNWZhMzVkMDJkZjIyNTgwNTkzYmYwMDM5YWIxNzMzNjdlOGVmMApBdXRob3I6IE1hdHRoZXcgTWNDbGludG9jayA8bXNtQGZyZWVzY2FsZS5jb20+CkRhdGU6CVdlZCBKdW4gMjggMTA6NDM6MzYgMjAwNiAtMDUwMAoKICAgICogQWRkIEZsYXQgRGV2IFRyZWUgY29uc3RydWN0aW9uIGZvciBNUEM4NXh4IEFEUyBhbmQgQ0RTIGJvYXJkcwogICAgICBQYXRjaCBieSBKb24gTG9lbGlnZXIgMTctSmFuLTIwMDYKCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJlN2U4YjBjYjVhMGM0OWRjMTgwMDc1Yjk2ZGYyOTZhODkzYmYxNDYKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQzOjAwIDIwMDYgLTA1MDAKCiAgICAqIFJlbW92ZWQgdGhlIG9mdHJlZS5kdHMgZm9yIHN0eHh0eCBpbiBsaWdodCBvZiB0aGUgY2hhbmdlcwogICAgICB0byB0aGUgZmxhdCBkZXZpY2UgdHJlZSBoYW5kbGluZyBjb2RlCiAgICAgIFBhdGNoIGJ5IE1hdHRoZXcgTWNDbGludG9jayAyNi1KdW5lLTIwMDYKCmNvbW1pdCAxYjM4MGVjMjI1NjY1ZTczOTU5Njc3ZjM4OTNkYzY1OGM1OTI1ZTA1CkF1dGhvcjogTWF0dGhldyBNY0NsaW50b2NrIDxtc21AZnJlZXNjYWxlLmNvbT4KRGF0ZToJV2VkIEp1biAyOCAxMDo0MjoyNCAyMDA2IC0wNTAwCgogICAgKiBQYXRjaCB0byBtb2RpZnkgZnRfYnVpbGQuYyB0byB1cGRhdGUgZmxhdCBkZXZpY2UgdHJlZXMgaW4gcGxhY2UKICAgICAgUGF0Y2ggYnkgTWF0dGhldyBNY0NsaW50b2NrIDI2LUp1bmUtMjAwNgoKY29tbWl0IDk4YTljNGQ0NjhhOTQyYTA5ZWJlODk3OWJlYzUwODAxN2YzZTQ0NjIKQXV0aG9yOiBNYXR0aGV3IE1jQ2xpbnRvY2sgPG1zbUBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDEwOjQxOjM3IDIwMDYgLTA1MDAKCiAgICAqIE1vZGlmeSBib290bSBjb21tYW5kIHRvIHN1cHBvcnQgYm9vdGluZyB3aXRoIGZsYXQgZGV2aWNlIHRyZWVzCiAgICAgIFBhdGNoIGJ5IE1hdHRoZXcgTWNDbGludG9jayAyNi1KdW5lLTIwMDYKCmNvbW1pdCBkYTAxMmFiNjYxZmQ0YWIxNjlkZDdiOWIzMjIwMWE0ZGY2MmNmMzRhCkF1dGhvcjogSmluIFpoZW5neGlvbmcgPEphc29uLkppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgSnVuIDI4IDA4OjQzOjU2IDIwMDYgLTA1MDAKCiAgICBDaGFuZ2UgSWQgdG8gc3ltYm9saWMgbmFtZSBmb3IgUlRMODEzOQoKICAgIFNpZ25lZC1vZmYtYnk6IEphc29uIEppbiA8SmFzb24uamluQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYmMwOWNmM2MyYmZiOGQ1NGM2NTljYmIzMzJmNzlkMDk1MDk4MmZkMApBdXRob3I6IEppbiBaaGVuZ3hpb25nLVI2NDE4OCA8SmFzb24uSmluQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdW4gMjcgMTg6MTI6MTAgMjAwNiArMDgwMAoKICAgIEZpeCBSVEw4MTM5IGluIGJpZyBlbmRpYW4KCiAgICBzaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLkppbkBmcmVlc2NhbGUuY29tPgogICAgc2lnbmVkLW9mZi1ieTogV2VpIFpoYW5nIDx3ZWkuemhhbmdAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBmY2ZiOWE1Nzk0N2ZjMjAzYjk5ZmU4MWFiMDU3OGY3Mjg2MjYxZjlmCkF1dGhvcjogSmluIFpoZW5neGlvbmctUjY0MTg4IDxKYXNvbi5KaW5AZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIEp1biAyNyAxODoxMjoyMyAyMDA2ICswODAwCgogICAgRml4IFRzZWMgYnVnIHdoZW4gbm8gbGluawoKICAgICBXaGVuIHRmdHAgYSBub24tZXhpc3QgZmlsZSBmcm9tIHRoZSB0ZnRwIHNlcnZlciwgdS1ib290IHdpbGwgY2hlY2sKICAgICB0aGUgbGluayBvZiBhbGwgZXRoIHBvcnQuIFRoZSBvcmlnaW5hbCBmaWxlIHdpbGwgcmV0dXJuIHdyb25nIGxpbmsKICAgICBzdGF0ZSBvbiB0aGUgbm8gbGluayBwb3J0cy4KCiAgICBzaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPEphc29uLkppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGJkMjJjMmI5NzUxNGZiZmIwZTAzYmQ5YzcyYjM0NDVlNGRiZDU3ZTIKQXV0aG9yOiBKaW4gWmhlbmd4aW9uZy1SNjQxODggPEphc29uLkppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDI3IDE4OjEyOjAyIDIwMDYgKzA4MDAKCiAgICBGaXggYnVnIGZvciBpb19iYXIgc2l6ZSBkdXJpbmcgcGNpIHNjYW4KCiAgICBEdXJpbmcgdGhlIHBjaSBzY2FuIHByb2Nlc3MsIFNvbWUgZGV2aWNlcyByZXR1cm4gYmFyX3JlcG9uc2Ugd2l0aCB0aGUKICAgIGhpZ2hlc3QgYnl0ZXMgMCwgc3VjaCBhcyB0aGUgcGNpIGJyaWRnZSBpbiB1bGkxNTc1IHJldHVybiBiYXJfcmVzcG9uc2UKICAgIHdpdGggMHhmZmZmZmYsIFNvIHRoZSBiYXJfc2l6ZSBzaG91bGQgYmUgbWFudWFsbHkgc2V0IHVuZGVyIDY0Sy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKYXNvbiBKaW4gPGphc29uLmppbkBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGZhN2RiOWMzNzdiYzIzNTNhMTdiZjFkMzgxZDY1YTZjNDE4NzI4ZjAKQXV0aG9yOiBKaW4gWmhlbmd4aW9uZy1SNjQxODggPEphc29uLkppbkBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDI3IDE4OjExOjU0IDIwMDYgKzA4MDAKCiAgICBFbmFibGUgUENJRTEgZm9yIE1QQzg2NDFIUENOIGJvYXJkCgogICAgU2lnbmVkLW9mZi1ieTogSmFzb24gSmluIDxKYXNvbi5qaW5AZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCA5OWQ3MGUzYTQ3YWZmYjliYWUwNDFhMmNhZWNlN2NkNTE2ZTIxM2IzCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CU1vbiBKdW4gMjYgMTE6MDY6MDAgMjAwNiArMDIwMAoKICAgIE1vcmUgY29kZSBjbGVhbnVwCgpjb21taXQgNjg0NjIzY2U5MmM1ZmQzMmU3ZGIyZDZlMDE2OTQ1YTY3YzVmZmFiYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBKdW4gMjIgMDg6NTE6NDYgMjAwNiAtMDUwMAoKICAgIEZpeCBidWcgaW4gODY0MWhwY24gcmVzZXQgY29tbWFuZCB3aXRoIG5vIGFyZ3MuCgogICAgU2lnbmVkLW9mZi1ieTogSGFpeWluZyBXYW5nIDxoYWl5aW5nLndhbmdAZnJlZXNjYWxlLmNvbT4KICAgIEFja2VkLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDhiZTQyOWE1ZGRiZjBlYmUyZDk0MTc0YmE1OGZjZmM3YTI0Mjg1ZGMKQXV0aG9yOiBaaGFuZyBXZWkgPHdlaS56aGFuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgSnVuIDIwIDE3OjQ3OjE1IDIwMDYgKzA4MDAKCiAgICBSZXdvcmtlZCBJUlEgbWFwcGluZyBpbiBPRi10cmVlLgoKY29tbWl0IDBlNGMyYTE3Y2EzNDAwMWVkMzZkMjU5ZjEzY2I4OGFkYTQ2MTFhOGMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUaHUgSnVuIDE1IDIxOjMzOjM3IDIwMDYgLTA1MDAKCiAgICBEbyBub3QgZW5hYmxlIGFkZHJlc3MgdHJhbnNsYXRpb24gb24gc2Vjb25kYXJ5IENQVXMuCiAgICBEbyBub3Qgc2V0IHVwIEJBVHMgb24gc2Vjb25kYXJ5IENQVXMuICBMZXQgTGludXggZG8gdGhlIG5hc3R5LgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgMzg2ZWRhMDIyNDczMzk0YWQ4ZjM2Yjg2ZjJiZGM5YjRjYjgxNjI5MQpBdXRob3I6IFdvbGZnYW5nIERlbmsgPHdkQHBvbGx1eC5kZW54LmRlPgpEYXRlOglXZWQgSnVuIDE0IDE4OjE0OjU2IDIwMDYgKzAyMDAKCiAgICBDb2RlIGNsZWFudXAKCmNvbW1pdCAxNmM4ZDVlNzZhZTBmNzhmMzlhNjA2MDg1NzRhZGZlMGZlYjljYzcwCkF1dGhvcjogV29sZmdhbmcgRGVuayA8d2RAcG9sbHV4LmRlbnguZGU+CkRhdGU6CVdlZCBKdW4gMTQgMTc6NDU6NTMgMjAwNiArMDIwMAoKICAgIFZhcmlvdXMgVVNCIHJlbGF0ZWQgcGF0Y2hlcwogICAgLSBBZGQgc3VwcG9ydCBmb3IgbXBjOHh4IFVTQiBkZXZpY2UuCiAgICAtIEFkZCBzdXBwb3J0IGZvciBDb21tb24gRGV2aWNlIENsYXNzIC0gQWJzdHJhY3QgQ29udHJvbCBNb2RlbCBVU0IgY29uc29sZS4KICAgIC0gQWRkIHN1cHBvcnQgZm9yIGZsb3cgY29udHJvbCBpbiBVU0Igc2xhdmUgZGV2aWNlcy4KICAgIC0gQWRkIHN1cHBvcnQgZm9yIHN3aXRjaGluZyBiZXR3ZWVuIGdzZXJpYWwgYW5kIGNkY19hY20gdXNpbmcgZW52aXJvbm1lbnQuCiAgICAtIE1pbm9yIGNoYW5nZXMgdG8gdXNiZGNvcmVfb21hcDE1MTAuYyB1c2JkY29yZV9vbWFwMTUxMC5oCiAgICAtIFVwZGF0ZSB1c2Jjb3JlIHNsaWdodGx5IHRvIGVhc2UgaG9zdCBlbnVtZXJhdGlvbi4KICAgIC0gRml4IG5vbi1wb3J0YWJsZSBlbmRpYW4gcHJvYmxlbXMgaW4gdXNiZGNvcmUgYW5kIHVzYmRjb3JlX2VwMC4KICAgIC0gQWRkIEFkZGVyVVNCX2NvbmZpZyBhcyBhIGRlZmNvbmZpZyB0byBlbmFibGUgdXNhZ2Ugb2YgdGhlIFVTQiBjb25zb2xlCiAgICAgIGJ5IGRlZmF1bHQgd2l0aCB0aGUgQWRkZXI4N3ggVS1Cb290IHBvcnQuCiAgICBQYXRjaGVzIGJ5IEJyeWFuIE8nRG9ub2dodWUgPGJvZG9ub2dodWVAY29kZWhlcm1pdC5pZT4sIDI5IE1heSAyMDA2Cgpjb21taXQgOGVjYzk3MTYxOGY1NjAyOWFkOTlkMzUxNmY4YjI5N2E2ZWQ1ODk3MQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdW4gNyAxMDo1Mzo1NSAyMDA2IC0wNTAwCgogICAgRml4IGEgZ2V0X2JvYXJkX3N5c19jbGsoKSB1c2UtYmVmb3JlLWRlZiB3YXJuaW5nLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+Cgpjb21taXQgZDliZjQ4NThmY2E1YWE0ZDY1MWIyODMyNzBmNzdkYTcyZWJhZGZkNQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBKdW4gNyAxMDo1Mjo0OSAyMDA2IC0wNTAwCgogICAgQWxsb3cgRFRDIHBhdGggdG8gYmUgcGFzc2VkIGluLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+Cgpjb21taXQgYzgzYWU5ZWE2ZDkzYWJiZTc1MWJmOGEzMzk2MjM2YTA4NGU1NmY4NwpBdXRob3I6IEhhaXlpbmcgV2FuZyA8aGFpeWluZy53YW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBKdW4gNiAxNjo1NDoyOSAyMDA2IC0wNDAwCgogICAgTW9kaWZ5IHRoZSBJUlEgb2YgRFVBUlQyCgpjb21taXQgYzkzNGY2NTVmOWFlY2E3MGE1YzVmODhiNDY1ZDllOWQ1N2E4ZDIyZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBNYXkgMzEgMTM6NTU6MzUgMjAwNiAtMDUwMAoKICAgIFJldmlldyBjbGVhbnVwcy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IGNiNTk2NWZiOTViNzdhNDlmNGU2YWY5NTI0OGUwYzg0OWY0YWYwM2UKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgTWF5IDMxIDEyOjQ0OjQ0IDIwMDYgLTA1MDAKCiAgICBXaGl0ZSBzcGFjZSBjbGVhbnVwLgogICAgU29tZSA4MC1jb2x1bW4gY2xlYW51cHMuCiAgICBDb252ZXJ0IHByaW50ZigpIHRvIHB1dHMoKSB3aGVyZSBwb3NzaWJsZS4KICAgIFVzZSAjaW5jbHVkZSAic3BkX3NkcmFtLmgiIGFzIG5lZWRlZC4KICAgIEVuaGFuY2VkIHJlc2V0IGNvbW1hbmQgdXNhZ2UgbWVzc2FnZSBhIGJpdC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDNkNWM1YmU1NDc0NDVkZDNiZDJlYjczNjhkODBkZjAzZWE0Mzc5NzAKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgTWF5IDMxIDExOjM5OjM0IDIwMDYgLTA1MDAKCiAgICBSZW1vdmVkIHVubmVlZGVkIGxvY2FsX2J1c19pbml0KCkgZnJvbSA4NjQxSFBDTiBib2FyZC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgoKY29tbWl0IDRkM2Q3MjljMTZjMzkyZDI5ODJkMzI2NmI2NTlkMzMzYzkyNzY5N2QKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglXZWQgTWF5IDMxIDExOjI0OjI4IDIwMDYgLTA1MDAKCiAgICBNb3ZlZCBtcGM4NjQxaHBjbl9ib2FyZF9yZXNldCgpIG91dCBvZiBjcHUvIGludG8gYm9hcmQvLgoKICAgIFNpZ25lZC1vZmYtYnk6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgYjJhOTQxZGUwNjAzNTBhZDE1ODc4ZDgyMTk4MjVmNDk1MGU5YmI4ZQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CVdlZCBNYXkgMzEgMTA6MDc6MjggMjAwNiAtMDUwMAoKICAgIFJlbW92ZSBkZWFkIGRlYnVnIGNvZGUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KCmNvbW1pdCAxMjZhYTcwZjEwYmEzZDIwZTBhNmY0ZDMyMzI4MjUwNTEzYjc3NzcwCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVHVlIE1heSAzMCAxNzo0NzowMCAyMDA2IC0wNTAwCgogICAgTW92ZSBtcGM4Nnh4IFBJWElTIGNvZGUgdG8gYm9hcmQgZGlyZWN0b3J5CgogICAgRmlyc3QgY3V0IGF0IG1vdmluZyB0aGUgUElYSVMgcGxhdGZvcm0gY29kZSBvdXQgb2YKICAgIHRoZSA4Nnh4IGNwdSBkaXJlY3RvcnkgYW5kIGludG8gYm9hcmQvbXBjODY0MWhwY24KICAgIHdoZXJlIGl0IGJlbG9uZ3MuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KCmNvbW1pdCBkZGY4M2EyZmNlZjFhNjcwYzQ1ZmM1ODUxMTlkY2MxZmUwNjJjNGE5CkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIE1heSAzMCAxNjo1NjoxNCAyMDA2ICswMjAwCgogICAgU3VwcG9ydCBnZW5lcmljIE9IQ0kgc3VwcG9ydCBmb3IgdGhlIHMzYzI0eDAgY3B1LgoKY29tbWl0IDM4Y2VlMTJkY2ZjYzI1NzM3MWM5MDFjN2UxM2U1OGVjYWIwYTM1ZDgKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWF5IDMwIDA5OjEwOjMyIDIwMDYgLTA1MDAKCiAgICBJbXByb3ZlICJyZXNldCIgY29tbWFuZCdzIGludGVyYWN0aW9uIHdpdGggd2F0Y2hkb2cuCgoJInJlc2V0IGFsdGJhbmsiIHdpbGwgcmVzZXQgYW5vdGhlciBiYW5rIFdJVEhPVVQgd2F0Y2ggZG9nIHRpbWVyIGVuYWJsZWQKCSJyZXNldCBhbHRiYW5rIHdkIiB3aWxsIHJlc2V0IGFub3RoZXIgYmFuayBXSVRIIHdhdGNoIGRvZyBlbmFibGVkCgkiZGlzd2QiIHdpbGwgZGlzYWJsZSB3YXRjaCBkb2cgYWZ0ZXIgdS1ib290IGJvb3RzIHVwIHN1Y2Nlc3NmdWxseQoKICAgIFNpZ25lZC1vZmYtYnk6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+Cgpjb21taXQgNzAyMDVlNWE2ZGRjODUyOGIxMWRiOWViNGQzZmEwMjA5ZDlmY2UyYQpBdXRob3I6IEhhaXlpbmcgV2FuZyA8SGFpeWluZy5XYW5nQGZyZWVzY2FsZS5jb20+CkRhdGU6CVR1ZSBNYXkgMzAgMDg6NTE6MTkgMjAwNiAtMDUwMAoKICAgIEZpeCB0d28gU0RSQU0gc2V0dXAgYnVncy4KCglGaXggRUNDIHNldHVwIGJ1Zy4KCUVuYWJsZSAxVC8yVCBiYXNlZCBvbiBudW1iZXIgb2YgRElNTXMgcHJlc2VudC4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQxMWZlYzUwMTUzMzRkZWIyMDEwZTM2Y2UwMGJiMTE4Y2M1NDI5YTUKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWF5IDI2IDEwOjI0OjQ4IDIwMDYgLTA1MDAKCiAgICBBZGQgZmlyc3QgZHJhZnQgb2YgdGhlIE1QQzg2NDFIUENOIGRvYy9SRUFETUUuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KCmNvbW1pdCBlZDQ1ZDZjOTMwYjU5Mzk3MThhODdlZTEyZTI1Y2Y5YTA1OTc4ZDRhCkF1dGhvcjogSGFpeWluZyBXYW5nIDxIYWl5aW5nLldhbmdAZnJlZXNjYWxlLmNvbT4KRGF0ZToJRnJpIE1heSAyNiAxMDoxMzowNCAyMDA2IC0wNTAwCgogICAgQWRkZWQgcGNpQDgwMDAgYmxvY2suCiAgICBVcGRhdGVkIGV0aGVybmV0IGludGVycnVwdCBtYXBwaW5ncyAobW92ZWQgdXAgNDgpLgogICAgQ2xlYW5lZCB1cCBhIGZldyBjb21tZW50cy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgoKY29tbWl0IDMwMzNlYmIyMGZkN2MzNzJjN2JjYTNjOTk1NWE0NjkyYmIyMjQwYjcKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglGcmkgTWF5IDI2IDEwOjAxOjE2IDIwMDYgLTA1MDAKCiAgICBBbGxvdyBhcmdzIG9uIHJlc2V0IGNvbW1hbmQuCgogICAgU2lnbmVkLW9mZi1ieTogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KCmNvbW1pdCAzMDFmMWFhMzg0ZDBlZGNhZTZhMjJmZDlhZGI5MzNhZDcxNjk1ZWNjCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJVHVlIE1heSAyMyAxMzozODozNSAyMDA2ICswMjAwCgogICAgQ2hhbmdlZCB0aGUgbXAydXNiIChhdDkxcm05MjAwKSBib2FyZCB0byB1c2UgdGhlIGdlbmVyaWMgT0hDSSBkcml2ZXIuIFNvbWUKICAgIGZpeGVzIHRvIHRoZSBsYXR0ZXIuCgpjb21taXQgMjRlMzc2NDVlNzM3OGIyMGZhOGYyMGUyOTk2YzhmYjhlOTBjNzBjOQpBdXRob3I6IE1hcmt1cyBLbG90emJ1ZWNoZXIgPG1rQGRlbnguZGU+CkRhdGU6CVR1ZSBNYXkgMjMgMTA6MzM6MTEgMjAwNiArMDIwMAoKICAgIE1vcmUgY2xlYW51cCBmb3IgdGhlIGRlbHRhIGJvYXJkIGFuZCB0aGUgZ2VuZXJpYyB1c2Jfb2hjaSBkcml2ZXIuIEFkZGVkCiAgICBDRkdfVVNCX0JPQVJEX0lOSVQgYW5kIENGR19VU0JfQ1BVX0lOSVQgZm9yIGVuYWJsaW5nIGJvYXJkIGFuZCBjcHUgc3BlY2lmaWMKICAgIGluaXRpYWxpemF0aW9uIGFuZCBjbGVhbnVwIGhvb2tzIHJlc3BlY3RpdmVseS4KCmNvbW1pdCAzZTMyNmVjZTllYmE4MTg0ZjVkNDhhYTRmYjg3NzYwYThmNmYwZjEwCkF1dGhvcjogTWFya3VzIEtsb3R6YnVlY2hlciA8bWtAZGVueC5kZT4KRGF0ZToJTW9uIE1heSAyMiAxNjozMzo1NCAyMDA2ICswMjAwCgogICAgVGhpcyBwYXRjaCBhZGRzIFVTQiBzdG9yYWdlIHN1cHBvcnQgZm9yIHRoZSBkZWx0YSBib2FyZC4gVGhpcyBpcyB0aGUgZmlyc3QKICAgIGJvYXJkIHRvIG1ha2UgdXNlIG9mIGEgZ2VuZXJpYyBPSENJIGRyaXZlciwgdGhhdCBjYWxscyBob29rcyBmb3IgYm9hcmQKICAgIGRlcGVuZGFudCBpbml0aWFsaXphdGlvbi4KCmNvbW1pdCAxNGUzNzA4MWZmM2NhYzdlYmU2ZTkzODM2NTIzNDI5ODUzYjZiMjkyCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJRnJpIE1heSAxOSAxMzoyODozOSAyMDA2IC0wNTAwCgogICAgQ2hhbmdlIGFyYml0cmF0aW9uIHRvIHJvdW5kLXJvYmluIGZvciBTTVAgbGludXguCgpjb21taXQgOWE2NTU4NzZlNTk5NWJlODBmNDkwNTRlMjUwOTUwMGU4NzFlNGQzYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGpkbC5jb20+CkRhdGU6CUZyaSBNYXkgMTkgMTM6MjY6MzQgMjAwNiAtMDUwMAoKICAgIEVuYWJsZSBkdWFsIEREUiBjb250cm9sbGVycyBhbmQgaW50ZXJsZWF2aW5nLgoKY29tbWl0IDU4NmQxZDVhYmQzZTUyNWYxZTFkOWI4MWU1YTYxYTRkYTZiMmZhM2MKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBqZGwuY29tPgpEYXRlOglGcmkgTWF5IDE5IDEzOjIyOjQ0IDIwMDYgLTA1MDAKCiAgICBVcGRhdGUgODZ4eCBhZGRyZXNzIG1hcCBhbmQgTEFXQkFScy4KCmNvbW1pdCBjY2NjZTVkMDU4MWJiMGJhNDYwMjc5OWE0YjUxMTJlNThkMTU3OWNiCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJRnJpIE1heSAxOSAxMzoxNDoxNSAyMDA2IC0wNTAwCgogICAgUmVtb3ZlIEwyIENhY2hlIGludmFsaWRhdGUgcG9sbGluZy4KCmNvbW1pdCBmMzVlYzY4ZmIwNjZjZWMwZTM2Mjk0YmZlMDdkZWMyZDRlOGFkM2E4CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAamRsLmNvbT4KRGF0ZToJRnJpIE1heSAxOSAxMjozMzowOSAyMDA2IC0wNTAwCgogICAgRW5hYmxlIDJuZCBDUFUgYW5kIEkyQy4KCmNvbW1pdCBiZjY5MGRjYjUxMmQzNGM0ZmNlZWMwZWIxZTVjMGU4OGE5ZGI1ZDU0CkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJTW9uIE1heSAxNSAwNzoyNjo1NiAyMDA2IC0wNTAwCgogICAgVXBkYXRlIGludGVycnVwdCBtYXBwaW5nLgoKY29tbWl0IDZjZmVhMzM0NzdiMDRiNjNlZDQ3Mzg2ZWQxNjI5NTI5NDg0YzMzYmEKQXV0aG9yOiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWF5IDEwIDA5OjM4OjA2IDIwMDYgLTA1MDAKCiAgICBSZW1vdmUgdW5uZWVkZWQgSU5JVF9SQU1fTE9DSyBjYWNoZSB0d2lkZGxpbmcuCiAgICBDb3JyZWN0bHkgdHJhY2tzIHIyOSBhcyBnbG9iYWwgZGF0YSBwb2ludGVyIG5vdy4KCiAgICBTaWduZWQtb2ZmLWJ5OiBIYWl5aW5nIFdhbmcgPEhhaXlpbmcuV2FuZ0BmcmVlc2NhbGUuY29tPgoKY29tbWl0IGQ0ZGQzMTdiNThjMTI2YTJhN2U3M2Y0NzY0ZWNjMWE3Yzk3Zjg3NmMKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgTWF5IDEwIDA5OjMzOjA3IDIwMDYgLTA1MDAKCiAgICBSZW1vdmUgdW5uZWNlc3NhcnkgZmxhc2guYyBmaWxlLgoKY29tbWl0IDE4YjZjOGNkOGFmNmNjN2YzNTE4MGNlZGM0YWRiMzIzNmNjMWExYjgKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglUdWUgTWF5IDkgMDg6MjM6NDkgMjAwNiAtMDUwMAoKICAgIEdldCBNUEM4NjQxSFBDTiBmbGFzaCBpbWFnZXMgd29ya2luZy4KCglFbmFibGUgdGhlIENGSSBkcml2ZXIuCglSZW1vdmUgYm9ndXMgTEFXQkFSNyBjcnVmdC4KCVVzZSBjb3JyZWN0IFRFWFRfQkFTRSwgRml4dXAgbG9hZCBzY3JpcHQuCglFbmFibGUgU1BEIEVFUFJPTSBkdXJpbmcgRERSIHNldHVwLgoJVXNlIGdlbmVyaWMgUkZDIDE5MTggSVAgYWRkcmVzc2VzIGJ5IGRlZmF1bHQuCgpjb21taXQgNWM5ZWZiMzZhNmI1NDMxNDIzZjUyODg4YTBlM2I0YjUxNWZlN2VjYQpBdXRob3I6IEpvbiBMb2VsaWdlciA8amRsQGZyZWVzY2FsZS5jb20+CkRhdGU6CVRodSBBcHIgMjcgMTA6MTU6MTYgMjAwNiAtMDUwMAoKICAgIENsZWFudXAgd2hpdGVzcGFjZXMgYW5kIHN0eWxlIGlzc3Vlcy4KICAgIFJlbW92ZWQgLy8tc3R5bGUgY29tbWVudHMuCiAgICBVc2UgODAtY29sdW1uIGxpbmVzLgogICAgUmVtb3ZlIHRyYWlsaW5nIHdoaXRlc3BhY2UuCiAgICBSZW1vdmUgZGVhZCBjb2RlIGFuZCBkZWJ1ZyBjcnVmdC4KCmNvbW1pdCBhMjMyMGE2YmY4MTEzYTA5NTQ0YzQyZDE2MGQxMGFjNjlkMDQ5YTAzCkF1dGhvcjogSm9uIExvZWxpZ2VyIDxqZGxAZnJlZXNjYWxlLmNvbT4KRGF0ZToJVGh1IEFwciAyNyAwODoyMjozOSAyMDA2IC0wNTAwCgogICAgUmV2ZXJ0IGJhZCBQQ0kgcHJlZmV0Y2ggbGltaXQgY2hhbmdlLgoKY29tbWl0IGRlYmI3MzU0ZDFlYTRmNjk0MTU0ODE4ZGY1ZTViNTIzZjVjMWNjMWQKQXV0aG9yOiBKb24gTG9lbGlnZXIgPGpkbEBmcmVlc2NhbGUuY29tPgpEYXRlOglXZWQgQXByIDI2IDE3OjU4OjU2IDIwMDYgLTA1MDAKCiAgICBJbml0aWFsIHN1cHBvcnQgZm9yIE1QQzg2NDEgSFBDTiBib2FyZC4K