VGhpcyBmaWxlIGNvbnRhaW5zIGEgbGlzdCBvZiBwZW9wbGUgd2hvIGFyZSByZXNwb25zaWJsZSBmb3IgY2VydGFpbiBwYXJ0cyBvZgp0aGUgSEFQcm94eSBwcm9qZWN0IGFuZCB3aG8gaGF2ZSBhdXRob3JpdHkgb24gdGhlbS4gVGhpcyBtZWFucyB0aGF0IHRoZXNlCnBlb3BsZSBoYXZlIHRvIGJlIGNvbnN1bHRlZCBiZWZvcmUgZG9pbmcgYW55IGNoYW5nZSBpbiB0aGUgcGFydHMgdGhleSBtYWludGFpbiwKaW5jbHVkaW5nIHdoZW4gZml4aW5nIGJ1Z3MuIFRoZXNlIHBlcnNvbnMgYXJlIGFsbG93ZWQgdG8gcmVqZWN0IGFueSBjaGFuZ2Ugb24KdGhlIHBhcnRzIHRoZXkgbWFpbnRhaW4sIGFuZCBpbiBwYXJhbGxlbCB0aGV5IHRyeSB0aGVpciBiZXN0IHRvIGVuc3VyZSB0aGVzZQpwYXJ0cyB3b3JrIHdlbGwuIFNpbWlsYXJseSwgYW55IGNoYW5nZSB0byB0aGVzZSBwYXJ0cyBub3QgYmVpbmcgdmFsaWRhdGVkIGJ5CnRoZW0gd2lsbCBiZSByZWplY3RlZC4KClRoZSBiZXN0IHdheSB0byBkZWFsIHdpdGggc3VjaCBzdWJzeXN0ZW1zIHdoZW4gc2VuZGluZyBwYXRjaGVzIGlzIHRvIHNlbmQgdGhlCnBhdGNoZXMgdG8gdGhlIG1haWxpbmcgbGlzdCBhbmQgdG8gQ0MgdGhlc2UgcGVvcGxlLiBXaGVuIG5vIG1haW50YWluZXIgaXMKbGlzdGVkIGZvciBhIHN1YnN5c3RlbSwgeW91IGNhbiBzaW1wbHkgc2VuZCB5b3VyIGNoYW5nZXMgdGhlIHVzdWFsIHdheSwgYW5kIGl0CmlzIGFsc28gYSBzaWduIHRoYXQgaWYgeW91IHdhbnQgdG8gc3RyZW5ndGhlbiB5b3VyIHNraWxscyBvbiBjZXJ0YWluIHBhcnRzIHlvdQpjYW4gYmVjb21lIHlvdXJzZWxmIGEgbWFpbnRhaW5lciBvZiB0aGUgcGFydHMgeW91IGNhcmUgYSBsb3QgYWJvdXQuCgpQbGVhc2UgZG8gbm90IGFzayB0aGVtIHRvIHRyb3VibGVzaG9vdCB5b3VyIGJ1Z3MsIGl0J3Mgbm90IHRoZWlyIGpvYiBldmVudGhvdWdoCnRoZXkgbWF5IG9jY2FzaW9uYWxseSBoZWxwIGFzIHRpbWUgcGVybWl0cy4KCkxpc3Qgb2YgbWFpbnRhaW5lcnMKLS0tLS0tLS0tLS0tLS0tLS0tLQoKNTFEZWdyZWVzIGRldmljZSBpZGVudGlmaWNhdGlvbgpNYWludGFpbmVyOiBCZW4gU2hpbGxpdG8gPGJlbkA1MWRlZ3JlZXMuY29tPgpGaWxlczogYWRkb25zLzUxZGVncmVlcywgZG9jLzUxRGVncmVlcy1kZXZpY2UtZGV0ZWN0aW9uLnR4dAoKQ2FjaGUKTWFpbnRhaW5lcjogV2lsbGlhbSBMYWxsZW1hbmQgPHdsYWxsZW1hbmRAaGFwcm94eS5jb20+CkZpbGVzOiBzcmMvY2FjaGUuYywgaW5jbHVkZS9oYXByb3h5L2NhY2hlKi5oCgpEZXZpY2VBdGxhcyBkZXZpY2UgaWRlbnRpZmljYXRpb24KTWFpbnRhaW5lcjogRGF2aWQgQ2FybGllciA8ZGNhcmxpZXJAZGV2aWNlYXRsYXMuY29tPgpGaWxlczogYWRkb25zL2RldmljZWF0bGFzLCBkb2MvRGV2aWNlQXRsYXMtZGV2aWNlLWRldGVjdGlvbi50eHQKCkROUyBhbmQgUmVzb2x2ZXJzCk1haW50YWluZXI6IEVtZXJpYyBCcnVuIDxlYnJ1bkBoYXByb3h5LmNvbT4KTWFpbnRhaW5lcjogQmFwdGlzdGUgQXNzbWFubiA8YmVkaXM5QGdtYWlsLmNvbT4KRmlsZXM6IHNyYy9kbnMuYywgaW5jbHVkZS9oYXByb3h5L2RucyouaApGaWxlczogc3JjL3Jlc29sdmVycy5jLCBpbmNsdWRlL2hhcHJveHkvcmVzb2x2ZXJzKi5oCgpEb2MgdG8gSFRNTCBjb252ZXJ0ZXIgKGRjb252KQpNYWludGFpbmVyOiBDeXJpbCBCb2506SA8Y3lyaWwuYm9udGVAZnJlZS5mcj4KRmlsZXM6IGRvYy8qLnR4dApOb3RlOiBhc2sgQ3lyaWwgYmVmb3JlIGNoYW5naW5nIGFueSBkb2MncyBmb3JtYXQgb3Igc3RydWN0dXJlLgoKRUJUcmVlCk1haW50YWluZXI6IFdpbGx5IFRhcnJlYXUgPHdAMXd0LmV1PgpGaWxlczogc3JjL2ViKi5jLCBpbmNsdWRlL2ltcG9ydC9lYiouaAoKRkNHSToKTWFpbnRhaW5lcjogQ2hyaXN0b3BoZXIgRmF1bGV0IDxjZmF1bGV0QGhhcHJveHkuY29tPgpGaWxlczogc3JjL211eF9mY2dpLmMsIHNyYy9mY2dpKi5jLCBpbmNsdWRlL2hhcHJveHkvZmNnaSouaAoKRmlsdGVyczoKTWFpbnRhaW5lcjogQ2hyaXN0b3BoZXIgRmF1bGV0IDxjZmF1bGV0QGhhcHJveHkuY29tPgpGaWxlczogc3JjL2ZpbHRlcnMuYywgc3JjL2ZsdF8qLmMsIGluY2x1ZGUvaGFwcm94eS9maWx0ZXJzKi5oCkZpbGVzOiBkb2MvaW50ZXJuYWxzL2ZpbHRlcnMudHh0CgpIMSBhbmQgSFRYCk1haW50YWluZXI6IENocmlzdG9waGVyIEZhdWxldCA8Y2ZhdWxldEBoYXByb3h5LmNvbT4KRmlsZXM6IHNyYy9tdXhfaDEuYyBzcmMvaDFfaHR4LmMsIGluY2x1ZGUvaGFwcm94eS9oMV9odHguaAoKSDIgYW5kIEhQQUNLCk1haW50YWluZXI6IFdpbGx5IFRhcnJlYXUgPHdAMXd0LmV1PgpGaWxlczogc3JjL211eF9oMi5jIHNyYy9oMi5jIHNyYy9ocGFjayouYwpGaWxlczogaW5jbHVkZS9oYXByb3h5L2gyLmgsIGluY2x1ZGUvaGFwcm94eS9ocGFjayouaAoKSGVhbHRoIGNoZWNrcwpNYWludGFpbmVyOiBDaHJpc3RvcGhlciBGYXVsZXQgPGNmYXVsZXRAaGFwcm94eS5jb20+CkZpbGVzOiBzcmMvY2hlY2tzLmMsIGluY2x1ZGUvaGFwcm94eS9jaGVjayouaApGaWxlczogc3JjL3RjcGNoZWNrLmMsIGluY2x1ZGUvaGFwcm94eS90Y3BjaGVjayouaApOb3RlOiBoZWFsdGggY2hlY2tzIGFyZSBmcmFnaWxlIGFuZCBoYXZlIGJlZW4gYnJva2VuIG1hbnkgdGltZXMsIHNvIHBsZWFzZQogICAgICBjb25zdWx0IHRoZSByZWxldmFudCBtYWludGFpbmVycyBpZiB5b3Ugd2FudCB0byBjaGFuZ2UgdGhlc2Ugc3BlY2lmaWMKICAgICAgcGFydHMuCgpIVFRQCk1haW50YWluZXI6IFdpbGx5IFRhcnJlYXUgPHdAMXd0LmV1PgpNYWludGFpbmVyOiBDaHJpc3RvcGhlciBGYXVsZXQgPGNmYXVsZXRAaGFwcm94eS5jb20+CkZpbGVzOiBzcmMvaHR0cCouaCwgaW5jbHVkZS9oYXByb3h5L2h0dHAqLmgKCkhUWApNYWludGFpbmVyOiBDaHJpc3RvcGhlciBGYXVsZXQgPGNmYXVsZXRAaGFwcm94eS5jb20+CkZpbGVzOiBzcmMvaHR4LmMsIGluY2x1ZGUvaGFwcm94eS9odHgqLmMsIGRvYy9pbnRlcm5hbHMvaHR4LWFwaS50eHQKCkx1YQpNYWludGFpbmVyOiBUaGllcnJ5IEZvdXJuaWVyIDx0Zm91cm5pZXJAYXJwYWxlcnQub3JnPgpGaWxlczogc3JjL2hsdWEuYywgaW5jbHVkZS9oYXByb3h5L2hsdWEqLmgKCk1haWxlcnMKTWFpbnRhaW5lcjogU2ltb24gSG9ybWFuIDxob3Jtc0B2ZXJnZS5uZXQuYXU+CkZpbGVzOiBzcmMvbWFpbGVycy5jLCBpbmNsdWRlL2hhcHJveHkvbWFpbGVycyouaAoKTWFwcyBhbmQgcGF0dGVybiBtYXRjaGluZwpNYWludGFpbmVyOiBUaGllcnJ5IEZvdXJuaWVyIDx0Zm91cm5pZXJAYXJwYWxlcnQub3JnPgpGaWxlczogc3JjL21hcC5jLCBpbmNsdWRlL2hhcHJveHkvbWFwKi5oCkZpbGVzOiBzcmMvcGF0dGVybi5jLCBpbmNsdWRlL2hhcHJveHkvcGF0dGVybiouaAoKTWFzdGVyLXdvcmtlcgpNYWludGFpbmVyOiBXaWxsaWFtIExhbGxlbWFuZCA8d2xhbGxlbWFuZEBoYXByb3h5LmNvbT4KTm90ZTogUGxlYXNlIENDIFdpbGxpYW0gd2hlbiB0b3VjaGluZyBzcmMvaGFwcm94eS5jIGFuZCBhZG1pbi9zeXN0ZW1kCgpNdWx0aS10aHJlYWRpbmcKTWFpbnRhaW5lcjogQ2hyaXN0b3BoZXIgRmF1bGV0IDxjZmF1bGV0QGhhcHJveHkuY29tPgpNYWludGFpbmVyOiBFbWVyaWMgQnJ1biA8ZWJydW5AaGFwcm94eS5jb20+CkZpbGVzOiBzcmMvdGhyZWFkLmMsIGluY2x1ZGUvaGFwcm94eS90aHJlYWQqLmgKTm90ZTogZXZlcnkgY2hhbmdlIGFyb3VuZCB0aGUgbG9ja2luZyBvciBzeW5jaHJvbml6YXRpb24gcG9pbnQgd2lsbCByZXF1aXJlCiAgICAgIGFwcHJvdmFsIGZyb20gb25lIG9mIHRoZXNlIG1haW50YWluZXJzLiBQcm9ibGVtcyB3aGljaCBvbmx5IGFwcGVhciB3aGVuCiAgICAgIG5idGhyZWFkIGlzIGdyZWF0ZXIgdGhhbiAxIGFuZCB3aGljaCBkaXNhcHBlYXIgb3RoZXJ3aXNlIGFyZSBhbHNvCiAgICAgIHJlbGV2YW50LgoKTXVsdGktdGhyZWFkZWQgdGFzayBzY2hlZHVsZXIKTWFpbnRhaW5lcjogV2lsbHkgVGFycmVhdSA8d0Axd3QuZXU+Ck1haW50YWluZXI6IE9saXZpZXIgSG91Y2hhcmQgPGNvZ25ldEBjaTAub3JnPgpGaWxlczogaW5jbHVkZS9oYXByb3h5L3Rhc2sqLmggc3JjL3Rhc2suYwoKUGVlcnMKTWFpbnRhaW5lcjogRW1lcmljIEJydW4gPGVicnVuQGhhcHJveHkuY29tPgpGculk6XJpYyBM6WNhaWxsZSA8ZmxlY2FpbGxlQGhhcHJveHkuY29tPgpGaWxlczogc3JjL3BlZXJzLmMsIGluY2x1ZGUvaGFwcm94eS9wZWVycyouaAoKUHJvbWV0aGV1cyBFeHBvcnRlcgpNYWludGFpbmVyOiBDaHJpc3RvcGhlciBGYXVsZXQgPGNmYXVsZXRAaGFwcm94eS5jb20+Ck1haW50YWluZXI6IFdpbGxpYW0gRGF1Y2h5IDx3ZGF1Y2h5QGdtYWlsLmNvbT4KRmlsZXM6IGFkZG9ucy9wcm9tZXgKTm90ZTogV2lsbGlhbSBpcyB0aGUgcmVmZXJlbnQgcmVnYXJkaW5nIFByb21ldGhldXMuIEhlIHNob3VsZCBiZSBjb25zdWx0ZWQgZm9yCiAgICAgIGFsbCBhZGRpdGlvbnMgYW5kIG1vZGlmaWNhdGlvbnMgb2YgZmVhdHVyZXMuIENocmlzdG9waGVyIGlzIHRoZSByZWZlcmVudAogICAgICBmb3IgdGhlIGNvZGUgaXRzZWxmLiBIZSBzaG91bGQgYmUgY29uc3VsdGVkIGZvciBxdWVzdGlvbnMgcmVnYXJkaW5nIHRoZQogICAgICBleHBvcnRlciBpbnRlZ3JhdGlvbiBpbnRvIEhBUHJveHksIGFzIHdlbGwgYXMgZm9yIHRoZSBidWdzLgoKU2NpZW50aWFNb2JpbGUgV1VSRkwgRGV2aWNlIERldGVjdGlvbgpNYWludGFpbmVyOiBQYXVsIEJvcmlsZSwgTWFzc2ltaWxpYW5vIEJlbGxvbWkgPHd1cmZsLWhhcHJveHktc3VwcG9ydEBzY2llbnRpYW1vYmlsZS5jb20+CkZpbGVzOiBhZGRvbnMvd3VyZmwsIGRvYy9XVVJGTC1kZXZpY2UtZGV0ZWN0aW9uLnR4dAoKU1BPRQpNYWludGFpbmVyOiBDaHJpc3RvcGhlciBGYXVsZXQgPGNmYXVsZXRAaGFwcm94eS5jb20+CkZpbGVzOiBzcmMvZmx0X3Nwb2UuYywgaW5jbHVkZS9oYXByb3h5L3Nwb2UqLmgsIGRvYy9TUE9FLnR4dAoKU1NMCk1haW50YWluZXI6IEVtZXJpYyBCcnVuIDxlYnJ1bkBoYXByb3h5LmNvbT4KTWFpbnRhaW5lcjogV2lsbGlhbSBMYWxsZW1hbmQgPHdsYWxsZW1hbmRAaGFwcm94eS5jb20+CkZpbGVzOiBzcmMvY2ZncGFyc2Utc3NsLmMsIHNyYy9zc2xfKi5jLCBpbmNsdWRlL2hhcHJveHkvc3NsXyouaAoKVGhyZWFkLXNhZmUgbGlzdHMKTWFpbnRhaW5lcjogT2xpdmllciBIb3VjaGFyZCA8Y29nbmV0QGNpMC5vcmc+CkZpbGVzOiBpbmNsdWRlL2hhcHJveHkvbGlzdCouaAo=