ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZHZiL1JFQURNRS5kaWJ1c2IgYi9Eb2N1bWVudGF0aW9uL2R2Yi9SRUFETUUuZGlidXNiCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhOWU5NTgKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2N1bWVudGF0aW9uL2R2Yi9SRUFETUUuZGlidXNiCkBAIC0wLDAgKzEsMjg1IEBACitEb2N1bWVudGF0aW9uIGZvciBkaWIzMDAwKiBmcm9udGVuZCBkcml2ZXJzIGFuZCBkaWJ1c2IgZGV2aWNlIGRyaXZlcgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworQ29weXJpZ2h0IChDKSAyMDA0LTUgUGF0cmljayBCb2V0dGNoZXIgKHBhdHJpY2suYm9ldHRjaGVyQGRlc3kuZGUpLAorCitkaWJ1c2IgYW5kIGRpYjMwMDBtYi9tYyBkcml2ZXJzIGJhc2VkIG9uIEdQTCBjb2RlLCB3aGljaCBoYXMKKworQ29weXJpZ2h0IChDKSAyMDA0IEFtYXVyeSBEZW1vbCBmb3IgRGlCY29tIChhZGVtb2xAZGliY29tLmZyKQorCitUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCittb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHZlcnNpb24gMi4KKworCitTdXBwb3J0ZWQgZGV2aWNlcyBVU0IxLjEKKz09PT09PT09PT09PT09PT09PT09PT09PQorCitQcm9kdWNlZCBhbmQgcmVzZWxsZWQgYnkgVHdpbmhhbjoKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLSBUd2luaGFuRFRWIFVTQi1UZXIgRFZCLVQgRGV2aWNlIChWUDcwNDEpCisJaHR0cDovL3d3dy50d2luaGFuLmNvbS9wcm9kdWN0X3RlcnJlc3RyaWFsXzMuYXNwCisKKy0gVHdpbmhhbkRUViBNYWdpYyBCb3ggKFZQNzA0MWUpCisJaHR0cDovL3d3dy50d2luaGFuLmNvbS9wcm9kdWN0X3RlcnJlc3RyaWFsXzQuYXNwCisKKy0gSEFNQSBEVkItVCBVU0IgZGV2aWNlCisJaHR0cDovL3d3dy5oYW1hLmRlL3BvcnRhbC9hcnRpY2xlSWQqMTEwNjIwL2FjdGlvbioyNTk4CisKKy0gQ1RTIFBvcnRhYmxlIChDaGluZXNlIFRlbGV2aXNpb24gU3lzdGVtKSAoMikKKwlodHRwOi8vd3d3LjJjdHMudHYvY3RzcG9ydGFibGUvCisKKy0gVW5rbm93biBVU0IgRFZCLVQgZGV2aWNlIHdpdGggdmVuZG9yIElEIEh5cGVyLVBhbHRlaworCisKK1Byb2R1Y2VkIGFuZCByZXNlbGxlZCBieSBLV29ybGQ6CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLSBLV29ybGQgVi1TdHJlYW0gWFBFUlQgRFRWIERWQi1UIFVTQgorCWh0dHA6Ly93d3cua3dvcmxkLmNvbS50dy9lbi9wcm9kdWN0L0RWQlQtVVNCL0RWQlQtVVNCLmh0bWwKKworLSBKZXRXYXkgRFRWIERWQi1UIFVTQgorCWh0dHA6Ly93d3cuamV0d2F5LmNvbS50dy9ldmlzbi9wcm9kdWN0L2xjZC10di9EVlQtVVNCL2R0di11c2IuaHRtCisKKy0gQURTVGVjaCBJbnN0YW50IFRWIERWQi1UIFVTQgorCWh0dHA6Ly93d3cuYWRzdGVjaC5jb20vcHJvZHVjdHMvUFRWLTMzMy9pbnRyby9QVFYtMzMzX2ludHJvLmFzcD9waWQ9UFRWLTMzMworCisKK090aGVyczoKKy0tLS0tLS0KKy0gVWx0aW1hIEVsZWN0cm9uaWMvQXJ0ZWMgVDEgVVNCIFRWQk9YIChBTjIxMzUsIEFOMjIzNSwgQU4yMjM1IHdpdGggUGFuYXNvbmljIFR1bmVyKQorCWh0dHA6Ly84Mi4xNjEuMjQ2LjI0OS9wcm9kdWN0cy10dmJveC5odG1sCisKKy0gQ29tcHJvIFZpZGVvbWF0ZSBEVkItVTIwMDAgLSBEVkItVCBVU0IgKDIpCisJaHR0cDovL3d3dy5jb21wcm91c2EuY29tL3Byb2R1Y3RzL3ZtdTIwMDAuaHRtCisKKy0gR3JhbmR0ZWMgVVNCIERWQi1UCisJaHR0cDovL3d3dy5ncmFuZC5jb20udHcvCisKKy0gQXZlcm1lZGlhIEF2ZXJUViBEVkJUIFVTQiAoMikKKwlodHRwOi8vd3d3LmF2ZXJtZWRpYS5jb20vCisKKy0gRGlCY29tIFVTQiBEVkItVCByZWZlcmVuY2UgZGV2aWNlIChub24tcHVibGljKQorCisKK1N1cHBvcnRlZCBkZXZpY2VzIFVTQjIuMAorPT09PT09PT09PT09PT09PT09PT09PT09CistIFR3aW5oYW4gTWFnaWNCb3ggSUkgKDIpCisJaHR0cDovL3d3dy50d2luaGFuLmNvbS9wcm9kdWN0X3RlcnJlc3RyaWFsXzcuYXNwCisKKy0gSGFuZnRlayBVTVQtMDEwICgxKQorCWh0dHA6Ly93d3cuZ2xvYmFsc291cmNlcy5jb20vc2kvNjAwODgxOTc1NzA4Mi9Qcm9kdWN0RGV0YWlsL0RpZ2l0YWwtVFYvcHJvZHVjdF9pZC0xMDAwNDY1MjkKKworLSBUeXBob29uL1lha3Vtby9IQU1BIERWQi1UIG1vYmlsZSBVU0IyLjAgKDEpCisJaHR0cDovL3d3dy55YWt1bW8uZGUvcHJvZHVrdGUvaW5kZXgucGhwP3BpZD0xJmFnPURWQi1UCisKKy0gQXJ0ZWMgVDEgVVNCIFRWQk9YIChGWDIpICgyKQorCistIEhhdXBwYXVnZSBXaW5UViBOT1ZBLVQgVVNCMgorCWh0dHA6Ly93d3cuaGF1cHBhdWdlLmNvbS8KKworLSBLV29ybGQvQURTVGVjaCBJbnN0YW50IERWQi1UIFVTQjIuMCAoRGlCMzAwME0tQikKKworLSBEaUJjb20gVVNCMi4wIERWQi1UIHJlZmVyZW5jZSBkZXZpY2UgKG5vbi1wdWJsaWMpCisKKzEpIEl0IGlzIHdvcmtpbmcgYWxtb3N0LgorMikgTm8gdGVzdCByZXBvcnRzIHJlY2VpdmVkIHlldC4KKworCiswLiBORVdTOgorICAyMDA1LTAyLTExIC0gYWRkZWQgc3VwcG9ydCBmb3IgdGhlIEtXb3JsZC9BRFNUZWNoIEluc3RhbnQgRFZCLVQgVVNCMi4wLiBUaGFua3MgYSBsb3QgdG8gSm9hY2hpbSB2b24gQ2Fyb24KKyAgMjAwNS0wMi0wMiAtIGFkZGVkIHN1cHBvcnQgZm9yIHRoZSBIYXVwcGF1Z2UgV2luLVRWIE5vdmEtVCBVU0IyCisgIDIwMDUtMDEtMzEgLSBkaXN0b3J0ZWQgc3RyZWFtaW5nIGlzIGZpbmFsbHkgZ29uZSBmb3IgVVNCMS4xIGRldmljZXMKKyAgMjAwNS0wMS0xMyAtIG1vdmVkIHRoZSBtaXJyb3JlZCBwaWRfZmlsdGVyX3RhYmxlIGJhY2sgdG8gZHZiLWRpYnVzYgorICAgICAgICAgICAgIC0gZmlyc3QgYWxtb3N0IHdvcmtpbmcgdmVyc2lvbiBmb3IgSGFuZlRlayBVTVQtMDEwCisgICAgICAgICAgICAgLSBmb3VuZCBvdXQsIHRoYXQgWWFrdW1vL0hBTUEvVHlwaG9vbiBhcmUgcHJlZGVzc29ycyBvZiB0aGUgSGFuZlRlayBVTVQtMDEwCisgIDIwMDUtMDEtMTAgLSByZWZhY3RvcmluZyBjb21wbGV0ZWQsIG5vdyBldmVyeXRoaW5nIGlzIHZlcnkgZGVsaWdodGZ1bAorICAgICAgICAgICAgIC0gdHVuZXIgcXVpcmtzIGZvciBzb21lIHdlaXJkIGRldmljZXMgKEFydGVjIFQxIEFOMjIzNSBkZXZpY2UgaGFzIHNvbWV0aW1lcyBhCisgICAgICAgICAgICAgICBQYW5hc29uaWMgVHVuZXIgYXNzZW1ibGVkKS4gVHVuZXJwcm9iaW5nIGltcGxlbWVudGVkLiBUaGFua3MgYSBsb3QgdG8gR3VubmFyIFdpdHRpY2guCisgIDIwMDQtMTItMjkgLSBhZnRlciBzZXZlcmFsIGRheXMgb2Ygc3RydWdnbGluZyBhcm91bmQgYnVnIG9mIG5vIHJldHVybmluZyBVUkJzIGZpeGVkLgorICAyMDA0LTEyLTI2IC0gcmVmYWN0b3JlZCB0aGUgZGlidXNiLWRyaXZlciwgc3BsaXR0ZWQgaW50byBzZXBhcmF0ZSBmaWxlcworICAgICAgICAgICAgIC0gaTJjLXByb2JpbmcgZW5hYmxlZAorICAyMDA0LTEyLTA2IC0gcG9zc2liaWxpdHkgZm9yIGRlbW9kIGkyYy1hZGRyZXNzIHByb2JpbmcKKyAgICAgICAgICAgICAtIG5ldyB1c2IgSURzIChDb21wcm8sQXJ0ZWMpCisgIDIwMDQtMTEtMjMgLSBtZXJnZWQgY2hhbmdlcyBmcm9tIERpQjMwMDBNQ192ZXIyLjEKKyAgICAgICAgICAgICAtIHJldmlzZWQgdGhlIGRlYnVnZ2luZworICAgICAgICAgICAgIC0gcG9zc2liaWxpdHkgdG8gZGVsaXZlciB0aGUgY29tcGxldGUgVFMgZm9yIFVTQjIuMAorICAyMDA0LTExLTIxIC0gZmlyc3Qgd29ya2luZyB2ZXJzaW9uIG9mIHRoZSBkaWIzMDAwbWMvcCBmcm9udGVuZCBkcml2ZXIuCisgIDIwMDQtMTEtMTIgLSBhZGRlZCBhZGRpdGlvbmFsIHJlbW90ZSBjb250cm9sIGtleXMuIFRoYW5rcyB0byBVd2UgSGFua2UuCisgIDIwMDQtMTEtMDcgLSBhZGRlZCByZW1vdGUgY29udHJvbCBzdXBwb3J0LiBUaGFua3MgdG8gRGF2aWQgTWF0dGhld3MuCisgIDIwMDQtMTEtMDUgLSBhZGRlZCBzdXBwb3J0IGZvciBhIG5ldyBkZXZpY2VzIChHcmFuZHRlYy9BdmVybWVkaWEvQXJ0ZWMpCisgICAgICAgICAgICAgLSBtZXJnZWQgbXkgY2hhbmdlcyAoZm9yIGRpYjMwMDBtYi9kaWJ1c2IpIHRvIHRoZSBGRV9SRUZBQ1RPUklORywgYmVjYXVzZSBpdCBiZWNhbWUgSEVBRAorICAgICAgICAgICAgIC0gbW92ZWQgdHJhbnNmZXIgY29udHJvbCAocGlkIGZpbHRlciwgZmlmbyBjb250cm9sKSBmcm9tIHVzYiBkcml2ZXIgdG8gZnJvbnRlbmQsIGl0IHNlZW1zCisgICAgICAgICAgICAgICBiZXR0ZXIgc2V0dGxlZCB0aGVyZSAoYWRkZWQgeGZlcl9vcHMtc3RydWN0KQorICAgICAgICAgICAgIC0gY3JlYXRlZCBhIGNvbW1vbiBmaWxlcyBmb3IgZnJvbnRlbmRzIChtYy9wL21iKQorICAyMDA0LTA5LTI4IC0gYWRkZWQgc3VwcG9ydCBmb3IgYSBuZXcgZGV2aWNlIChVbmtvd24sIHZlbmRvciBJRCBpcyBIeXBlci1QYWx0ZWspCisgIDIwMDQtMDktMjAgLSBhZGRlZCBzdXBwb3J0IGZvciBhIG5ldyBkZXZpY2UgKENvbXBybyBEVkItVTIwMDApLCB0aGFua3MKKyAgICAgICAgICAgICAgIHRvIEFtYXVyeSBEZW1vbCBmb3IgcmVwb3J0aW5nCisgICAgICAgICAgICAgLSBjaGFuZ2VkIHVzYiBUUyB0cmFuc2ZlciBtZXRob2QgKHNldmVyYWwgdXJicywgc3RvcHBpbmcgdHJhbnNmZXIKKyAgICAgICAgICAgICAgIGJlZm9yZSBzZXR0aW5nIGEgbmV3IHBpZCkKKyAgMjAwNC0wOS0xMyAtIGFkZGVkIHN1cHBvcnQgZm9yIGEgbmV3IGRldmljZSAoQXJ0ZWMgVDEgVVNCIFRWQk9YKSwgdGhhbmtzCisgICAgICAgICAgICAgICB0byBDaHJpc3RpYW4gTW90c2Noa2UgZm9yIHJlcG9ydGluZworICAyMDA0LTA5LTA1IC0gcmVsZWFzZWQgdGhlIGRpYnVzYiBkZXZpY2UgYW5kIGRpYjMwMDBtYi1mcm9udGVuZCBkcml2ZXIKKworICAob2xkIG5ld3MgZm9yIHZwNzA0MS5jKQorICAyMDA0LTA3LTE1IC0gZm91bmQgb3V0LCBieSBhY2NpZGVudCwgdGhhdCB0aGUgZGV2aWNlIGhhcyBhIFRVQTYwMTBYUyBmb3IKKyAgICAgICAgICAgICAgIFBMTAorICAyMDA0LTA3LTEyIC0gZmlndXJlZCBvdXQsIHRoYXQgdGhlIGRyaXZlciBzaG91bGQgYWxzbyB3b3JrIHdpdGggdGhlCisgICAgICAgICAgICAgICBDVFMgUG9ydGFibGUgKENoaW5lc2UgVGVsZXZpc2lvbiBTeXN0ZW0pCisgIDIwMDQtMDctMDggLSBmaXJtd2FyZS1leHRyYWN0aW9uLTIuNDIyLXByb2JsZW0gc29sdmVkLCBkcml2ZXIgaXMgbm93IHdvcmtpbmcKKyAgICAgICAgICAgICAgIHByb3Blcmx5IHdpdGggZmlybXdhcmUgZXh0cmFjdGVkIGZyb20gMi40MjIKKwkJCSAtICNpZiBmb3IgMi42LjQgKGR2YiksIGNvbXBpbGUgaXNzdWUKKwkJCSAtIGNoYW5nZWQgZmlybXdhcmUgaGFuZGxpbmcsIHNlZSB2cDcwNDEudHh0IHNlYyAxLjEKKyAgMjAwNC0wNy0wMiAtIHNvbWUgdHVuZXIgbW9kaWZpY2F0aW9ucywgdjAuMSwgY2xlYW51cHMsIGZpcnN0IHB1YmxpYworICAyMDA0LTA2LTI4IC0gbm93IHVzaW5nIHRoZSBkdmJfZG14X3N3ZmlsdGVyX3BhY2tldHMsIGV2ZXJ5dGhpbmcKKyAgICAgICAgICAgICAgIHJ1bnMgZmluZSBub3cKKyAgMjAwNC0wNi0yNyAtIGFibGUgdG8gd2F0Y2ggYW5kIHN3aXRjaGluZyBjaGFubmVscyAocHJlLWFscGhhKQorICAgICAgICAgICAgIC0gbm8gc2VjdGlvbiBmaWx0ZXJpbmcgeWV0CisgIDIwMDQtMDYtMDYgLSBmaXJzdCBUUyByZWNlaXZlZCwgYnV0IGtlcm5lbCBvb3BzIDovCisgIDIwMDQtMDUtMTQgLSBmaXJtd2FyZSBsb2FkZXIgaXMgd29ya2luZworICAyMDA0LTA1LTExIC0gc3RhcnQgd3JpdGluZyB0aGUgZHJpdmVyCisKKzEuIEhvdyB0byB1c2U/CitOT1RFOiBUaGlzIGRyaXZlciB3YXMgZGV2ZWxvcGVkIHVzaW5nIExpbnV4IDIuNi42LiwKK2l0IGlzIHdvcmtpbmcgd2l0aCAyLjYuNyBhbmQgYWJvdmUuCisKK0xpbnV4IDIuNC54IHN1cHBvcnQgaXMgbm90IHBsYW5uZWQsIGJ1dCBwYXRjaGVzIGFyZSB2ZXJ5IHdlbGNvbWUuCisKK05PVEU6IEknbSB1c2luZyBEZWJpYW4gdGVzdGluZywgc28gdGhlIGZvbGxvd2luZyBleHBsYWluYXRpb24gKGVzcGVjaWFsbHkKK3RoZSBob3RwbHVnLXBhdGgpIG5lZWRuJ3QgbWF0Y2ggeW91ciBzeXN0ZW0sIGJ1dCBwcm9iYWJseSBpdCB3aWxsIDopLgorCitUaGUgZHJpdmVyIGlzIGluY2x1ZGVkIGluIHRoZSBrZXJuZWwgc2luY2UgTGludXggMi42LjEwLgorCisxLjEuIEZpcm13YXJlCisKK1RoZSBVU0IgZHJpdmVyIG5lZWRzIHRvIGRvd25sb2FkIGEgZmlybXdhcmUgdG8gc3RhcnQgd29ya2luZy4KKworWW91IGNhbiBlaXRoZXIgdXNlICJnZXRfZHZiX2Zpcm13YXJlIGRpYnVzYiIgdG8gZG93bmxvYWQgdGhlIGZpcm13YXJlIG9yIHlvdQorY2FuIGdldCBpdCBkaXJlY3RseSB2aWEKKworZm9yIFVTQjEuMSAoQU4yMTM1KQoraHR0cDovL3d3dy5saW51eHR2Lm9yZy9kb3dubG9hZHMvZmlybXdhcmUvZHZiLWRpYnVzYi01LjAuMC4xMS5mdworCitmb3IgVVNCMS4xIChBTjIyMzUpIChhIGZldyBBcnRlYyBUMSBkZXZpY2VzKQoraHR0cDovL3d3dy5saW51eHR2Lm9yZy9kb3dubG9hZHMvZmlybXdhcmUvZHZiLWRpYnVzYi1hbjIyMzUtMS5mdworCitmb3IgVVNCMi4wIChGWDIpIEhhdXBwYXVnZSwgRGlCY29tCitodHRwOi8vd3d3LmxpbnV4dHYub3JnL2Rvd25sb2Fkcy9maXJtd2FyZS9kdmItZGlidXNiLTYuMC4wLjUuZncKKworZm9yIFVTQjIuMCBBRFNUZWNoL0t3b3JsZCBVU0IyLjAKK2h0dHA6Ly93d3cubGludXh0di5vcmcvZG93bmxvYWRzL2Zpcm13YXJlL2R2Yi1kaWJ1c2ItYWRzdGVjaC11c2IyLTEuZncKKworZm9yIFVTQjIuMCBIYW5mVGVrCitodHRwOi8vd3d3LmxpbnV4dHYub3JnL2Rvd25sb2Fkcy9maXJtd2FyZS9kdmItZGlidXNiLWFuMjIzNS0xLmZ3CisKKworMS4yLiBDb21waWxpbmcKKworU2luY2UgdGhlIGRyaXZlciBpcyBpbiB0aGUgbGludXgga2VybmVsLCBhY3RpdmF0aW5nIHRoZSBkcml2ZXIgaW4KK3lvdXIgZmF2b3JpdGUgY29uZmlnLWVudmlyb25tZW50IHNob3VsZCBzdWZmaWNpZW50LiBJIHJlY29tbWVuZAordG8gY29tcGlsZSB0aGUgZHJpdmVyIGFzIG1vZHVsZS4gSG90cGx1ZyBkb2VzIHRoZSByZXN0LgorCisxLjMuIExvYWRpbmcgdGhlIGRyaXZlcnMKKworSG90cGx1ZyBpcyBhYmxlIHRvIGxvYWQgdGhlIGRyaXZlciwgd2hlbiBpdCBpcyBuZWVkZWQgKGJlY2F1c2UgeW91IHBsdWdnZWQKK2luIHRoZSBkZXZpY2UpLgorCitJZiB5b3Ugd2FudCB0byBlbmFibGUgZGVidWcgb3V0cHV0LCB5b3UgaGF2ZSB0byBsb2FkIHRoZSBkcml2ZXIgbWFudWFsbHkgYW5kCitmcm9tIHdpdGhpbmcgdGhlIGR2Yi1rZXJuZWwgY3ZzIHJlcG9zaXRvcnkuCisKK2ZpcnN0IGhhdmUgYSBsb29rLCB3aGljaCBkZWJ1ZyBsZXZlbCBhcmUgYXZhaWxhYmxlOgorCittb2RpbmZvIGRpYjMwMDBtYgorbW9kaW5mbyBkaWIzMDAwLWNvbW1vbgorbW9kaW5mbyBkaWIzMDAwbWMKK21vZGluZm8gZHZiLWRpYnVzYgorCittb2Rwcm9iZSBkaWIzMDAwLWNvbW1vbiBkZWJ1Zz08bGV2ZWw+Cittb2Rwcm9iZSBkaWIzMDAwbWIgZGVidWc9PGxldmVsPgorbW9kcHJvYmUgZGliMzAwMG1jIGRlYnVnPTxsZXZlbD4KK21vZHByb2JlIGR2Yi1kaWJ1c2IgZGVidWc9PGxldmVsPgorCitzaG91bGQgZG8gdGhlIHRyaWNrLgorCitXaGVuIHRoZSBkcml2ZXIgaXMgbG9hZGVkIHN1Y2Nlc3NmdWxseSwgdGhlIGZpcm13YXJlIGZpbGUgd2FzIGluCit0aGUgcmlnaHQgcGxhY2UgYW5kIHRoZSBkZXZpY2UgaXMgY29ubmVjdGVkLCB0aGUgIlBvd2VyIi1MRUQgc2hvdWxkIGJlCit0dXJuZWQgb24uCisKK0F0IHRoaXMgcG9pbnQgeW91IHNob3VsZCBiZSBhYmxlIHRvIHN0YXJ0IGEgZHZiLWNhcGFibGUgYXBwbGljYXRpb24uIEZvciBteXNlbGYKK0kgdXNlZCBtcGxheWVyLCBkdmJzY2FuLCB0emFwIGFuZCBrYXh0diwgdGhleSBhcmUgd29ya2luZy4gVXNpbmcgdGhlIGRldmljZQoraW4gdmRyIGlzIHdvcmtpbmcgbm93IGFsc28uCisKKzIuIEtub3duIHByb2JsZW1zIGFuZCBidWdzCisKKy0gRG9uJ3QgcmVtb3ZlIHRoZSBVU0IgZGV2aWNlIHdoaWxlIHJ1bm5pbmcgYW4gRFZCIGFwcGxpY2F0aW9uLCB5b3VyIHN5c3RlbSB3aWxsIGRpZS4KKworMi4xLiBBZGRpbmcgc3VwcG9ydCBmb3IgZGV2aWNlcworCitJdCBpcyBub3QgcG9zc2libGUgdG8gZGV0ZXJtaW5lIHRoZSByYW5nZSBvZiBkZXZpY2VzIGJhc2VkIG9uIHRoZSBEaUJjb20KK3JlZmVyZW5jZSBkZXNpZ25zLiBUaGlzIGlzIGJlY2F1c2UgdGhlIHJlZmVyZW5jZSBkZXNpZ24gb2YgRGlCY29tIGNhbiBiZSBzb2xkCit0byB0aGlyZHMsIHdpdGhvdXQgdGVsbGluZyBEaUJjb20gKHNvIGRvbmUgd2l0aCB0aGUgVHdpbmhhbiBWUDcwNDEgYW5kCit0aGUgSEFNQSBkZXZpY2UpLgorCitXaGVuIHlvdSB0aGluayB5b3UgaGF2ZSBhIGRldmljZSBsaWtlIHRoaXMgYW5kIHRoZSBkcml2ZXIgZG9lcyBub3QgcmVjb2duaXplcyBpdCwKK3BsZWFzZSBzZW5kIHRoZSAqKioqbG9hZCouaW5mIGFuZCB0aGUgKioqKmNhcCouaW5mIG9mIHRoZSBXaW5kb3dzIGRyaXZlciB0byBtZS4KKworU29tZXRpbWVzIHRoZSBWZW5kb3Igb3IgUHJvZHVjdCBJRCBpcyBpZGVudGljYWwgdG8gdGhlIG9uZXMgb2YgVHdpbmhhbiwgZXZlbgordGhvdWdoIGl0IGlzIG5vdCBhIFR3aW5oYW4gZGV2aWNlIChlLmcuIEhBTUEpLCB0aGVuIHBsZWFzZSBzZW5kIG1lIHRoZSBuYW1lCitvZiB0aGUgZGV2aWNlLiBJIHdpbGwgYWRkIGl0IHRvIHRoaXMgbGlzdCBpbiBvcmRlciB0byBtYWtlIHRoaXMgY2xlYXIgdG8KK290aGVycy4KKworSWYgeW91IGFyZSBmYW1pbGFyIHdpdGggQyB5b3UgY2FuIGFsc28gYWRkIHRoZSBWSUQgYW5kIFBJRCBvZiB0aGUgZGV2aWNlIHRvCit0aGUgZHZiLWRpYnVzYi1jb3JlLmMtZmlsZSBhbmQgY3JlYXRlIGEgcGF0Y2ggYW5kIHNlbmQgaXQgb3ZlciB0byBtZSBvciB0bwordGhlIGxpbnV4LWR2YiBtYWlsaW5nIGxpc3QsIF9hZnRlcl8geW91IGhhdmUgdHJpZWQgY29tcGlsaW5nIGFuZCBtb2Rwcm9iaW5nCitpdC4KKworMi4yLiBVU0IxLjEgQmFuZHdpZHRoIGxpbWl0YXRpb24KKworTW9zdCBvZiB0aGUgY3VycmVudGx5IHN1cHBvcnRlZCBkZXZpY2VzIGFyZSBVU0IxLjEgYW5kIHRodXMgdGhleSBoYXZlIGEKK21heGltdW0gYmFuZHdpZHRoIG9mIGFib3V0IDUtNiBNQml0L3Mgd2hlbiBjb25uZWN0ZWQgdG8gYSBVU0IyLjAgaHViLgorVGhpcyBpcyBub3QgZW5vdWdoIGZvciByZWNlaXZpbmcgdGhlIGNvbXBsZXRlIHRyYW5zcG9ydCBzdHJlYW0gb2YgYQorRFZCLVQgY2hhbm5lbCAod2hpY2ggY2FuIGJlIGFib3V0IDE2IE1CaXQvcykuIE5vcm1hbGx5IHRoaXMgaXMgbm90IGEKK3Byb2JsZW0sIGlmIHlvdSBvbmx5IHdhbnQgdG8gd2F0Y2ggVFYgKHRoaXMgZG9lcyBub3QgYXBwbHkgZm9yIEhEVFYpLAorYnV0IHdhdGNoaW5nIGEgY2hhbm5lbCB3aGlsZSByZWNvcmRpbmcgYW5vdGhlciBjaGFubmVsIG9uIHRoZSBzYW1lCitmcmVxdWVuY3kgc2ltcGx5IGRvZXMgbm90IHdvcmsgdmVyeSB3ZWxsLiBUaGlzIGFwcGxpZXMgdG8gYWxsIFVTQjEuMQorRFZCLVQgZGV2aWNlcywgbm90IGp1c3QgZGlidXNiKQorCitVcGRhdGU6IEZvciB0aGUgVVNCMS4xIGFuZCBWRFIgc29tZSB3b3JrIGhhcyBiZWVuIGRvbmUgKHBhdGNoZXMgYW5kIGNvbW1lbnRzCithcmUgc3RpbGwgdmVyeSB3ZWxjb21lKS4gTWF5YmUgdGhlIHByb2JsZW0gaXMgc29sdmVkIGluIHRoZSBtZWFudGltZSBiZWNhdXNlIEkKK25vdyB1c2UgdGhlIGRteF9zd19maWx0ZXIgZnVuY3Rpb24gaW5zdGVhZCBvZiBkbXhfc3dfZmlsdGVyX3BhY2tldC4gSSBob3BlIHRoZQorbGludXgtZHZiIHNvZnR3YXJlIGZpbHRlciBpcyBhYmxlIHRvIGdldCB0aGUgYmVzdCBvZiB0aGUgZ2FyYmxlZCBUUy4KKworVGhlIGJ1Zywgd2hlcmUgdGhlIFRTIGlzIGRpc3RvcnRlZCBieSBhIGhlYXZ5IHVzYWdlIG9mIHRoZSBkZXZpY2UgaXMgZ29uZQorZGVmaW5pdGVseS4gQWxsIGRpYnVzYi1kZXZpY2VzIEkgd2FzIHVzaW5nIChUd2luaGFuLCBLd29ybGQsIERpQmNvbSkgYXJlCit3b3JraW5nIGxpa2UgY2hhcm0gbm93IHdpdGggVkRSLiBTb21ldGltZXMgSSBldmVuIHdhcyBhYmxlIHRvIHJlY29yZCBhIGNoYW5uZWwKK2FuZCB3YXRjaCBhbm90aGVyIG9uZS4KKworMi4zLiBDb21tZW50cworCitQYXRjaGVzLCBjb21tZW50cyBhbmQgc3VnZ2VzdGlvbnMgYXJlIHZlcnkgdmVyeSB3ZWxjb21lLgorCiszLiBBY2tub3dsZWRnZW1lbnRzCisJQW1hdXJ5IERlbW9sIChhZGVtb2xAZGliY29tLmZyKSBhbmQgRnJhbmNvaXMgS2Fub3Vubmlrb2ZmIGZyb20gRGlCY29tIGZvcgorICAgIHByb3ZpZGluZyBzcGVjcywgY29kZSBhbmQgaGVscCwgb24gd2hpY2ggdGhlIGR2Yi1kaWJ1c2IsIGRpYjMwMDBtYiBhbmQKKyAgICBkaWIzMDAwbWMgYXJlIGJhc2VkLgorCisgICBEYXZpZCBNYXR0aGV3cyBmb3IgaWRlbnRpZnlpbmcgYSBuZXcgZGV2aWNlIHR5cGUgKEFydGVjIFQxIHdpdGggQU4yMjM1KQorICAgIGFuZCBmb3IgZXh0ZW5kaW5nIGRpYnVzYiB3aXRoIHJlbW90ZSBjb250cm9sIGV2ZW50IGhhbmRsaW5nLiBUaGFuayB5b3UuCisKKyAgIEFsZXggV29vZHMgZm9yIGZyZXF1ZW50bHkgYW5zd2VyaW5nIHF1ZXN0aW9uIGFib3V0IHVzYiBhbmQgZHZiCisgICAgc3R1ZmYsIGEgYmlnIHRoYW5rIHlvdS4KKworICAgQmVybmQgV2FnbmVyIGZvciBoZWxwaW5nIHdpdGggaHVnZSBidWcgcmVwb3J0cyBhbmQgZGlzY3Vzc2lvbnMuCisKKyAgIEd1bm5hciBXaXR0aWNoIGFuZCBKb2FjaGltIHZvbiBDYXJvbiBmb3IgdGhlaXIgdHJ1c3QgZm9yIGdpdmluZyBtZQorICAgIHJvb3Qtc2hlbGxzIG9uIHRoZWlyIG1hY2hpbmVzIHRvIGltcGxlbWVudCBzdXBwb3J0IGZvciBuZXcgZGV2aWNlcy4KKworICAgU29tZSBndXlzIG9uIHRoZSBsaW51eC1kdmIgbWFpbGluZyBsaXN0IGZvciBlbmNvdXJhZ2luZyBtZQorCisgICBQZXRlciBTY2hpbGRtYW5uID5wZXRlci5zY2hpbGRtYW5uLW5vc3BhbS1hdC13ZWIuZGU8IGZvciBoaXMKKyAgICB1c2VyLWxldmVsIGZpcm13YXJlIGxvYWRlciwgd2hpY2ggc2F2ZXMgYSBsb3Qgb2YgdGltZQorICAgICh3aGVuIHdyaXRpbmcgdGhlIHZwNzA0MSBkcml2ZXIpCisKKyAgIFVsZiBIZXJtZW5hdSBmb3IgaGVscGluZyBtZSBvdXQgd2l0aCB0cmFkaXRpb25hbCBjaGluZXNlLgorCisgICBBbmRy6SBTbW9rdHVuIGFuZCBDaHJpc3RpYW4gRnL2bW1lbCBmb3Igc3VwcG9ydGluZyBtZSB3aXRoCisgICAgaGFyZHdhcmUgYW5kIGxpc3RlbmluZyB0byBteSBwcm9ibGVtcyB2ZXJ5IHBhdGllbnQK