LyogRHJpdmVyIGZvciBVU0IgTWFzcyBTdG9yYWdlIGNvbXBsaWFudCBkZXZpY2VzCiAqIFVudW5zdWFsIERldmljZXMgRmlsZQogKgogKiAkSWQ6IHVudXN1YWxfZGV2cy5oLHYgMS4zMiAyMDAyLzAyLzI1IDAyOjQxOjI0IG1kaGFybSBFeHAgJAogKgogKiBDdXJyZW50IGRldmVsb3BtZW50IGFuZCBtYWludGVuYW5jZSBieToKICogICAoYykgMjAwMC0yMDAyIE1hdHRoZXcgRGhhcm0gKG1kaGFybS11c2JAb25lLWV5ZWQtYWxpZW4ubmV0KQogKgogKiBJbml0aWFsIHdvcmsgYnk6CiAqICAgKGMpIDIwMDAgQWRhbSBKLiBSaWNodGVyIChhZGFtQHlnZ2RyYXNpbC5jb20pLCBZZ2dkcmFzaWwgQ29tcHV0aW5nLCBJbmMuCiAqCiAqIFBsZWFzZSBzZWUgaHR0cDovL3d3dy5vbmUtZXllZC1hbGllbi5uZXQvfm1kaGFybS9saW51eC11c2IgZm9yIG1vcmUKICogaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBkcml2ZXIuCiAqCiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CiAqIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZQogKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55CiAqIGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKICogV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nCiAqIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sCiAqIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgogKi8KCi8qIElNUE9SVEFOVCBOT1RFOiBUaGlzIGZpbGUgbXVzdCBiZSBpbmNsdWRlZCBpbiBhbm90aGVyIGZpbGUgd2hpY2ggZG9lcwogKiB0aGUgZm9sbG93aW5nIHRoaW5nIGZvciBpdCB0byB3b3JrOgogKiBUaGUgbWFjcm8gVU5VU1VBTF9ERVYoKSBtdXN0IGJlIGRlZmluZWQgYmVmb3JlIHRoaXMgZmlsZSBpcyBpbmNsdWRlZAogKi8KI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPgoKLyogSWYgeW91IGVkaXQgdGhpcyBmaWxlLCBwbGVhc2UgdHJ5IHRvIGtlZXAgaXQgc29ydGVkIGZpcnN0IGJ5IFZlbmRvcklELAogKiB0aGVuIGJ5IFByb2R1Y3RJRC4KICoKICogSWYgeW91IHdhbnQgdG8gYWRkIGFuIGVudHJ5IGZvciB0aGlzIGZpbGUsIGJlIHN1cmUgdG8gaW5jbHVkZSB0aGUKICogZm9sbG93aW5nIGluZm9ybWF0aW9uOgogKgktIGEgcGF0Y2ggdGhhdCBhZGRzIHRoZSBlbnRyeSBmb3IgeW91ciBkZXZpY2UsIGluY2x1ZGluZyB5b3VyCiAqCSAgZW1haWwgYWRkcmVzcyByaWdodCBhYm92ZSB0aGUgZW50cnkgKHBsdXMgbWF5YmUgYSBicmllZgogKgkgIGV4cGxhbmF0aW9uIG9mIHRoZSByZWFzb24gZm9yIHRoZSBlbnRyeSksCiAqCS0gYSBjb3B5IG9mIC9wcm9jL2J1cy91c2IvZGV2aWNlcyB3aXRoIHlvdXIgZGV2aWNlIHBsdWdnZWQgaW4KICoJICBydW5uaW5nIHdpdGggdGhpcyBwYXRjaC4KICogU2VuZCB5b3VyIHN1Ym1pc3Npb24gdG8gZWl0aGVyIFBoaWwgRGlib3dpdHogPHBoaWxAaXBvbS5jb20+IG9yCiAqIEFsYW4gU3Rlcm4gPHN0ZXJuQHJvd2xhbmQuaGFydmFyZC5lZHU+LCBhbmQgZG9uJ3QgZm9yZ2V0IHRvIENDOiB0aGUKICogVVNCIGRldmVsb3BtZW50IGxpc3QgPGxpbnV4LXVzYi1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ+LgogKi8KClVOVVNVQUxfREVWKCAgMHgwM2VlLCAweDY5MDEsIDB4MDAwMCwgMHgwMTAwLAoJCSJNaXRzdW1pIiwKCQkiVVNCIEZERCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKVU5VU1VBTF9ERVYoICAweDAzZjAsIDB4MDEwNywgMHgwMjAwLCAweDAyMDAsIAoJCSJIUCIsCgkJIkNELVdyaXRlcisiLAoJCVVTX1NDXzgwNzAsIFVTX1BSX0NCLCBOVUxMLCAwKSwgCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX1VTQkFUClVOVVNVQUxfREVWKCAgMHgwM2YwLCAweDAyMDcsIDB4MDAwMSwgMHgwMDAxLCAKCQkiSFAiLAoJCSJDRC1Xcml0ZXIrIDgyMDBlIiwKCQlVU19TQ184MDcwLCBVU19QUl9TQ01fQVRBUEksIGluaXRfdXNiYXQsIDApLCAKClVOVVNVQUxfREVWKCAgMHgwM2YwLCAweDAzMDcsIDB4MDAwMSwgMHgwMDAxLCAKCQkiSFAiLAoJCSJDRC1Xcml0ZXIrIENELTRlIiwKCQlVU19TQ184MDcwLCBVU19QUl9TQ01fQVRBUEksIGluaXRfdXNiYXQsIDApLCAKI2VuZGlmCgovKiBEZWR1Y2VkIGJ5IEpvbmF0aGFuIFdvaXRoZSA8andvaXRoZUBwaHlzaWNzLmFkZWxhaWRlLmVkdS5hdT4KICogRW50cnkgbmVlZGVkIGZvciBmbGFnczogVVNfRkxfRklYX0lOUVVJUlkgYmVjYXVzZSBpbml0aWFsIGlucXVpcnkgbWVzc2FnZQogKiBhbHdheXMgZmFpbHMgYW5kIGNvbmZ1c2VzIGRyaXZlLgogKi8KVU5VU1VBTF9ERVYoICAweDA0MTEsIDB4MDAxYywgMHgwMTEzLCAweDAxMTMsCgkJIkJ1ZmZhbG8iLAoJCSJEVUItUDQwRyBIREQiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZICksCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0RQQ00KVU5VU1VBTF9ERVYoICAweDA0MzYsIDB4MDAwNSwgMHgwMTAwLCAweDAxMDAsCgkJIk1pY3JvdGVjaCIsCgkJIkNhbWVyYU1hdGUgKERQQ01fVVNCKSIsCiAJCVVTX1NDX1NDU0ksIFVTX1BSX0RQQ01fVVNCLCBOVUxMLCAwICksCiNlbmRpZgoKLyogUGF0Y2ggc3VibWl0dGVkIGJ5IFBoaWxpcHAgRnJpZWRyaWNoIDxwaGlsaXBwQHZvaWQuYXQ+ICovClVOVVNVQUxfREVWKCAgMHgwNDgyLCAweDAxMDAsIDB4MDEwMCwgMHgwMTAwLAoJCSJLeW9jZXJhIiwKCQkiRmluZWNhbSBTM3giLAoJCVVTX1NDXzgwNzAsIFVTX1BSX0NCLCBOVUxMLCBVU19GTF9GSVhfSU5RVUlSWSksCgovKiBQYXRjaCBzdWJtaXR0ZWQgYnkgUGhpbGlwcCBGcmllZHJpY2ggPHBoaWxpcHBAdm9pZC5hdD4gKi8KVU5VU1VBTF9ERVYoICAweDA0ODIsIDB4MDEwMSwgMHgwMTAwLCAweDAxMDAsCgkJIkt5b2NlcmEiLAoJCSJGaW5lY2FtIFM0IiwKCQlVU19TQ184MDcwLCBVU19QUl9DQiwgTlVMTCwgVVNfRkxfRklYX0lOUVVJUlkpLAoKLyogUGF0Y2ggc3VibWl0dGVkIGJ5IFN0ZXBoYW5lIEdhbGxlcyA8c3RlcGhhbmUuZ2FsbGVzQGZyZWUuZnI+ICovClVOVVNVQUxfREVWKCAgMHgwNDgyLCAweDAxMDMsIDB4MDEwMCwgMHgwMTAwLAoJCSJLeW9jZXJhIiwKCQkiRmluZWNhbSBTNSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsIFVTX0ZMX0ZJWF9JTlFVSVJZKSwKCi8qIFBhdGNoIGZvciBLeW9jZXJhIEZpbmVjYW0gTDMKICogU3VibWl0dGVkIGJ5IE1pY2hhZWwgS3JhdXRoIDxtaWNoYWVsLmtyYXV0aEB3ZWIuZGU+CiAqIGFuZCBBbGVzc2FuZHJvIEZyYWNjaGV0dGkgPGFsLmZyYWNjaGV0dGlAdGluLml0PgogKi8KVU5VU1VBTF9ERVYoICAweDA0ODIsIDB4MDEwNSwgMHgwMTAwLCAweDAxMDAsCgkJIkt5b2NlcmEiLAoJCSJGaW5lY2FtIEwzIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9CVUxLLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZKSwKCi8qIFJlcG9ydGVkIGJ5IFBhdWwgU3Rld2FydCA8c3Rld2FydEB3ZXRsb2dpYy5uZXQ+CiAqIFRoaXMgZW50cnkgaXMgbmVlZGVkIGJlY2F1c2UgdGhlIGRldmljZSByZXBvcnRzIFN1Yj1mZiAqLwpVTlVTVUFMX0RFViggIDB4MDRhNCwgMHgwMDA0LCAweDAwMDEsIDB4MDAwMSwKCQkiSGl0YWNoaSIsCgkJIkRWRC1DQU0gRFotTVYxMDBBIENhbWNvcmRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQ0IsIE5VTEwsIFVTX0ZMX1NJTkdMRV9MVU4pLAoKLyogUmVwb3J0ZWQgYnkgQW5kcmVhcyBCb2NraG9sZCA8YW5kcmVhc0Bib2NraW9ubGluZS5kZT4gKi8KVU5VU1VBTF9ERVYoICAweDA0YjAsIDB4MDQwNSwgMHgwMTAwLCAweDAxMDAsCgkJIk5JS09OIiwKCQkiTklLT04gRFNDIEQ3MCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZKSwKCi8qIEJFTlEgREM1MzMwCiAqIFJlcG9ydGVkIGJ5IE1hbnVlbCBGb21idWVuYSA8bWZvbWJ1ZW5hQHlhLmNvbT4gYW5kCiAqIEZyYW5rIENvcGVsYW5kIDxmamNAdGhpbmd5LmFwYW5hLm9yZy5hdT4gKi8KVU5VU1VBTF9ERVYoICAweDA0YTUsIDB4MzAxMCwgMHgwMTAwLCAweDAxMDAsCgkJIlRla29tIFRlY2hub2xvZ2llcywgSW5jIiwKCQkiMzAwX0NBTUVSQSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFJlcG9ydGVkIGJ5IFNpbW9uIExldml0dCA8c2ltb25Ad2hhdHRmLmNvbT4KICogVGhpcyBlbnRyeSBuZWVkcyBTdWIgYW5kIFByb3RvIGZpZWxkcyAqLwpVTlVTVUFMX0RFViggIDB4MDRiOCwgMHgwNjAxLCAweDAxMDAsIDB4MDEwMCwKCQkiRXBzb24iLAoJCSI4NzVEQyBTdG9yYWdlIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9DQiwgTlVMTCwgVVNfRkxfRklYX0lOUVVJUlkpLAoKLyogUmVwb3J0ZWQgYnkgS2hhbGlkIEF6aXogPGtoYWxpZEBnb25laGlraW5nLm9yZz4KICogVGhpcyBlbnRyeSBpcyBuZWVkZWQgYmVjYXVzZSB0aGUgZGV2aWNlIHJlcG9ydHMgU3ViPWZmICovClVOVVNVQUxfREVWKCAgMHgwNGI4LCAweDA2MDIsIDB4MDExMCwgMHgwMTEwLAoJCSJFcHNvbiIsCgkJIjc4NUVQWCBTdG9yYWdlIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9CVUxLLCBOVUxMLCBVU19GTF9TSU5HTEVfTFVOKSwKCi8qIE5vdCBzdXJlIHdobyByZXBvcnRlZCB0aGlzIG9yaWdpbmFsbHkgYnV0CiAqIFBhdmVsIE1hY2hlayA8cGF2ZWxAdWN3LmN6PiByZXBvcnRlZCB0aGF0IHRoZSBleHRyYSBVU19GTF9TSU5HTEVfTFVOCiAqIGZsYWcgYmUgYWRkZWQgKi8KVU5VU1VBTF9ERVYoICAweDA0Y2IsIDB4MDEwMCwgMHgwMDAwLCAweDIyMTAsCgkJIkZ1amlmaWxtIiwKCQkiRmluZVBpeCAxNDAwWm9vbSIsCgkJVVNfU0NfVUZJLCBVU19QUl9ERVZJQ0UsIE5VTEwsIFVTX0ZMX0ZJWF9JTlFVSVJZIHwgVVNfRkxfU0lOR0xFX0xVTiksCgovKiBSZXBvcnRlZCBieSBQZXRlciBX5GNodGxlciA8cHdhZWNodGxlckBsb2V3ZS1rb21wLmRlPgogKiBUaGUgZGV2aWNlIG5lZWRzIHRoZSBmbGFncyBvbmx5LgogKi8KVU5VU1VBTF9ERVYoICAweDA0Y2UsIDB4MDAwMiwgMHgwMDc0LCAweDAwNzQsCgkJIlNjYW5Mb2dpYyIsCgkJIlNMMTFSLUlERSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkpLAoKLyogUmVwb3J0ZWQgYnkgS3Jpc3RvbiBGaW5jaGVyIDxrcmlzdG9uQGFpcm1haWwubmV0PgogKiBQYXRjaCBzdWJtaXR0ZWQgYnkgU2VhbiBNaWxsaWNoYW1wIDxzZWFuQGJydWVub3Iub3JnPgogKiBUaGlzIGlzIHRvIHN1cHBvcnQgdGhlIFBhbmFzb25pYyBQYWxtQ2FtIFBWLVNENDA5MAogKiBUaGlzIGVudHJ5IGlzIG5lZWRlZCBiZWNhdXNlIHRoZSBkZXZpY2UgcmVwb3J0cyBTdWI9ZmYgCiAqLwpVTlVTVUFMX0RFViggIDB4MDRkYSwgMHgwOTAxLCAweDAxMDAsIDB4MDIwMCwKCQkiUGFuYXNvbmljIiwKCQkiTFMtMTIwIENhbWVyYSIsCgkJVVNfU0NfVUZJLCBVU19QUl9ERVZJQ0UsIE5VTEwsIDApLAoKLyogRnJvbSBZdWtpaGlybyBOYWthaSwgdmlhIHphaXRjZXZAeWFob28uY29tLgogKiBUaGlzIGlzIG5lZWRlZCBmb3IgQ0IgaW5zdGVhZCBvZiBDQkkgKi8KVU5VU1VBTF9ERVYoICAweDA0ZGEsIDB4MGQwNSwgMHgwMDAwLCAweDAwMDAsCgkJIlNoYXJwIENFLUNXMDUiLAoJCSJDRC1SL1JXIERyaXZlIiwKCQlVU19TQ184MDcwLCBVU19QUl9DQiwgTlVMTCwgMCksCgovKiBSZXBvcnRlZCBieSBBZHJpYWFuIFBlbm5pbmcgPGEucGVubmluZ0BsdW9uLm5ldD4gKi8KVU5VU1VBTF9ERVYoICAweDA0ZGEsIDB4MjM3MiwgMHgwMDAwLCAweDk5OTksCgkJIlBhbmFzb25pYyIsCgkJIkRNQy1MQ3ggQ2FtZXJhIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkgfCBVU19GTF9OT1RfTE9DS0FCTEUgKSwKCi8qIE1vc3Qgb2YgdGhlIGZvbGxvd2luZyBlbnRyaWVzIHdlcmUgZGV2ZWxvcGVkIHdpdGggdGhlIGhlbHAgb2YKICogU2h1dHRsZS9TQ00gZGlyZWN0bHkuCiAqLwpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMDAxLCAweDAyMDAsIDB4MDIwMCwgCgkJIk1hdHNoaXRhIiwKCQkiTFMtMTIwIiwKCQlVU19TQ184MDIwLCBVU19QUl9DQiwgTlVMTCwgMCksCgpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMDAyLCAweDAxMDAsIDB4MDEwMCwgCgkJIlNodXR0bGUiLAoJCSJlVVNDU0kgQnJpZGdlIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgdXNiX3N0b3JfZXVzY3NpX2luaXQsIAoJCVVTX0ZMX1NDTV9NVUxUX1RBUkcgKSwgCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX1NERFIwOQpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMDAzLCAweDAwMDAsIDB4OTk5OSwgCgkJIlNhbmRpc2siLAoJCSJJbWFnZU1hdGUgU0REUjA5IiwKCQlVU19TQ19TQ1NJLCBVU19QUl9FVVNCX1NERFIwOSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCgovKiBUaGlzIGVudHJ5IGlzIGZyb20gQW5kcmllcy5Ccm91d2VyQGN3aS5ubCAqLwpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMDA1LCAweDAxMDAsIDB4MDIwOCwKCQkiU0NNIE1pY3Jvc3lzdGVtcyIsCgkJImVVU0IgU21hcnRNZWRpYSAvIENvbXBhY3RGbGFzaCBBZGFwdGVyIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9EUENNX1VTQiwgc2RkcjA5X2luaXQsIAoJCTApLCAKI2VuZGlmCgovKiBSZXBvcnRlZCBieSBNYXJrdXMgRGVtbGVpdG5lciA8bXNkZW1sZWlAY2wudW5pLWhlaWRlbGJlcmcuZGU+ICovClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDAwMDYsIDB4MDEwMCwgMHgwMTAwLCAKCQkiU0NNIE1pY3Jvc3lzdGVtcyBJbmMuIiwKCQkiZVVTQiBNTUMgQWRhcHRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQ0IsIE5VTEwsIAoJCVVTX0ZMX1NJTkdMRV9MVU4pLCAKCi8qIFJlcG9ydGVkIGJ5IERhbmllbCBOb3VyaSA8ZHB1bmt0bnB1bmt0QHdlYi5kZT4gKi8KVU5VU1VBTF9ERVYoICAweDA0ZTYsIDB4MDAwNiwgMHgwMjA1LCAweDAyMDUsIAoJCSJTaHV0dGxlIiwKCQkiZVVTQiBNTUMgQWRhcHRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfREVWSUNFLCBOVUxMLCAKCQlVU19GTF9TSU5HTEVfTFVOKSwgCgpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMDA3LCAweDAxMDAsIDB4MDIwMCwgCgkJIlNvbnkiLAoJCSJIaWZkIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9DQiwgTlVMTCwgCgkJVVNfRkxfU0lOR0xFX0xVTiksIAoKVU5VU1VBTF9ERVYoICAweDA0ZTYsIDB4MDAwOSwgMHgwMjAwLCAweDAyMDAsIAoJCSJTaHV0dGxlIiwKCQkiZVVTQiBBVEEvQVRBUEkgQWRhcHRlciIsCgkJVVNfU0NfODAyMCwgVVNfUFJfQ0IsIE5VTEwsIDApLAoKVU5VU1VBTF9ERVYoICAweDA0ZTYsIDB4MDAwYSwgMHgwMjAwLCAweDAyMDAsIAoJCSJTaHV0dGxlIiwKCQkiZVVTQiBDb21wYWN0Rmxhc2ggQWRhcHRlciIsCgkJVVNfU0NfODAyMCwgVVNfUFJfQ0IsIE5VTEwsIDApLAoKVU5VU1VBTF9ERVYoICAweDA0ZTYsIDB4MDAwQiwgMHgwMTAwLCAweDAxMDAsIAoJCSJTaHV0dGxlIiwKCQkiZVVTQ1NJIEJyaWRnZSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQlVMSywgdXNiX3N0b3JfZXVzY3NpX2luaXQsIAoJCVVTX0ZMX1NDTV9NVUxUX1RBUkcgKSwgCgpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMDBDLCAweDAxMDAsIDB4MDEwMCwgCgkJIlNodXR0bGUiLAoJCSJlVVNDU0kgQnJpZGdlIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9CVUxLLCB1c2Jfc3Rvcl9ldXNjc2lfaW5pdCwgCgkJVVNfRkxfU0NNX01VTFRfVEFSRyApLCAKClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDAxMDEsIDB4MDIwMCwgMHgwMjAwLCAKCQkiU2h1dHRsZSIsCgkJIkNELVJXIERldmljZSIsCgkJVVNfU0NfODAyMCwgVVNfUFJfQ0IsIE5VTEwsIDApLAoKLyogRW50cnkgYW5kIHN1cHBvcnRpbmcgcGF0Y2ggYnkgVGhlb2RvcmUgS2lsZ29yZSA8a2lsZ290YUBhdWJ1cm4uZWR1Pi4KICogRGV2aWNlIHVzZXMgc3RhbmRhcmRzLXZpb2xhdGluZyAzMi1ieXRlIEJ1bGsgQ29tbWFuZCBCbG9jayBXcmFwcGVycyBhbmQKICogcmVwb3J0cyBpdHNlbGYgYXMgIlByb3ByaWV0YXJ5IFNDU0kgQnVsay4iIENmLiBkZXZpY2UgZW50cnkgMHgwODRkOjB4MDAxMS4KICovCgpVTlVTVUFMX0RFViggIDB4MDRmYywgMHg4MGMyLCAweDAxMDAsIDB4MDEwMCwKCQkiS29iaWFuIE1lcmN1cnkiLAoJCSJCaW5vY2FtIERDQi0xMzIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0JVTEszMiksCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX1VTQkFUClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDEwMTAsIDB4MDAwMCwgMHg5OTk5LAoJCSJTQ00iLAoJCSJTQ00gVVNCQVQtMDIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX1NDTV9BVEFQSSwgaW5pdF91c2JhdCwKCQlVU19GTF9TSU5HTEVfTFVOKSwKI2VuZGlmCgovKiBSZXBvcnRlZCBieSBCb2IgU2FzcyA8cmxzQHZlY3RvcmRiLmNvbT4gLS0gb25seSByZXYgMS4zMyB0ZXN0ZWQgKi8KVU5VU1VBTF9ERVYoICAweDA1MGQsIDB4MDExNSwgMHgwMTMzLCAweDAxMzMsCgkJIkJlbGtpbiIsCgkJIlVTQiBTQ1NJIEFkYXB0b3IiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0JVTEssIHVzYl9zdG9yX2V1c2NzaV9pbml0LAoJCVVTX0ZMX1NDTV9NVUxUX1RBUkcgKSwKCi8qIElvbWVnYSBDbGlrISBEcml2ZSAKICogUmVwb3J0ZWQgYnkgRGF2aWQgQ2hhdGVuYXkgPGRjaGF0ZW5heUBob3RtYWlsLmNvbT4KICogVGhlIHJlYXNvbiB0aGlzIGlzIG5lZWRlZCBpcyBub3QgZnVsbHkga25vd24uCiAqLwpVTlVTVUFMX0RFViggIDB4MDUyNSwgMHhhMTQwLCAweDAxMDAsIDB4MDEwMCwKCQkiSW9tZWdhIiwKCQkiVVNCIENsaWshIDQwIiwKCQlVU19TQ184MDcwLCBVU19QUl9CVUxLLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZICksCgovKiBZYWt1bW8gTWVnYSBJbWFnZSAzNwogKiBTdWJtaXR0ZWQgYnkgU3RlcGhhbiBGdWhybWFubiA8YXRvbWVuZXJnaWVAdC1vbmxpbmUuZGU+ICovClVOVVNVQUxfREVWKCAgMHgwNTJiLCAweDE4MDEsIDB4MDEwMCwgMHgwMTAwLAoJCSJUZWtvbSBUZWNobm9sb2dpZXMsIEluYyIsCgkJIjMwMF9DQU1FUkEiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBBbm90aGVyIFlha3VtbyBjYW1lcmEuCiAqIFJlcG9ydGVkIGJ5IE1pY2hlbGUgQWx6ZXR0YSA8bWljaGVsZS5hbHpldHRhQGFsaWNlcG9zdGEuaXQ+ICovClVOVVNVQUxfREVWKCAgMHgwNTJiLCAweDE4MDQsIDB4MDEwMCwgMHgwMTAwLAoJCSJUZWtvbSBUZWNobm9sb2dpZXMsIEluYyIsCgkJIjMwMF9DQU1FUkEiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBSZXBvcnRlZCBieSBJYWNvcG8gU3BhbGxldHRpIDxhdnZpc2lAc3BhbGxldHRpLml0PiAqLwpVTlVTVUFMX0RFViggIDB4MDUyYiwgMHgxODA3LCAweDAxMDAsIDB4MDEwMCwKCQkiVGVrb20gVGVjaG5vbG9naWVzLCBJbmMiLAoJCSIzMDBfQ0FNRVJBIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSApLAoKLyogWWFrdW1vIE1lZ2EgSW1hZ2UgNDcKICogUmVwb3J0ZWQgYnkgQmpvZXJuIFBhZXR6ZWwgPGtvbHJhYmlAa29scmFiaS5kZT4gKi8KVU5VU1VBTF9ERVYoICAweDA1MmIsIDB4MTkwNSwgMHgwMTAwLCAweDAxMDAsCgkJIlRla29tIFRlY2hub2xvZ2llcywgSW5jIiwKCQkiNDAwX0NBTUVSQSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFJlcG9ydGVkIGJ5IFBhdWwgT3J0eWwgPG9ydHlscEAzbWlhc3RvLm5ldD4KICogTm90ZSB0aGF0IGl0J3Mgc2ltaWxhciB0byB0aGUgZGV2aWNlIGFib3ZlLCBvbmx5IGRpZmZlcmVudCBwcm9kSUQgKi8KVU5VU1VBTF9ERVYoICAweDA1MmIsIDB4MTkxMSwgMHgwMTAwLCAweDAxMDAsCgkJIlRla29tIFRlY2hub2xvZ2llcywgSW5jIiwKCQkiNDAwX0NBTUVSQSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAwMTAsIDB4MDEwNiwgMHgwNDUwLCAKCQkiU29ueSIsCgkJIkRTQy1TMzAvUzcwL1M3NS81MDVWL0Y1MDUvRjcwNy9GNzE3L1A4IiwgCgkJVVNfU0NfU0NTSSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4gfCBVU19GTF9OT1RfTE9DS0FCTEUgfCBVU19GTF9OT19XUF9ERVRFQ1QgKSwKCi8qIFRoaXMgZW50cnkgaXMgbmVlZGVkIGJlY2F1c2UgdGhlIGRldmljZSByZXBvcnRzIFN1Yj1mZiAqLwpVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDEwLCAweDA1MDAsIDB4MDUwMCwgCiAgICAgICAgICAgICAgICJTb255IiwKICAgICAgICAgICAgICAgIkRTQy1UMSIsIAogICAgICAgICAgICAgICBVU19TQ184MDcwLCBVU19QUl9ERVZJQ0UsIE5VTEwsCiAgICAgICAgICAgICAgIFVTX0ZMX1NJTkdMRV9MVU4gKSwKCgovKiBSZXBvcnRlZCBieSB3aW1AZ2Vla3MubmwgKi8KVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDAyNSwgMHgwMTAwLCAweDAxMDAsIAoJCSJTb255IiwKCQkiTWVtb3J5c3RpY2sgTlctTVM3IiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0lTRDIwMApVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDJiLCAweDAxMDAsIDB4MDExMCwKCQkiU29ueSIsCgkJIlBvcnRhYmxlIFVTQiBIYXJkZHJpdmUgVjIiLAoJCVVTX1NDX0lTRDIwMCwgVVNfUFJfQlVMSywgaXNkMjAwX0luaXRpYWxpemF0aW9uLAoJCTAgKSwKI2VuZGlmCgovKiBTdWJtaXR0ZWQgYnkgT2xhZiBIZXJpbmcsIDxvbGhAc3VzZS5kZT4gU3VTRSBCdWd6aWxsYSAjNDkwNDkgKi8KVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDAyYywgMHgwNTAxLCAweDA1MDEsCgkJIlNvbnkiLAoJCSJVU0IgRmxvcHB5IERyaXZlIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCgpVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDJkLCAweDAxMDAsIDB4MDEwMCwgCgkJIlNvbnkiLAoJCSJNZW1vcnlzdGljayBNU0FDLVVTMSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKLyogU3VibWl0dGVkIGJ5IEtsYXVzIE11ZWxsZXIgPGsubXVlbGxlckBpbnRlcnNob3AuZGU+ICovClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAwMmUsIDB4MDEwNiwgMHgwMzEwLCAKCQkiU29ueSIsCgkJIkhhbmR5Y2FtIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKLyogU3VibWl0dGVkIGJ5IFJhamVzaCBLdW1ibGUgTmF5YWsgPG5heWFrQG9icy1uaWNlLmZyPiAqLwpVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDJlLCAweDA1MDAsIDB4MDUwMCwgCgkJIlNvbnkiLAoJCSJIYW5keWNhbSBIQy04NSIsCgkJVVNfU0NfVUZJLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDAzMiwgMHgwMDAwLCAweDk5OTksCgkJIlNvbnkiLAoJCSJNZW1vcnlzdGljayBNU0MtVTAxTiIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKLyogU3VibWl0dGVkIGJ5IE1pY2hhbCBNbG90ZWsgPG1sb3Rla0Bmb29iYXIucGw+ICovClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAwNTgsIDB4MDAwMCwgMHg5OTk5LAoJCSJTb255IiwKCQkiUEVHIE43NjBjIE1lbW9yeXN0aWNrIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfSU5RVUlSWSApLAoJCQpVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDY5LCAweDAwMDAsIDB4OTk5OSwKCQkiU29ueSIsCgkJIk1lbW9yeXN0aWNrIE1TQy1VMDMiLAoJCVVTX1NDX1VGSSwgVVNfUFJfQ0IsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKLyogU3VibWl0dGVkIGJ5IE5hdGhhbiBCYWJiIDxuYXRoYW5AbGV4aS5jb20+ICovClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAwNmQsIDB4MDAwMCwgMHg5OTk5LAoJCSJTb255IiwKCQkiUEVHIE1hc3MgU3RvcmFnZSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKCi8qIFN1Ym1pdHRlZCBieSBNaWtlIEFsYm9ybiA8bWFsYm9ybkBkZWFuZHJhLmhvbWVpcC5uZXQ+ICovClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAxNmEsIDB4MDAwMCwgMHg5OTk5LAoJCSJTb255IiwKCQkiUEVHIE1hc3MgU3RvcmFnZSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKCQkKLyogU3VibWl0dGVkIGJ5IEZyYW5rIEVuZ2VsIDxmcmFua2llQGNzZS51bnN3LmVkdS5hdT4gKi8KVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDA5OSwgMHgwMDAwLCAweDk5OTksCiAgICAgICAgICAgICAgICAiU29ueSIsCiAgICAgICAgICAgICAgICAiUEVHIE1hc3MgU3RvcmFnZSIsCiAgICAgICAgICAgICAgICBVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKICAgICAgICAgICAgICAgIFVTX0ZMX0ZJWF9JTlFVSVJZICksCgoJCQpVTlVTVUFMX0RFViggIDB4MDU3YiwgMHgwMDAwLCAweDAwMDAsIDB4MDI5OSwgCgkJIlktRSBEYXRhIiwKCQkiRmxhc2hidXN0ZXItVSIsCgkJVVNfU0NfREVWSUNFLCAgVVNfUFJfQ0IsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiksCgpVTlVTVUFMX0RFViggIDB4MDU3YiwgMHgwMDAwLCAweDAzMDAsIDB4OTk5OSwgCgkJIlktRSBEYXRhIiwKCQkiRmxhc2hidXN0ZXItVSIsCgkJVVNfU0NfREVWSUNFLCAgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4pLAoKLyogUmVwb3J0ZWQgYnkgSm9oYW5uIENhcmRvbiA8am9oYW5uLmNhcmRvbkBmcmVlLmZyPgogKiBUaGlzIGVudHJ5IGlzIG5lZWRlZCBvbmx5IGJlY2F1c2UgdGhlIGRldmljZSByZXBvcnRzCiAqIGJJbnRlcmZhY2VDbGFzcyA9IDB4ZmYgKHZlbmRvci1zcGVjaWZpYykKICovClVOVVNVQUxfREVWKCAgMHgwNTdiLCAweDAwMjIsIDB4MDAwMCwgMHg5OTk5LCAKCQkiWS1FIERhdGEiLAoJCSJTaWxpY29uIE1lZGlhIFIvVyIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsIDApLAoKLyogRmFicml6aW8gRmVsbGluaSA8ZmVsbG9AbGliZXJvLml0PiAqLwpVTlVTVUFMX0RFViggIDB4MDU5NSwgMHg0MzQzLCAweDAwMDAsIDB4MjIxMCwKCQkiRnVqaWZpbG0iLAoJCSJEaWdpdGFsIENhbWVyYSBFWC0yMCBEU0MiLAoJCVVTX1NDXzgwNzAsIFVTX1BSX0RFVklDRSwgTlVMTCwgMCApLAoKLyogVGhlIGVudHJ5IHdhcyBoZXJlIGJlZm9yZSBJIHRvb2sgb3ZlciwgYW5kIGhhZCBVU19TQ19SQkMuIEl0IHR1cm5zCiAqIG91dCB0aGF0IGlzbid0IG5lZWRlZC4gQWRkaXRpb25hbGx5LCBUb3JzdGVuIEVyaWtzc29uCiAqIDxUb3JzdGVuLkVyaWtzc29uQGJlcmdpYW5za2Euc2U+IGlzIGFibGUgdG8gdXNlIGhpcyBkZXZpY2UgZmluZQogKiB3aXRob3V0IHRoaXMgZW50cnkgYXQgYWxsIC0gYnV0IEkgZG9uJ3Qgc3VzcGVjdCB0aGF0IHdpbGwgYmUgdHJ1ZQogKiBmb3IgYWxsIHVzZXJzICh0aGUgcHJvdG9jb2wgaXMgbGlrZWx5IG5lZWRlZCksIHNvIGlzIHN0YXlpbmcgYXQKICogdGhpcyB0aW1lLiAtIFBoaWwgRGlib3dpdHogPHBoaWxAaXBvbS5jb20+CiAqLwpVTlVTVUFMX0RFViggIDB4MDU5ZiwgMHhhNjAxLCAweDAyMDAsIDB4MDIwMCwgCgkJIkxhQ2llIiwKCQkiVVNCIEhhcmQgRGlzayIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9DQiwgTlVMTCwgMCApLAoKLyogU3VibWl0dGVkIGJ5IEpvZWwgQm91cnF1YXJkIDxudW1sb2NrQGZyZWVzdXJmLmNoPgogKiBTb21lIHZlcnNpb25zIG9mIHRoaXMgZGV2aWNlIG5lZWQgdGhlIFN1YkNsYXNzIGFuZCBQcm90b2NvbCBvdmVycmlkZXMKICogd2hpbGUgb3RoZXJzIGRvbid0LgogKi8KVU5VU1VBTF9ERVYoICAweDA1YWIsIDB4MDA2MCwgMHgxMTA0LCAweDExMTAsCgkJIkluLVN5c3RlbSIsCgkJIlB5cm9HYXRlIEV4dGVybmFsIENELVJPTSBFbmNsb3N1cmUgKEZDRC01MjMpIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9CVUxLLCBOVUxMLAoJCVVTX0ZMX05FRURfT1ZFUlJJREUgKSwKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfSVNEMjAwClVOVVNVQUxfREVWKCAgMHgwNWFiLCAweDAwMzEsIDB4MDEwMCwgMHgwMTEwLAoJCSJJbi1TeXN0ZW0iLAoJCSJVU0IvSURFIEJyaWRnZSAoQVRBL0FUQVBJKSIsCgkJVVNfU0NfSVNEMjAwLCBVU19QUl9CVUxLLCBpc2QyMDBfSW5pdGlhbGl6YXRpb24sCgkJMCApLAoKVU5VU1VBTF9ERVYoICAweDA1YWIsIDB4MDMwMSwgMHgwMTAwLCAweDAxMTAsCgkJIkluLVN5c3RlbSIsCgkJIlBvcnRhYmxlIFVTQiBIYXJkZHJpdmUgVjIiLAoJCVVTX1NDX0lTRDIwMCwgVVNfUFJfQlVMSywgaXNkMjAwX0luaXRpYWxpemF0aW9uLAoJCTAgKSwKClVOVVNVQUxfREVWKCAgMHgwNWFiLCAweDAzNTEsIDB4MDEwMCwgMHgwMTEwLAoJCSJJbi1TeXN0ZW0iLAoJCSJQb3J0YWJsZSBVU0IgSGFyZGRyaXZlIFYyIiwKCQlVU19TQ19JU0QyMDAsIFVTX1BSX0JVTEssIGlzZDIwMF9Jbml0aWFsaXphdGlvbiwKCQkwICksCgpVTlVTVUFMX0RFViggIDB4MDVhYiwgMHg1NzAxLCAweDAxMDAsIDB4MDExMCwKCQkiSW4tU3lzdGVtIiwKCQkiVVNCIFN0b3JhZ2UgQWRhcHRlciBWMiIsCgkJVVNfU0NfSVNEMjAwLCBVU19QUl9CVUxLLCBpc2QyMDBfSW5pdGlhbGl6YXRpb24sCgkJMCApLAojZW5kaWYKCi8qIFJlcG9ydGVkIGJ5IEF2aSBLaXZpdHkgPGF2aUBhcmdvLmNvLmlsPiAqLwpVTlVTVUFMX0RFViggMHgwNWFjLCAweDEyMDMsIDB4MDAwMSwgMHgwMDAxLAoJCSJBcHBsZSIsCgkJImlQb2QiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSApLAoKVU5VU1VBTF9ERVYoIDB4MDVhYywgMHgxMjA1LCAweDAwMDEsIDB4MDAwMSwKCQkiQXBwbGUiLAoJCSJpUG9kIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkgKSwKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1QKVU5VU1VBTF9ERVYoICAweDA1ZGMsIDB4MDAwMSwgMHgwMDAwLCAweDAwMDEsCgkJIkxleGFyIiwKCQkiSnVtcHNob3QgVVNCIENGIFJlYWRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfSlVNUFNIT1QsIE5VTEwsCgkJVVNfRkxfTkVFRF9PVkVSUklERSApLAojZW5kaWYKCi8qIFJlcG9ydGVkIGJ5IEJsYWtlIE1hdGhlbnkgPGJtYXRoZW55QHB1cmR1ZS5lZHU+ICovClVOVVNVQUxfREVWKCAgMHgwNWRjLCAweGIwMDIsIDB4MDAwMCwgMHgwMTEzLAoJCSJMZXhhciIsCgkJIlVTQiBDRiBSZWFkZXIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZICksCgovKiBUaGUgZm9sbG93aW5nIHR3byBlbnRyaWVzIGFyZSBmb3IgYSBHZW5lc3lzIFVTQiB0byBJREUKICogY29udmVydGVyIGNoaXAsIGJ1dCBpdCBjaGFuZ2VzIGl0cyBQcm9kdWN0SWQgZGVwZW5kaW5nCiAqIG9uIHdoZXRoZXIgb3Igbm90IGEgZGlzayBvciBhbiBvcHRpY2FsIGRldmljZSBpcyBlbmNsb3NlZAogKiBUaGV5IHdlcmUgb3JpZ2luYWxseSByZXBvcnRlZCBieSBBbGV4YW5kZXIgT2x0dQogKiA8YWxleGFuZGVyQGFsbC0yLmNvbT4gYW5kIFBldGVyIE1hcmtzIDxwZXRlci5tYXJrc0B0dXJuZXIuY29tPgogKiByZXNwZWN0aXZlbHkuCiAqLwpVTlVTVUFMX0RFViggIDB4MDVlMywgMHgwNzAxLCAweDAwMDAsIDB4ZmZmZiwKCQkiR2VuZXN5cyBMb2dpYyIsCgkJIlVTQiB0byBJREUgT3B0aWNhbCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfR09fU0xPVyApLAoKVU5VU1VBTF9ERVYoICAweDA1ZTMsIDB4MDcwMiwgMHgwMDAwLCAweGZmZmYsCgkJIkdlbmVzeXMgTG9naWMiLAoJCSJVU0IgdG8gSURFIERpc2siLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0dPX1NMT1cgKSwKCi8qIFJlcG9ydGVkIGJ5IEhhbm5vIEJvZWNrIDxoYW5ub0BnbXguZGU+CiAqIFRha2VuIGZyb20gdGhlIEx5Y29yaXMgS2VybmVsICovClVOVVNVQUxfREVWKCAgMHgwNjM2LCAweDAwMDMsIDB4MDAwMCwgMHg5OTk5LAoJCSJWaXZpdGFyIiwKCQkiVml2aWNhbSAzNVh4IiwKCQlVU19TQ19TQ1NJLCBVU19QUl9CVUxLLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZICksCgpVTlVTVUFMX0RFViggIDB4MDY0NCwgMHgwMDAwLCAweDAxMDAsIDB4MDEwMCwgCgkJIlRFQUMiLAoJCSJGbG9wcHkgRHJpdmUiLAoJCVVTX1NDX1VGSSwgVVNfUFJfQ0IsIE5VTEwsIDAgKSwgCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX1NERFIwOQpVTlVTVUFMX0RFViggIDB4MDY2YiwgMHgwMTA1LCAweDAxMDAsIDB4MDEwMCwgCgkJIk9seW1wdXMiLAoJCSJDYW1lZGlhIE1BVVNCLTIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0VVU0JfU0REUjA5LCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4gKSwKI2VuZGlmCgovKiBSZXBvcnRlZCBieSBEYXJzZW4gTHUgPGRhcnNlbkBtaWNyby5lZS5udGh1LmVkdS50dz4gKi8KVU5VU1VBTF9ERVYoIDB4MDY2ZiwgMHg4MDAwLCAweDAwMDEsIDB4MDAwMSwKCQkiU2lnbWFUZWwiLAoJCSJVU0JNU0MgQXVkaW8gUGxheWVyIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkgKSwKCi8qIFJlcG9ydGVkIGJ5IFJpY2hhcmQgLT1bXT0tIDxtaWNyb19mbHllckBob3RtYWlsLmNvbT4gKi8KVU5VU1VBTF9ERVYoIDB4MDY3YiwgMHgyNTA3LCAweDAxMDAsIDB4MDEwMCwKCQkiUHJvbGlmaWMgVGVjaG5vbG9neSBJbmMuIiwKCQkiTWFzcyBTdG9yYWdlIERldmljZSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZIHwgVVNfRkxfR09fU0xPVyApLAoKLyogUmVwb3J0ZWQgYnkgQWxleCBCdXRjaGVyIDxhbGV4LmJ1dGNoZXJAYXNzdXJzeXMuY28udWs+ICovClVOVVNVQUxfREVWKCAweDA2N2IsIDB4MzUwNywgMHgwMDAxLCAweDAwMDEsCgkJIlByb2xpZmljIFRlY2hub2xvZ3kgSW5jLiIsCgkJIkFUQVBJLTYgQnJpZGdlIENvbnRyb2xsZXIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSB8IFVTX0ZMX0dPX1NMT1cgKSwKCi8qIFN1Ym1pdHRlZCBieSBCZW5ueSBTam9zdHJhbmQgPGJlbm55QGhvc3Rtb2JpbGl0eS5jb20+ICovClVOVVNVQUxfREVWKCAweDA2ODYsIDB4NDAxMSwgMHgwMDAxLCAweDAwMDEsCgkJIk1pbm9sdGEiLAoJCSJEaW1hZ2UgRjMwMCIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQlVMSywgTlVMTCwgMCApLAoKLyogUmVwb3J0ZWQgYnkgTWlndWVsIEEuIEZvc2FzIDxhbW4zczFhQG9uby5jb20+ICovClVOVVNVQUxfREVWKCAgMHgwNjg2LCAweDQwMTcsIDB4MDAwMSwgMHgwMDAxLAogICAgICAgICAgICAgICAgIk1pbm9sdGEiLAogICAgICAgICAgICAgICAgIkRJTUFHRSBFMjIzIiwKICAgICAgICAgICAgICAgIFVTX1NDX1NDU0ksIFVTX1BSX0RFVklDRSwgTlVMTCwgMCApLAoKVU5VU1VBTF9ERVYoICAweDA2OTMsIDB4MDAwMiwgMHgwMTAwLCAweDAxMDAsIAoJCSJIYWdpd2FyYSIsCgkJIkZsYXNoR2F0ZSBTbWFydE1lZGlhIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9CVUxLLCBOVUxMLCAwICksCgpVTlVTVUFMX0RFViggIDB4MDY5MywgMHgwMDA1LCAweDAxMDAsIDB4MDEwMCwKCQkiSGFnaXdhcmEiLAoJCSJGbGFzaGdhdGUiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0JVTEssIE5VTEwsIDAgKSwgCgpVTlVTVUFMX0RFViggIDB4MDc4MSwgMHgwMDAxLCAweDAyMDAsIDB4MDIwMCwgCgkJIlNhbmRpc2siLAoJCSJJbWFnZU1hdGUgU0REUi0wNWEiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0NCLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4gKSwKClVOVVNVQUxfREVWKCAgMHgwNzgxLCAweDAxMDAsIDB4MDEwMCwgMHgwMTAwLAoJCSJTYW5kaXNrIiwKCQkiSW1hZ2VNYXRlIFNERFItMTIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0NCLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4gKSwKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjA5ClVOVVNVQUxfREVWKCAgMHgwNzgxLCAweDAyMDAsIDB4MDAwMCwgMHg5OTk5LCAKCQkiU2FuZGlzayIsCgkJIkltYWdlTWF0ZSBTRERSLTA5IiwKCQlVU19TQ19TQ1NJLCBVU19QUl9FVVNCX1NERFIwOSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCiNlbmRpZgoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9GUkVFQ09NClVOVVNVQUxfREVWKCAgMHgwN2FiLCAweGZjMDEsIDB4MDAwMCwgMHg5OTk5LAoJCSJGcmVlY29tIiwKCQkiVVNCLUlERSIsCgkJVVNfU0NfUUlDLCBVU19QUl9GUkVFQ09NLCBmcmVlY29tX2luaXQsIDApLAojZW5kaWYKCi8qIFJlcG9ydGVkIGJ5IEVlcm8gVm9sb3RpbmVuIDxlZXJvQHBpbmctdmlpbmkub3JnPiAqLwpVTlVTVUFMX0RFViggIDB4MDdhYiwgMHhmY2NkLCAweDA0MDYsIDB4MDQwNiwKCQkiRnJlZWNvbSBUZWNobm9sb2dpZXMiLAoJCSJGSEQtQ2xhc3NpYyIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZKSwKClVOVVNVQUxfREVWKCAgMHgwN2FmLCAweDAwMDQsIDB4MDEwMCwgMHgwMTMzLCAKCQkiTWljcm90ZWNoIiwKCQkiVVNCLVNDU0ktREIyNSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQlVMSywgdXNiX3N0b3JfZXVzY3NpX2luaXQsCgkJVVNfRkxfU0NNX01VTFRfVEFSRyApLCAKClVOVVNVQUxfREVWKCAgMHgwN2FmLCAweDAwMDUsIDB4MDEwMCwgMHgwMTAwLCAKCQkiTWljcm90ZWNoIiwKCQkiVVNCLVNDU0ktSEQ1MCIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQlVMSywgdXNiX3N0b3JfZXVzY3NpX2luaXQsCgkJVVNfRkxfU0NNX01VTFRfVEFSRyApLCAKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfRFBDTQpVTlVTVUFMX0RFViggIDB4MDdhZiwgMHgwMDA2LCAweDAxMDAsIDB4MDEwMCwKCQkiTWljcm90ZWNoIiwKCQkiQ2FtZXJhTWF0ZSAoRFBDTV9VU0IpIiwKIAkJVVNfU0NfU0NTSSwgVVNfUFJfRFBDTV9VU0IsIE5VTEwsIDAgKSwKI2VuZGlmCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0RBVEFGQUIKVU5VU1VBTF9ERVYoICAweDA3YzQsIDB4YTAwMCwgMHgwMDAwLCAweDAwMTUsCgkJIkRhdGFmYWIiLAoJCSJNRENGRS1CIFVTQiBDRiBSZWFkZXIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0RBVEFGQUIsIE5VTEwsCgkJMCApLAoKLyoKICogVGhlIGZvbGxvd2luZyBEYXRhZmFiLWJhc2VkIGRldmljZXMgbWF5IG9yIG1heSBub3Qgd29yawogKiB1c2luZyB0aGUgY3VycmVudCBkcml2ZXIuLi50aGUgMHhmZmZmIGlzIGFyYml0cmFyeSBzaW5jZSBJCiAqIGRvbid0IGtub3cgd2hhdCBkZXZpY2UgdmVyc2lvbnMgZXhpc3QgZm9yIHRoZXNlIGd1eXMuCiAqCiAqIFRoZSAweGEwMDMgYW5kIDB4YTAwNCBkZXZpY2VzIGluIHBhcnRpY3VsYXIgSSdtIGN1cmlvdXMgYWJvdXQuCiAqIEknbSB0b2xkIHRoZXkgZXhpc3QgYnV0IHNvIGZhciBub2JvZHkgaGFzIGNvbWUgZm9yd2FyZCB0byBzYXkgdGhhdAogKiB0aGV5IHdvcmsgd2l0aCB0aGlzIGRyaXZlci4gIEdpdmVuIHRoZSBzdWNjZXNzIHdlJ3ZlIGhhZCBnZXR0aW5nCiAqIG90aGVyIERhdGFmYWItYmFzZWQgY2FyZHMgb3BlcmF0aW9uYWwgd2l0aCB0aGlzIGRyaXZlciwgSSd2ZSBkZWNpZGVkCiAqIHRvIGxlYXZlIHRoZXNlIHR3byBkZXZpY2VzIGluIHRoZSBsaXN0LgogKi8KVU5VU1VBTF9ERVYoIDB4MDdjNCwgMHhhMDAxLCAweDAwMDAsIDB4ZmZmZiwKCQkiU0lJRy9EYXRhZmFiIiwKCQkiU0lJRy9EYXRhZmFiIE1lbW9yeSBTdGljaytDRiBSZWFkZXIvV3JpdGVyIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9EQVRBRkFCLCBOVUxMLAoJCTAgKSwKCi8qIFJlcG9ydGVkIGJ5IEpvc2VmIFJlaXNpbmdlciA8am9zZWYucmVpc2luZ2VyQG5ldGNvbG9nbmUuZGU+ICovClVOVVNVQUxfREVWKCAweDA3YzQsIDB4YTAwMiwgMHgwMDAwLCAweGZmZmYsCgkJIkRhdGFmYWIvVW5rbm93biIsCgkJIk1EMi9NRDMgRGlzayBlbmNsb3N1cmUiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0RBVEFGQUIsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKVU5VU1VBTF9ERVYoIDB4MDdjNCwgMHhhMDAzLCAweDAwMDAsIDB4ZmZmZiwKCQkiRGF0YWZhYi9Vbmtub3duIiwKCQkiRGF0YWZhYi1iYXNlZCBSZWFkZXIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0RBVEFGQUIsIE5VTEwsCgkJMCApLAoKVU5VU1VBTF9ERVYoIDB4MDdjNCwgMHhhMDA0LCAweDAwMDAsIDB4ZmZmZiwKCQkiRGF0YWZhYi9Vbmtub3duIiwKCQkiRGF0YWZhYi1iYXNlZCBSZWFkZXIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0RBVEFGQUIsIE5VTEwsCgkJMCApLAoKVU5VU1VBTF9ERVYoIDB4MDdjNCwgMHhhMDA1LCAweDAwMDAsIDB4ZmZmZiwKCQkiUE5ZL0RhdGFmYWIiLAoJCSJQTlkvRGF0YWZhYiBDRitTTSBSZWFkZXIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0RBVEFGQUIsIE5VTEwsCgkJMCApLAoKVU5VU1VBTF9ERVYoIDB4MDdjNCwgMHhhMDA2LCAweDAwMDAsIDB4ZmZmZiwKCQkiU2ltcGxlIFRlY2gvRGF0YWZhYiIsCgkJIlNpbXBsZSBUZWNoL0RhdGFmYWIgQ0YrU00gUmVhZGVyIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9EQVRBRkFCLCBOVUxMLAoJCTAgKSwKI2VuZGlmCgkJCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjU1Ci8qIENvbnRyaWJ1dGVkIGJ5IFBldGVyIFdhZWNodGxlciAqLwpVTlVTVUFMX0RFViggMHgwN2M0LCAweGExMDMsIDB4MDAwMCwgMHg5OTk5LAoJCSJEYXRhZmFiIiwKCQkiTURTTS1CIHJlYWRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfU0REUjU1LCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZICksCiNlbmRpZgoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9EQVRBRkFCCi8qIFN1Ym1pdHRlZCBieSBPbGFmIEhlcmluZyA8b2xoQHN1c2UuZGU+ICovClVOVVNVQUxfREVWKCAgMHgwN2M0LCAweGExMDksIDB4MDAwMCwgMHhmZmZmLAoJCSJEYXRhZmFiIFN5c3RlbXMsIEluYy4iLAoJCSJVU0IgdG8gQ0YgKyBTTSBDb21ibyAoTEMxKSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfREFUQUZBQiwgTlVMTCwKCQkwICksCiNlbmRpZgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NQovKiBTTSBwYXJ0IC0gYWViIDxBbmRyaWVzLkJyb3V3ZXJAY3dpLm5sPiAqLwpVTlVTVUFMX0RFViggIDB4MDdjNCwgMHhhMTA5LCAweDAwMDAsIDB4ZmZmZiwKCQkiRGF0YWZhYiBTeXN0ZW1zLCBJbmMuIiwKCQkiVVNCIHRvIENGICsgU00gQ29tYm8gKExDMSkiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX1NERFI1NSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCiNlbmRpZgoKLyogRGF0YWZhYiBLRUNGLVVTQiAvIFNhZ2F0ZWsgRENTLUNGIC8gU2ltcGxldGVjaCBGbGFzaGxpbmsgVUNGLTEwMAogKiBPbmx5IHJldmlzaW9uIDEuMTMgdGVzdGVkIChzYW1lIGZvciBhbGwgb2YgdGhlIGFib3ZlIGRldmljZXMsCiAqIGJhc2VkIG9uIHRoZSBEYXRhZmFiIERGLVVHLTA3IGNoaXApLiAgTmVlZGVkIGZvciBVU19GTF9GSVhfSU5RVUlSWS4KICogU3VibWl0dGVkIGJ5IE1hcmVrIE1pY2hhbGtpZXdpY3ogPG1hcmVrbUBhbWVsZWsuZ2RhLnBsPi4KICogU2VlIGFsc28gaHR0cDovL21hcnRpbi53aWxjay5iZWkudC1vbmxpbmUuZGUvI2tlY2YgLgogKi8KVU5VU1VBTF9ERVYoICAweDA3YzQsIDB4YTQwMCwgMHgwMDAwLCAweGZmZmYsCgkJIkRhdGFmYWIiLAoJCSJLRUNGLVVTQiIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKCi8qIENhc2lvIFFWIDJ4MDAvM3gwMC80MDAwLzgwMDAgZGlnaXRhbCBzdGlsbCBjYW1lcmFzIGFyZSBub3QgY29uZm9ybWFudAogKiB0byB0aGUgVVNCIHN0b3JhZ2Ugc3BlY2lmaWNhdGlvbiBpbiB0d28gd2F5czoKICogLSBUaGV5IHRlbGwgdXMgdGhleSBhcmUgdXNpbmcgdHJhbnNwb3J0IHByb3RvY29sIENCSS4gSW4gcmVhbGl0eSB0aGV5CiAqICAgYXJlIHVzaW5nIHRyYW5zcG9ydCBwcm90b2NvbCBDQi4KICogLSBUaGV5IGRvbid0IGxpa2UgdGhlIElOUVVJUlkgY29tbWFuZC4gU28gd2UgbXVzdCBoYW5kbGUgdGhpcyBjb21tYW5kCiAqICAgb2YgdGhlIFNDU0kgbGF5ZXIgb3Vyc2VsdmVzLgogKiAtIFNvbWUgY2FtZXJhcyB3aXRoIGlkUHJvZHVjdD0weDEwMDEgYW5kIGJjZERldmljZT0weDEwMDAgaGF2ZQogKiAgIGJJbnRlcmZhY2VQcm90b2NvbD0weDAwIChVU19QUl9DQkkpIHdoaWxlIG90aGVycyBoYXZlIDB4MDEgKFVTX1BSX0NCKS4KICogICBTbyBkb24ndCByZW1vdmUgdGhlIFVTX1BSX0NCIG92ZXJyaWRlIQogKiAtIENhbWVyYXMgd2l0aCBiY2REZXZpY2U9MHg5MDA5IHJlcXVpcmUgdGhlIFVTX1NDXzgwNzAgb3ZlcnJpZGUuCiAqLwpVTlVTVUFMX0RFViggMHgwN2NmLCAweDEwMDEsIDB4MTAwMCwgMHg5OTk5LAoJCSJDYXNpbyIsCgkJIlFWIERpZ2l0YWxDYW1lcmEiLAoJCVVTX1NDXzgwNzAsIFVTX1BSX0NCLCBOVUxMLAoJCVVTX0ZMX05FRURfT1ZFUlJJREUgfCBVU19GTF9GSVhfSU5RVUlSWSApLAoKLyogU3VibWl0dGVkIGJ5IEhhcnRtdXQgV2FobCA8aHdhaGxAaHdhaGwuZGU+Ki8KVU5VU1VBTF9ERVYoIDB4MDgzOSwgMHgwMDBhLCAweDAwMDEsIDB4MDAwMSwKCQkiU2Ftc3VuZyIsCgkJIkRpZ2ltYXggNDEwIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfSU5RVUlSWSksCgovKiBFbnRyeSBhbmQgc3VwcG9ydGluZyBwYXRjaCBieSBUaGVvZG9yZSBLaWxnb3JlIDxraWxnb3RhQGF1YnVybi5lZHU+LgogKiBGbGFnIHdpbGwgc3VwcG9ydCBCdWxrIGRldmljZXMgd2hpY2ggdXNlIGEgc3RhbmRhcmRzLXZpb2xhdGluZyAzMi1ieXRlCiAqIENvbW1hbmQgQmxvY2sgV3JhcHBlci4gSGVyZSwgdGhlICJEQzJNRUdBIiBjYW1lcmFzIChzZXZlcmFsIGJyYW5kcykgd2l0aAogKiBHcmFuZHRlY2ggR1Q4OTJ4IGNoaXAsIHdoaWNoIHJlcXVlc3QgIlByb3ByaWV0YXJ5IFNDU0kgQnVsayIgc3VwcG9ydC4KICovCgpVTlVTVUFMX0RFViggIDB4MDg0ZCwgMHgwMDExLCAweDAxMTAsIDB4MDExMCwKCQkiR3JhbmR0ZWNoIiwKCQkiREMyTUVHQSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfQlVMSzMyKSwKCgovKiBFbnRyeSBuZWVkZWQgZm9yIGZsYWdzLiBNb3Jlb3ZlciwgYWxsIGRldmljZXMgd2l0aCB0aGlzIElEIHVzZQogKiBidWxrLW9ubHkgdHJhbnNwb3J0LCBidXQgX3NvbWVfIGZhbHNlbHkgcmVwb3J0IENvbnRyb2wvQnVsayBpbnN0ZWFkLgogKiBPbmUgZXhhbXBsZSBpcyAiVHJ1bXBpb24gRGlnaXRhbCBSZXNlYXJjaCBNWU1QMyIuCiAqIFN1Ym1pdHRlZCBieSBCam9lcm4gQnJpbGwgPGJyaWxsKGF0KWZzLm1hdGgudW5pLWZyYW5rZnVydC5kZT4KICovClVOVVNVQUxfREVWKCAgMHgwOTBhLCAweDEwMDEsIDB4MDEwMCwgMHgwMTAwLAoJCSJUcnVtcGlvbiIsCgkJInQzMzUyMCBVU0IgRmxhc2ggQ2FyZCBDb250cm9sbGVyIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0JVTEssIE5VTEwsCgkJVVNfRkxfTkVFRF9PVkVSUklERSApLAoKLyogVHJ1bXBpb24gTWljcm9lbGVjdHJvbmljcyBNUDMgcGxheWVyIChmZWxpcGVfYWxmYXJvQGxpbnV4bWFpbC5vcmcpICovClVOVVNVQUxfREVWKCAweDA5MGEsIDB4MTIwMCwgMHgwMDAwLCAweDk5OTksCgkJIlRydW1waW9uIiwKCQkiTVAzIHBsYXllciIsCgkJVVNfU0NfUkJDLCBVU19QUl9CVUxLLCBOVUxMLAoJCTAgKSwKCi8qIGFlYiAqLwpVTlVTVUFMX0RFViggMHgwOTBjLCAweDExMzIsIDB4MDAwMCwgMHhmZmZmLAoJCSJGZWl5YSIsCgkJIjUtaW4tMSBDYXJkIFJlYWRlciIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZICksCgovKiBUaGlzIFBlbnRheCBzdGlsbCBjYW1lcmEgaXMgbm90IGNvbmZvcm1hbnQKICogdG8gdGhlIFVTQiBzdG9yYWdlIHNwZWNpZmljYXRpb246IC0KICogLSBJdCBkb2VzIG5vdCBsaWtlIHRoZSBJTlFVSVJZIGNvbW1hbmQuIFNvIHdlIG11c3QgaGFuZGxlIHRoaXMgY29tbWFuZAogKiAgIG9mIHRoZSBTQ1NJIGxheWVyIG91cnNlbHZlcy4KICogVGVzdGVkIG9uIFJldi4gMTAuMDAgKDB4MTAwMCkKICogU3VibWl0dGVkIGJ5IEphbWVzIENvdXJ0aWVyLUR1dHRvbiA8SmFtZXNAc3VwZXJidWcuZGVtb24uY28udWs+CiAqLwpVTlVTVUFMX0RFViggMHgwYTE3LCAweDAwMDQsIDB4MTAwMCwgMHgxMDAwLAogICAgICAgICAgICAgICAgIlBlbnRheCIsCiAgICAgICAgICAgICAgICAiT3B0aW8gMi8zLzQwMCIsCiAgICAgICAgICAgICAgICBVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKICAgICAgICAgICAgICAgIFVTX0ZMX0ZJWF9JTlFVSVJZICksCgoKLyogU3VibWl0dGVkIGJ5IFBlciBXaW5rdmlzdCA8cGVyLndpbmt2aXN0QHVrLmNvbT4gKi8KVU5VU1VBTF9ERVYoIDB4MGExNywgMHgwMDYsIDB4MDAwMCwgMHhmZmZmLAogICAgICAgICAgICAgICAgIlBlbnRheCIsCiAgICAgICAgICAgICAgICAiT3B0aW8gUy9TNCIsCiAgICAgICAgICAgICAgICBVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKICAgICAgICAgICAgICAgIFVTX0ZMX0ZJWF9JTlFVSVJZICksCgkJCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfSVNEMjAwClVOVVNVQUxfREVWKCAgMHgwYmY2LCAweGEwMDEsIDB4MDEwMCwgMHgwMTEwLAoJCSJBVEkiLAoJCSJVU0IgQ2FibGUgMjA1IiwKCQlVU19TQ19JU0QyMDAsIFVTX1BSX0JVTEssIGlzZDIwMF9Jbml0aWFsaXphdGlvbiwKCQkwICksCiNlbmRpZgoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9EQVRBRkFCClVOVVNVQUxfREVWKCAweDBjMGIsIDB4YTEwOSwgMHgwMDAwLCAweGZmZmYsCgkgICAgICAgIkFjb21kYXRhIiwKCSAgICAgICAiQ0YiLAoJICAgICAgIFVTX1NDX1NDU0ksIFVTX1BSX0RBVEFGQUIsIE5VTEwsCgkgICAgICAgVVNfRkxfU0lOR0xFX0xVTiApLAojZW5kaWYKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUKVU5VU1VBTF9ERVYoIDB4MGMwYiwgMHhhMTA5LCAweDAwMDAsIDB4ZmZmZiwKCSAgICAgICAiQWNvbWRhdGEiLAoJICAgICAgICJTTSIsCgkgICAgICAgVVNfU0NfU0NTSSwgVVNfUFJfU0REUjU1LCBOVUxMLAoJICAgICAgIFVTX0ZMX1NJTkdMRV9MVU4gKSwKI2VuZGlmCgovKiBTdWJtaXR0ZWQgYnkgSm9yaXMgU3RydXl2ZSA8am9yaXNAc3RydXl2ZS5iZT4gKi8KVU5VU1VBTF9ERVYoIDB4MGQ5NiwgMHg0MTBhLCAweDAwMDEsIDB4ZmZmZiwKCQkiTWVkaW9uIiwKCQkiTUQgNzQyNSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkpLAoKLyoKICogRW50cnkgZm9yIEplbm9wdGlrIEpEIDUyMDB6MwogKgogKiBlbWFpbDogY2FyLmJ1c3NlQGdteC5kZQogKi8KVU5VU1VBTF9ERVYoICAweDBkOTYsIDB4NTIwMCwgMHgwMDAxLCAweDAyMDAsCgkJIkplbm9wdGlrIiwKCQkiSkQgNTIwMCB6MyIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsIFVTX0ZMX0ZJWF9JTlFVSVJZKSwKCi8qIFJlcG9ydGVkIGJ5IEx1Ym9taXIgQmxhaGEgPHRyaXRvbEB0cmlsb2dpYy5jej4KICogSSBfUkVBTExZXyBkb24ndCBrbm93IHdoYXQgM3JkLCA0dGggbnVtYmVyIGFuZCBhbGwgZGVmaW5lcyBtZWFuLCBidXQgdGhpcwogKiB3b3JrcyBmb3IgbWUuIENhbiBhbnlib2R5IGNvcnJlY3QgdGhlc2UgdmFsdWVzPyAoSSBhYmxlIHRvIHRlc3QgY29ycmVjdGVkCiAqIHZlcnNpb24uKQogKi8KVU5VU1VBTF9ERVYoIDB4MGRkOCwgMHgxMDYwLCAweDAwMDAsIDB4ZmZmZiwKCQkiTmV0YWMiLAoJCSJVU0ItQ0YtQ2FyZCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKCi8qIFBhdGNoIGJ5IFN0ZXBoYW4gV2FsdGVyIDxzdGVwaGFuLndhbHRlckBlcGZsLmNoPgogKiBJIGRvbid0IGtub3cgd2h5LCBidXQgaXQgd29ya3MuLi4gKi8KVU5VU1VBTF9ERVYoIDB4MGRkYSwgMHgwMDAxLCAweDAwMTIsIDB4MDAxMiwKCQkiV0lOV0FSRCIsCgkJIk11c2ljIERpc2siLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBSZXBvcnRlZCBieSBJYW4gTWNDb25uZWxsIDxpYW4gYXQgZW1pdC5kZW1vbi5jby51az4gKi8KVU5VU1VBTF9ERVYoICAweDBkZGEsIDB4MDMwMSwgMHgwMDEyLCAweDAwMTIsCgkJIlBOUF9NUDMiLAoJCSJQTlBfTVAzIFBMQVlFUiIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFN1Ym1pdHRlZCBieSBBbnRvaW5lIE1haXJlc3NlIDxhbnRvaW5lLm1haXJlc3NlQGZyZWUuZnI+ICovClVOVVNVQUxfREVWKCAweDBlZDEsIDB4NjY2MCwgMHgwMTAwLCAweDAzMDAsCgkJIlVTQiIsCgkJIlNvbGlkIHN0YXRlIGRpc2siLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZICksCgovKiBTdWJtaXR0ZWQgYnkgRGFuaWVsIERyYWtlIDxkc2RAZ2VudG9vLm9yZz4KICogUmVwb3J0ZWQgYnkgZGF5dWwgb24gdGhlIEdlbnRvbyBGb3J1bXMgKi8KVU5VU1VBTF9ERVYoICAweDBlYTAsIDB4MjE2OCwgMHgwMTEwLCAweDAxMTAsCgkJIk91cnMgVGVjaG5vbG9neSIsCgkJIkZsYXNoIERpc2siLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBSZXBvcnRlZCBieSBSYXN0aXNsYXYgU3RhbmlrIDxyc19rZXJuZWxAeWFob28uY29tPiAqLwpVTlVTVUFMX0RFViggIDB4MGVhMCwgMHg2ODI4LCAweDAxMTAsIDB4MDExMCwKCQkiVVNCIiwKCQkiRmxhc2ggRGlzayIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFJlcG9ydGVkIGJ5IE1pY2hhZWwgU3RhdHRtYW5uIDxtaWNoYWVsQHN0YXR0bWFubi5jb20+ICovClVOVVNVQUxfREVWKCAgMHgwZmNlLCAweGQwMDgsIDB4MDAwMCwgMHgwMDAwLAoJCSJTb255IEVyaWNzc29uIiwKCQkiVjgwMC1Wb2RhZm9uZSA4MDIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX05PX1dQX0RFVEVDVCApLAoKLyogUmVwb3J0ZWQgYnkgS2V2aW4gQ2VybmVrZWUgPGtwYy11c2JkZXZAZ2VsYXRvLnVpdWMuZWR1PgogKiBUZXN0ZWQgb24gaGFyZHdhcmUgdmVyc2lvbiAxLjEwLgogKiBFbnRyeSBpcyBuZWVkZWQgb25seSBmb3IgdGhlIGluaXRpYWxpemVyIGZ1bmN0aW9uIG92ZXJyaWRlLgogKi8KVU5VU1VBTF9ERVYoICAweDEwMTksIDB4MGM1NSwgMHgwMDAwLCAweDk5OTksCgkJIkRlc2tub3RlIiwKCQkiVUNSLTYxUzJCIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgdXNiX3N0b3JfdWNyNjFzMmJfaW5pdCwKCQkwICksCgovKiBSZXBvcnRlZCBieSBLb3RybGEgVml0ZXpzbGF2IDxrb3RybGFAY2ViLmN6PiAqLwpVTlVTVUFMX0RFViggIDB4MTM3MCwgMHg2ODI4LCAweDAxMTAsIDB4MDExMCwKCQkiU1dJU1NCSVQiLAoJCSJCbGFjayBTaWx2ZXIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBSZXBvcnRlZCBieSBSYWRvdmFuIEdhcmFiaWsgPGdhcmFiaWtAa2Fzc2lvcGVpYS5qdWxzLnNhdmJhLnNrPiAqLwpVTlVTVUFMX0RFViggIDB4MjczNSwgMHgxMDBiLCAweDAwMDAsIDB4OTk5OSwKCQkiTVBJTyIsCgkJIkhTMjAwIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9HT19TTE9XICksCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NQpVTlVTVUFMX0RFViggIDB4NTVhYSwgMHhhMTAzLCAweDAwMDAsIDB4OTk5OSwgCgkJIlNhbmRpc2siLAoJCSJJbWFnZU1hdGUgU0REUjU1IiwKCQlVU19TQ19TQ1NJLCBVU19QUl9TRERSNTUsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiksCiNlbmRpZgo=