LyogRHJpdmVyIGZvciBVU0IgTWFzcyBTdG9yYWdlIGNvbXBsaWFudCBkZXZpY2VzCiAqIFVudXN1YWwgRGV2aWNlcyBGaWxlCiAqCiAqICRJZDogdW51c3VhbF9kZXZzLmgsdiAxLjMyIDIwMDIvMDIvMjUgMDI6NDE6MjQgbWRoYXJtIEV4cCAkCiAqCiAqIEN1cnJlbnQgZGV2ZWxvcG1lbnQgYW5kIG1haW50ZW5hbmNlIGJ5OgogKiAgIChjKSAyMDAwLTIwMDIgTWF0dGhldyBEaGFybSAobWRoYXJtLXVzYkBvbmUtZXllZC1hbGllbi5uZXQpCiAqCiAqIEluaXRpYWwgd29yayBieToKICogICAoYykgMjAwMCBBZGFtIEouIFJpY2h0ZXIgKGFkYW1AeWdnZHJhc2lsLmNvbSksIFlnZ2RyYXNpbCBDb21wdXRpbmcsIEluYy4KICoKICogUGxlYXNlIHNlZSBodHRwOi8vd3d3Lm9uZS1leWVkLWFsaWVuLm5ldC9+bWRoYXJtL2xpbnV4LXVzYiBmb3IgbW9yZQogKiBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIGRyaXZlci4KICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCiAqIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkKICogbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcKICogd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKICogNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCiAqLwoKLyogSU1QT1JUQU5UIE5PVEU6IFRoaXMgZmlsZSBtdXN0IGJlIGluY2x1ZGVkIGluIGFub3RoZXIgZmlsZSB3aGljaCBkb2VzCiAqIHRoZSBmb2xsb3dpbmcgdGhpbmcgZm9yIGl0IHRvIHdvcms6CiAqIFRoZSBtYWNybyBVTlVTVUFMX0RFVigpIG11c3QgYmUgZGVmaW5lZCBiZWZvcmUgdGhpcyBmaWxlIGlzIGluY2x1ZGVkCiAqLwojaW5jbHVkZSA8bGludXgvY29uZmlnLmg+CgovKiBJZiB5b3UgZWRpdCB0aGlzIGZpbGUsIHBsZWFzZSB0cnkgdG8ga2VlcCBpdCBzb3J0ZWQgZmlyc3QgYnkgVmVuZG9ySUQsCiAqIHRoZW4gYnkgUHJvZHVjdElELgogKgogKiBJZiB5b3Ugd2FudCB0byBhZGQgYW4gZW50cnkgZm9yIHRoaXMgZmlsZSwgYmUgc3VyZSB0byBpbmNsdWRlIHRoZQogKiBmb2xsb3dpbmcgaW5mb3JtYXRpb246CiAqCS0gYSBwYXRjaCB0aGF0IGFkZHMgdGhlIGVudHJ5IGZvciB5b3VyIGRldmljZSwgaW5jbHVkaW5nIHlvdXIKICoJICBlbWFpbCBhZGRyZXNzIHJpZ2h0IGFib3ZlIHRoZSBlbnRyeSAocGx1cyBtYXliZSBhIGJyaWVmCiAqCSAgZXhwbGFuYXRpb24gb2YgdGhlIHJlYXNvbiBmb3IgdGhlIGVudHJ5KSwKICoJLSBhIGNvcHkgb2YgL3Byb2MvYnVzL3VzYi9kZXZpY2VzIHdpdGggeW91ciBkZXZpY2UgcGx1Z2dlZCBpbgogKgkgIHJ1bm5pbmcgd2l0aCB0aGlzIHBhdGNoLgogKiBTZW5kIHlvdXIgc3VibWlzc2lvbiB0byBlaXRoZXIgUGhpbCBEaWJvd2l0eiA8cGhpbEBpcG9tLmNvbT4gb3IKICogQWxhbiBTdGVybiA8c3Rlcm5Acm93bGFuZC5oYXJ2YXJkLmVkdT4sIGFuZCBkb24ndCBmb3JnZXQgdG8gQ0M6IHRoZQogKiBVU0IgZGV2ZWxvcG1lbnQgbGlzdCA8bGludXgtdXNiLWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD4uCiAqLwoKLyogcGF0Y2ggc3VibWl0dGVkIGJ5IFZpdmlhbiBCcmVnaWVyIDxWaXZpYW4uQnJlZ2llckBpbWFnLmZyPgogKi8KVU5VU1VBTF9ERVYoICAweDAzZWIsIDB4MjAwMiwgMHgwMTAwLCAweDAxMDAsCiAgICAgICAgICAgICAgICAiQVRNRUwiLAogICAgICAgICAgICAgICAgIlNORDEgU3RvcmFnZSIsCiAgICAgICAgICAgICAgICBVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKICAgICAgICAgICAgICAgIFVTX0ZMX0lHTk9SRV9SRVNJRFVFKSwKClVOVVNVQUxfREVWKCAgMHgwM2VlLCAweDY5MDEsIDB4MDAwMCwgMHgwMTAwLAoJCSJNaXRzdW1pIiwKCQkiVVNCIEZERCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKLyogUmVwb3J0ZWQgYnkgUm9kb2xmbyBRdWVzYWRhIDxycXVlc2FkYUByb3F6Lm5ldD4gKi8KVU5VU1VBTF9ERVYoICAweDAzZWUsIDB4NjkwNiwgMHgwMDAzLCAweDAwMDMsCgkJIlZJQSBUZWNobm9sb2dpZXMgSW5jLiIsCgkJIk1pdHN1bWkgbXVsdGkgY2FyZHJlYWRlciIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKClVOVVNVQUxfREVWKCAgMHgwM2YwLCAweDAxMDcsIDB4MDIwMCwgMHgwMjAwLCAKCQkiSFAiLAoJCSJDRC1Xcml0ZXIrIiwKCQlVU19TQ184MDcwLCBVU19QUl9DQiwgTlVMTCwgMCksIAoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9VU0JBVApVTlVTVUFMX0RFViggIDB4MDNmMCwgMHgwMjA3LCAweDAwMDEsIDB4MDAwMSwgCgkJIkhQIiwKCQkiQ0QtV3JpdGVyKyA4MjAwZSIsCgkJVVNfU0NfODA3MCwgVVNfUFJfVVNCQVQsIGluaXRfdXNiYXQsIDApLAoKVU5VU1VBTF9ERVYoICAweDAzZjAsIDB4MDMwNywgMHgwMDAxLCAweDAwMDEsIAoJCSJIUCIsCgkJIkNELVdyaXRlcisgQ0QtNGUiLAoJCVVTX1NDXzgwNzAsIFVTX1BSX1VTQkFULCBpbml0X3VzYmF0LCAwKSwKI2VuZGlmCgovKiBSZXBvcnRlZCBieSBTZWJhc3RpYW4gS2FwZmVyIDxzZWJhc3RpYW5fa2FwZmVyQGdteC5uZXQ+CiAqIGFuZCBPbGFmIEhlcmluZyA8b2xoQHN1c2UuZGU+IChkaWZmZXJlbnQgYmNkJ3MsIHNhbWUgdmVuZG9yL3Byb2R1Y3QpCiAqIGZvciBVU0IgZmxvcHBpZXMgdGhhdCBuZWVkIHRoZSBTSU5HTEVfTFVOIGVuZm9yY2VtZW50LgogKi8KVU5VU1VBTF9ERVYoICAweDA0MDksIDB4MDA0MCwgMHgwMDAwLCAweDk5OTksCgkJIk5FQyIsCgkJIk5FQyBVU0IgVUYwMDB4IiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCgovKiBQYXRjaCBzdWJtaXR0ZWQgYnkgTWlobmVhLUNvc3RpbiBHcmlnb3JlIDxtaWhuZWFAenVsdS5ybz4gKi8KVU5VU1VBTF9ERVYoICAweDA0MGQsIDB4NjIwNSwgMHgwMDAzLCAweDAwMDMsCgkJIlZJQSBUZWNobm9sb2dpZXMgSW5jLiIsCgkJIlVTQiAyLjAgQ2FyZCBSZWFkZXIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBEZWR1Y2VkIGJ5IEpvbmF0aGFuIFdvaXRoZSA8andvaXRoZUBwaHlzaWNzLmFkZWxhaWRlLmVkdS5hdT4KICogRW50cnkgbmVlZGVkIGZvciBmbGFnczogVVNfRkxfRklYX0lOUVVJUlkgYmVjYXVzZSBpbml0aWFsIGlucXVpcnkgbWVzc2FnZQogKiBhbHdheXMgZmFpbHMgYW5kIGNvbmZ1c2VzIGRyaXZlLgogKi8KVU5VU1VBTF9ERVYoICAweDA0MTEsIDB4MDAxYywgMHgwMTEzLCAweDAxMTMsCgkJIkJ1ZmZhbG8iLAoJCSJEVUItUDQwRyBIREQiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZICksCgovKiBSZXBvcnRlZCBieSBDaHJpc3RpYW4gTGViZXIgPGNocmlzdGlhbkBsZWJlci5kZT4gKi8KVU5VU1VBTF9ERVYoICAweDA0MTksIDB4YWFmNSwgMHgwMTAwLCAweDAxMDAsCgkJIlRyZWtTdG9yIiwKCQkiaS5CZWF0IDExNSAyLjAiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFIHwgVVNfRkxfTk9UX0xPQ0tBQkxFICksCgovKiBSZXBvcnRlZCBieSBTdGVmYW4gV2VybmVyIDxkdXN0YmxuQGdteC5kZT4gKi8KVU5VU1VBTF9ERVYoICAweDA0MTksIDB4YWFmNiwgMHgwMTAwLCAweDAxMDAsCgkJIlRyZWtTdG9yIiwKCQkiaS5CZWF0IEpveSAyLjAiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBSZXBvcnRlZCBieSBQZXRlIFphaXRjZXYgPHphaXRjZXZAcmVkaGF0LmNvbT4sIGJ6IzE3NjU4NCAqLwpVTlVTVUFMX0RFViggIDB4MDQyMCwgMHgwMDAxLCAweDAxMDAsIDB4MDEwMCwKCQkiR0VORVJJQyIsICJNUDMgUExBWUVSIiwgLyogTXlNdXNpeCBQRC0yMDUgb24gdGhlIG91dHNpZGUuICovCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFJlcG9ydGVkIGJ5IE9sYWYgSGVyaW5nIDxvbGhAc3VzZS5kZT4gZnJvbSBub3ZlbGwgYnVnICMxMDU4NzggKi8KVU5VU1VBTF9ERVYoICAweDA0MjQsIDB4MGZkYywgMHgwMjEwLCAweDAyMTAsCgkJIlNNU0MiLAoJCSJGREMgR09MRC0yLjMwIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0RQQ00KVU5VU1VBTF9ERVYoICAweDA0MzYsIDB4MDAwNSwgMHgwMTAwLCAweDAxMDAsCgkJIk1pY3JvdGVjaCIsCgkJIkNhbWVyYU1hdGUgKERQQ01fVVNCKSIsCiAJCVVTX1NDX1NDU0ksIFVTX1BSX0RQQ01fVVNCLCBOVUxMLCAwICksCiNlbmRpZgoKLyogUGF0Y2ggc3VibWl0dGVkIGJ5IERhbmllbCBEcmFrZSA8ZHNkQGdlbnRvby5vcmc+CiAqIERldmljZSByZXBvcnRzIG5vbnNlbnNlIGJJbnRlcmZhY2VQcm90b2NvbCA2IHdoZW4gY29ubmVjdGVkIG92ZXIgVVNCMiAqLwpVTlVTVUFMX0RFViggIDB4MDQ1MSwgMHg1NDE2LCAweDAxMDAsIDB4MDEwMCwKCQkiTmV1cm9zIEF1ZGlvIiwKCQkiVVNCIDIuMCBIRCAyLjUiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfQlVMSywgTlVMTCwKCQlVU19GTF9ORUVEX09WRVJSSURFICksCgovKgogKiBQZXRlIFphaXRjZXYgPHphaXRjZXZAeWFob28uY29tPiwgZnJvbSBQYXRyaWNrIEMuIEYuIEVybnplciwgYnojMTYyNTU5LgogKiBUaGUga2V5IGRvZXMgbm90IGFjdHVhbGx5IGJyZWFrLCBidXQgaXQgcmV0dXJucyB6ZXJvIHNlbnNlIHdoaWNoCiAqIG1ha2VzIG91ciBTQ1NJIHN0YWNrIHRvIHByaW50IGNvbmZ1c2luZyBtZXNzYWdlcy4KICovClVOVVNVQUxfREVWKCAgMHgwNDU3LCAweDAxNTAsIDB4MDEwMCwgMHgwMTAwLAoJCSJVU0Jlc3QgVGVjaG5vbG9neSIsCS8qIHNvbGQgYnkgVHJhbnNjZW5kICovCgkJIlVTQiBNYXNzIFN0b3JhZ2UgRGV2aWNlIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwgVVNfRkxfTk9UX0xPQ0tBQkxFICksCgovKgoqIEJvaGRhbiBMaW5kYSA8Ym9oZGFuLmxpbmRhQGdtYWlsLmNvbT4KKiAxR0IgVVNCIHN0aWNrcyBNeUZsYXNoIEhpZ2ggU3BlZWQuIEkgaGF2ZSByZXN0cmljdGVkCiogdGhlIHJldmlzaW9uIHRvIG15IG1vZGVsIG9ubHkKKi8KVU5VU1VBTF9ERVYoICAweDA0NTcsIDB4MDE1MSwgMHgwMTAwLCAweDAxMDAsCiAgICAgICAgICAgICAgICAiVVNCIDIuMCIsCiAgICAgICAgICAgICAgICAiRmxhc2ggRGlzayIsCiAgICAgICAgICAgICAgICBVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKICAgICAgICAgICAgICAgIFVTX0ZMX05PVF9MT0NLQUJMRSApLAoKVU5VU1VBTF9ERVYoICAweDA0NWEsIDB4NTIxMCwgMHgwMTAxLCAweDAxMDEsCgkJIlJpbyIsCgkJIlJpbyBLYXJtYSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQlVMSywgcmlvX2thcm1hX2luaXQsIDApLAoKLyogUGF0Y2ggc3VibWl0dGVkIGJ5IFBoaWxpcHAgRnJpZWRyaWNoIDxwaGlsaXBwQHZvaWQuYXQ+ICovClVOVVNVQUxfREVWKCAgMHgwNDgyLCAweDAxMDAsIDB4MDEwMCwgMHgwMTAwLAoJCSJLeW9jZXJhIiwKCQkiRmluZWNhbSBTM3giLAoJCVVTX1NDXzgwNzAsIFVTX1BSX0NCLCBOVUxMLCBVU19GTF9GSVhfSU5RVUlSWSksCgovKiBQYXRjaCBzdWJtaXR0ZWQgYnkgUGhpbGlwcCBGcmllZHJpY2ggPHBoaWxpcHBAdm9pZC5hdD4gKi8KVU5VU1VBTF9ERVYoICAweDA0ODIsIDB4MDEwMSwgMHgwMTAwLCAweDAxMDAsCgkJIkt5b2NlcmEiLAoJCSJGaW5lY2FtIFM0IiwKCQlVU19TQ184MDcwLCBVU19QUl9DQiwgTlVMTCwgVVNfRkxfRklYX0lOUVVJUlkpLAoKLyogUGF0Y2ggc3VibWl0dGVkIGJ5IFN0ZXBoYW5lIEdhbGxlcyA8c3RlcGhhbmUuZ2FsbGVzQGZyZWUuZnI+ICovClVOVVNVQUxfREVWKCAgMHgwNDgyLCAweDAxMDMsIDB4MDEwMCwgMHgwMTAwLAoJCSJLeW9jZXJhIiwKCQkiRmluZWNhbSBTNSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsIFVTX0ZMX0ZJWF9JTlFVSVJZKSwKCi8qIFBhdGNoIGZvciBLeW9jZXJhIEZpbmVjYW0gTDMKICogU3VibWl0dGVkIGJ5IE1pY2hhZWwgS3JhdXRoIDxtaWNoYWVsLmtyYXV0aEB3ZWIuZGU+CiAqIGFuZCBBbGVzc2FuZHJvIEZyYWNjaGV0dGkgPGFsLmZyYWNjaGV0dGlAdGluLml0PgogKi8KVU5VU1VBTF9ERVYoICAweDA0ODIsIDB4MDEwNSwgMHgwMTAwLCAweDAxMDAsCgkJIkt5b2NlcmEiLAoJCSJGaW5lY2FtIEwzIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9CVUxLLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZKSwKCi8qIFJlcG9ydGVkIGJ5IFBhdWwgU3Rld2FydCA8c3Rld2FydEB3ZXRsb2dpYy5uZXQ+CiAqIFRoaXMgZW50cnkgaXMgbmVlZGVkIGJlY2F1c2UgdGhlIGRldmljZSByZXBvcnRzIFN1Yj1mZiAqLwpVTlVTVUFMX0RFViggIDB4MDRhNCwgMHgwMDA0LCAweDAwMDEsIDB4MDAwMSwKCQkiSGl0YWNoaSIsCgkJIkRWRC1DQU0gRFotTVYxMDBBIENhbWNvcmRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQ0IsIE5VTEwsIFVTX0ZMX1NJTkdMRV9MVU4pLAoKLyogUmVwb3J0ZWQgYnkgQW5kcmVhcyBCb2NraG9sZCA8YW5kcmVhc0Bib2NraW9ubGluZS5kZT4gKi8KVU5VU1VBTF9ERVYoICAweDA0YjAsIDB4MDQwNSwgMHgwMTAwLCAweDAxMDAsCgkJIk5JS09OIiwKCQkiTklLT04gRFNDIEQ3MCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZKSwKCi8qIFBhdGNoIGZvciBOaWtvbiBjb29scGl4IDIwMDAKICogU3VibWl0dGVkIGJ5IEZhYmllbiBDb3NzZSA8ZmFiaWVuLmNvc3NlQHdhbmFkb28uZnI+Ki8KVU5VU1VBTF9ERVYoICAweDA0YjAsIDB4MDMwMSwgMHgwMDEwLCAweDAwMTAsCgkJIk5JS09OIiwKCQkiTklLT04gRFNDIEUyMDAwIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSxOVUxMLAoJCVVTX0ZMX05PVF9MT0NLQUJMRSApLAoKLyogQkVOUSBEQzUzMzAKICogUmVwb3J0ZWQgYnkgTWFudWVsIEZvbWJ1ZW5hIDxtZm9tYnVlbmFAeWEuY29tPiBhbmQKICogRnJhbmsgQ29wZWxhbmQgPGZqY0B0aGluZ3kuYXBhbmEub3JnLmF1PiAqLwpVTlVTVUFMX0RFViggIDB4MDRhNSwgMHgzMDEwLCAweDAxMDAsIDB4MDEwMCwKCQkiVGVrb20gVGVjaG5vbG9naWVzLCBJbmMiLAoJCSIzMDBfQ0FNRVJBIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSApLAoKLyogUmVwb3J0ZWQgYnkgU2ltb24gTGV2aXR0IDxzaW1vbkB3aGF0dGYuY29tPgogKiBUaGlzIGVudHJ5IG5lZWRzIFN1YiBhbmQgUHJvdG8gZmllbGRzICovClVOVVNVQUxfREVWKCAgMHgwNGI4LCAweDA2MDEsIDB4MDEwMCwgMHgwMTAwLAoJCSJFcHNvbiIsCgkJIjg3NURDIFN0b3JhZ2UiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0NCLCBOVUxMLCBVU19GTF9GSVhfSU5RVUlSWSksCgovKiBSZXBvcnRlZCBieSBLaGFsaWQgQXppeiA8a2hhbGlkQGdvbmVoaWtpbmcub3JnPgogKiBUaGlzIGVudHJ5IGlzIG5lZWRlZCBiZWNhdXNlIHRoZSBkZXZpY2UgcmVwb3J0cyBTdWI9ZmYgKi8KVU5VU1VBTF9ERVYoICAweDA0YjgsIDB4MDYwMiwgMHgwMTEwLCAweDAxMTAsCgkJIkVwc29uIiwKCQkiNzg1RVBYIFN0b3JhZ2UiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0JVTEssIE5VTEwsIFVTX0ZMX1NJTkdMRV9MVU4pLAoKLyogTm90IHN1cmUgd2hvIHJlcG9ydGVkIHRoaXMgb3JpZ2luYWxseSBidXQKICogUGF2ZWwgTWFjaGVrIDxwYXZlbEB1Y3cuY3o+IHJlcG9ydGVkIHRoYXQgdGhlIGV4dHJhIFVTX0ZMX1NJTkdMRV9MVU4KICogZmxhZyBiZSBhZGRlZCAqLwpVTlVTVUFMX0RFViggIDB4MDRjYiwgMHgwMTAwLCAweDAwMDAsIDB4MjIxMCwKCQkiRnVqaWZpbG0iLAoJCSJGaW5lUGl4IDE0MDBab29tIiwKCQlVU19TQ19VRkksIFVTX1BSX0RFVklDRSwgTlVMTCwgVVNfRkxfRklYX0lOUVVJUlkgfCBVU19GTF9TSU5HTEVfTFVOKSwKCi8qIFJlcG9ydGVkIGJ5IFBldGVyIFfkY2h0bGVyIDxwd2FlY2h0bGVyQGxvZXdlLWtvbXAuZGU+CiAqIFRoZSBkZXZpY2UgbmVlZHMgdGhlIGZsYWdzIG9ubHkuCiAqLwpVTlVTVUFMX0RFViggIDB4MDRjZSwgMHgwMDAyLCAweDAwNzQsIDB4MDA3NCwKCQkiU2NhbkxvZ2ljIiwKCQkiU0wxMVItSURFIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfSU5RVUlSWSksCgovKiBSZXBvcnRlZCBieSBLcmlzdG9uIEZpbmNoZXIgPGtyaXN0b25AYWlybWFpbC5uZXQ+CiAqIFBhdGNoIHN1Ym1pdHRlZCBieSBTZWFuIE1pbGxpY2hhbXAgPHNlYW5AYnJ1ZW5vci5vcmc+CiAqIFRoaXMgaXMgdG8gc3VwcG9ydCB0aGUgUGFuYXNvbmljIFBhbG1DYW0gUFYtU0Q0MDkwCiAqIFRoaXMgZW50cnkgaXMgbmVlZGVkIGJlY2F1c2UgdGhlIGRldmljZSByZXBvcnRzIFN1Yj1mZiAKICovClVOVVNVQUxfREVWKCAgMHgwNGRhLCAweDA5MDEsIDB4MDEwMCwgMHgwMjAwLAoJCSJQYW5hc29uaWMiLAoJCSJMUy0xMjAgQ2FtZXJhIiwKCQlVU19TQ19VRkksIFVTX1BSX0RFVklDRSwgTlVMTCwgMCksCgovKiBGcm9tIFl1a2loaXJvIE5ha2FpLCB2aWEgemFpdGNldkB5YWhvby5jb20uCiAqIFRoaXMgaXMgbmVlZGVkIGZvciBDQiBpbnN0ZWFkIG9mIENCSSAqLwpVTlVTVUFMX0RFViggIDB4MDRkYSwgMHgwZDA1LCAweDAwMDAsIDB4MDAwMCwKCQkiU2hhcnAgQ0UtQ1cwNSIsCgkJIkNELVIvUlcgRHJpdmUiLAoJCVVTX1NDXzgwNzAsIFVTX1BSX0NCLCBOVUxMLCAwKSwKCi8qIFJlcG9ydGVkIGJ5IEFkcmlhYW4gUGVubmluZyA8YS5wZW5uaW5nQGx1b24ubmV0PiAqLwpVTlVTVUFMX0RFViggIDB4MDRkYSwgMHgyMzcyLCAweDAwMDAsIDB4OTk5OSwKCQkiUGFuYXNvbmljIiwKCQkiRE1DLUxDeCBDYW1lcmEiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSB8IFVTX0ZMX05PVF9MT0NLQUJMRSApLAoKLyogUmVwb3J0ZWQgYnkgU2ltZW9uIFNpbWVvbm92IDxzaW1lb25vdl8yMDAwQHlhaG9vLmNvbT4gKi8KVU5VU1VBTF9ERVYoICAweDA0ZGEsIDB4MjM3MywgMHgwMDAwLCAweDk5OTksCgkJIkxFSUNBIiwKCQkiRC1MVVggQ2FtZXJhIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkgfCBVU19GTF9OT1RfTE9DS0FCTEUgKSwKCi8qIE1vc3Qgb2YgdGhlIGZvbGxvd2luZyBlbnRyaWVzIHdlcmUgZGV2ZWxvcGVkIHdpdGggdGhlIGhlbHAgb2YKICogU2h1dHRsZS9TQ00gZGlyZWN0bHkuCiAqLwpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMDAxLCAweDAyMDAsIDB4MDIwMCwgCgkJIk1hdHNoaXRhIiwKCQkiTFMtMTIwIiwKCQlVU19TQ184MDIwLCBVU19QUl9DQiwgTlVMTCwgMCksCgpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMDAyLCAweDAxMDAsIDB4MDEwMCwgCgkJIlNodXR0bGUiLAoJCSJlVVNDU0kgQnJpZGdlIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgdXNiX3N0b3JfZXVzY3NpX2luaXQsIAoJCVVTX0ZMX1NDTV9NVUxUX1RBUkcgKSwgCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX1NERFIwOQpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMDAzLCAweDAwMDAsIDB4OTk5OSwgCgkJIlNhbmRpc2siLAoJCSJJbWFnZU1hdGUgU0REUjA5IiwKCQlVU19TQ19TQ1NJLCBVU19QUl9FVVNCX1NERFIwOSwgdXNiX3N0b3Jfc2RkcjA5X2luaXQsCgkJMCksCgovKiBUaGlzIGVudHJ5IGlzIGZyb20gQW5kcmllcy5Ccm91d2VyQGN3aS5ubCAqLwpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMDA1LCAweDAxMDAsIDB4MDIwOCwKCQkiU0NNIE1pY3Jvc3lzdGVtcyIsCgkJImVVU0IgU21hcnRNZWRpYSAvIENvbXBhY3RGbGFzaCBBZGFwdGVyIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9EUENNX1VTQiwgdXNiX3N0b3Jfc2RkcjA5X2RwY21faW5pdCwKCQkwKSwgCiNlbmRpZgoKLyogUmVwb3J0ZWQgYnkgTWFya3VzIERlbWxlaXRuZXIgPG1zZGVtbGVpQGNsLnVuaS1oZWlkZWxiZXJnLmRlPiAqLwpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMDA2LCAweDAxMDAsIDB4MDEwMCwgCgkJIlNDTSBNaWNyb3N5c3RlbXMgSW5jLiIsCgkJImVVU0IgTU1DIEFkYXB0ZXIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0NCLCBOVUxMLCAKCQlVU19GTF9TSU5HTEVfTFVOKSwgCgovKiBSZXBvcnRlZCBieSBEYW5pZWwgTm91cmkgPGRwdW5rdG5wdW5rdEB3ZWIuZGU+ICovClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDAwMDYsIDB4MDIwNSwgMHgwMjA1LCAKCQkiU2h1dHRsZSIsCgkJImVVU0IgTU1DIEFkYXB0ZXIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0RFVklDRSwgTlVMTCwgCgkJVVNfRkxfU0lOR0xFX0xVTiksIAoKVU5VU1VBTF9ERVYoICAweDA0ZTYsIDB4MDAwNywgMHgwMTAwLCAweDAyMDAsIAoJCSJTb255IiwKCQkiSGlmZCIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQ0IsIE5VTEwsIAoJCVVTX0ZMX1NJTkdMRV9MVU4pLCAKClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDAwMDksIDB4MDIwMCwgMHgwMjAwLCAKCQkiU2h1dHRsZSIsCgkJImVVU0IgQVRBL0FUQVBJIEFkYXB0ZXIiLAoJCVVTX1NDXzgwMjAsIFVTX1BSX0NCLCBOVUxMLCAwKSwKClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDAwMGEsIDB4MDIwMCwgMHgwMjAwLCAKCQkiU2h1dHRsZSIsCgkJImVVU0IgQ29tcGFjdEZsYXNoIEFkYXB0ZXIiLAoJCVVTX1NDXzgwMjAsIFVTX1BSX0NCLCBOVUxMLCAwKSwKClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDAwMEIsIDB4MDEwMCwgMHgwMTAwLCAKCQkiU2h1dHRsZSIsCgkJImVVU0NTSSBCcmlkZ2UiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0JVTEssIHVzYl9zdG9yX2V1c2NzaV9pbml0LCAKCQlVU19GTF9TQ01fTVVMVF9UQVJHICksIAoKVU5VU1VBTF9ERVYoICAweDA0ZTYsIDB4MDAwQywgMHgwMTAwLCAweDAxMDAsIAoJCSJTaHV0dGxlIiwKCQkiZVVTQ1NJIEJyaWRnZSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQlVMSywgdXNiX3N0b3JfZXVzY3NpX2luaXQsIAoJCVVTX0ZMX1NDTV9NVUxUX1RBUkcgKSwgCgpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMTAxLCAweDAyMDAsIDB4MDIwMCwgCgkJIlNodXR0bGUiLAoJCSJDRC1SVyBEZXZpY2UiLAoJCVVTX1NDXzgwMjAsIFVTX1BSX0NCLCBOVUxMLCAwKSwKCi8qIEVudHJ5IGFuZCBzdXBwb3J0aW5nIHBhdGNoIGJ5IFRoZW9kb3JlIEtpbGdvcmUgPGtpbGdvdGFAYXVidXJuLmVkdT4uCiAqIERldmljZSB1c2VzIHN0YW5kYXJkcy12aW9sYXRpbmcgMzItYnl0ZSBCdWxrIENvbW1hbmQgQmxvY2sgV3JhcHBlcnMgYW5kCiAqIHJlcG9ydHMgaXRzZWxmIGFzICJQcm9wcmlldGFyeSBTQ1NJIEJ1bGsuIiBDZi4gZGV2aWNlIGVudHJ5IDB4MDg0ZDoweDAwMTEuCiAqLwoKVU5VU1VBTF9ERVYoICAweDA0ZmMsIDB4ODBjMiwgMHgwMTAwLCAweDAxMDAsCgkJIktvYmlhbiBNZXJjdXJ5IiwKCQkiQmlub2NhbSBEQ0ItMTMyIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9CVUxLMzIpLAoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9VU0JBVApVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgxMDEwLCAweDAwMDAsIDB4OTk5OSwKCQkiU2h1dHRsZS9TQ00iLAoJCSJVU0JBVC0wMiIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfVVNCQVQsIGluaXRfdXNiYXQsCgkJVVNfRkxfU0lOR0xFX0xVTiksCiNlbmRpZgoKLyogUmVwb3J0ZWQgYnkgQm9iIFNhc3MgPHJsc0B2ZWN0b3JkYi5jb20+IC0tIG9ubHkgcmV2IDEuMzMgdGVzdGVkICovClVOVVNVQUxfREVWKCAgMHgwNTBkLCAweDAxMTUsIDB4MDEzMywgMHgwMTMzLAoJCSJCZWxraW4iLAoJCSJVU0IgU0NTSSBBZGFwdG9yIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9CVUxLLCB1c2Jfc3Rvcl9ldXNjc2lfaW5pdCwKCQlVU19GTF9TQ01fTVVMVF9UQVJHICksCgovKiBJb21lZ2EgQ2xpayEgRHJpdmUgCiAqIFJlcG9ydGVkIGJ5IERhdmlkIENoYXRlbmF5IDxkY2hhdGVuYXlAaG90bWFpbC5jb20+CiAqIFRoZSByZWFzb24gdGhpcyBpcyBuZWVkZWQgaXMgbm90IGZ1bGx5IGtub3duLgogKi8KVU5VU1VBTF9ERVYoICAweDA1MjUsIDB4YTE0MCwgMHgwMTAwLCAweDAxMDAsCgkJIklvbWVnYSIsCgkJIlVTQiBDbGlrISA0MCIsCgkJVVNfU0NfODA3MCwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZICksCgovKiBZYWt1bW8gTWVnYSBJbWFnZSAzNwogKiBTdWJtaXR0ZWQgYnkgU3RlcGhhbiBGdWhybWFubiA8YXRvbWVuZXJnaWVAdC1vbmxpbmUuZGU+ICovClVOVVNVQUxfREVWKCAgMHgwNTJiLCAweDE4MDEsIDB4MDEwMCwgMHgwMTAwLAoJCSJUZWtvbSBUZWNobm9sb2dpZXMsIEluYyIsCgkJIjMwMF9DQU1FUkEiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBBbm90aGVyIFlha3VtbyBjYW1lcmEuCiAqIFJlcG9ydGVkIGJ5IE1pY2hlbGUgQWx6ZXR0YSA8bWljaGVsZS5hbHpldHRhQGFsaWNlcG9zdGEuaXQ+ICovClVOVVNVQUxfREVWKCAgMHgwNTJiLCAweDE4MDQsIDB4MDEwMCwgMHgwMTAwLAoJCSJUZWtvbSBUZWNobm9sb2dpZXMsIEluYyIsCgkJIjMwMF9DQU1FUkEiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBSZXBvcnRlZCBieSBJYWNvcG8gU3BhbGxldHRpIDxhdnZpc2lAc3BhbGxldHRpLml0PiAqLwpVTlVTVUFMX0RFViggIDB4MDUyYiwgMHgxODA3LCAweDAxMDAsIDB4MDEwMCwKCQkiVGVrb20gVGVjaG5vbG9naWVzLCBJbmMiLAoJCSIzMDBfQ0FNRVJBIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSApLAoKLyogWWFrdW1vIE1lZ2EgSW1hZ2UgNDcKICogUmVwb3J0ZWQgYnkgQmpvZXJuIFBhZXR6ZWwgPGtvbHJhYmlAa29scmFiaS5kZT4gKi8KVU5VU1VBTF9ERVYoICAweDA1MmIsIDB4MTkwNSwgMHgwMTAwLCAweDAxMDAsCgkJIlRla29tIFRlY2hub2xvZ2llcywgSW5jIiwKCQkiNDAwX0NBTUVSQSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFJlcG9ydGVkIGJ5IFBhdWwgT3J0eWwgPG9ydHlscEAzbWlhc3RvLm5ldD4KICogTm90ZSB0aGF0IGl0J3Mgc2ltaWxhciB0byB0aGUgZGV2aWNlIGFib3ZlLCBvbmx5IGRpZmZlcmVudCBwcm9kSUQgKi8KVU5VU1VBTF9ERVYoICAweDA1MmIsIDB4MTkxMSwgMHgwMTAwLCAweDAxMDAsCgkJIlRla29tIFRlY2hub2xvZ2llcywgSW5jIiwKCQkiNDAwX0NBTUVSQSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAwMTAsIDB4MDEwNiwgMHgwNDUwLCAKCQkiU29ueSIsCgkJIkRTQy1TMzAvUzcwL1M3NS81MDVWL0Y1MDUvRjcwNy9GNzE3L1A4IiwgCgkJVVNfU0NfU0NTSSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4gfCBVU19GTF9OT1RfTE9DS0FCTEUgfCBVU19GTF9OT19XUF9ERVRFQ1QgKSwKCi8qIFRoaXMgZW50cnkgaXMgbmVlZGVkIGJlY2F1c2UgdGhlIGRldmljZSByZXBvcnRzIFN1Yj1mZiAqLwpVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDEwLCAweDA1MDAsIDB4MDYwMCwKCQkiU29ueSIsCgkJIkRTQy1UMS9UNSIsCgkJVVNfU0NfODA3MCwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4gKSwKCgovKiBSZXBvcnRlZCBieSB3aW1AZ2Vla3MubmwgKi8KVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDAyNSwgMHgwMTAwLCAweDAxMDAsIAoJCSJTb255IiwKCQkiTWVtb3J5c3RpY2sgTlctTVM3IiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0lTRDIwMApVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDJiLCAweDAxMDAsIDB4MDExMCwKCQkiU29ueSIsCgkJIlBvcnRhYmxlIFVTQiBIYXJkZHJpdmUgVjIiLAoJCVVTX1NDX0lTRDIwMCwgVVNfUFJfQlVMSywgaXNkMjAwX0luaXRpYWxpemF0aW9uLAoJCTAgKSwKI2VuZGlmCgovKiBTdWJtaXR0ZWQgYnkgT2xhZiBIZXJpbmcsIDxvbGhAc3VzZS5kZT4gU3VTRSBCdWd6aWxsYSAjNDkwNDkgKi8KVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDAyYywgMHgwNTAxLCAweDA1MDEsCgkJIlNvbnkiLAoJCSJVU0IgRmxvcHB5IERyaXZlIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCgpVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDJkLCAweDAxMDAsIDB4MDEwMCwgCgkJIlNvbnkiLAoJCSJNZW1vcnlzdGljayBNU0FDLVVTMSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKLyogU3VibWl0dGVkIGJ5IEtsYXVzIE11ZWxsZXIgPGsubXVlbGxlckBpbnRlcnNob3AuZGU+ICovClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAwMmUsIDB4MDEwNiwgMHgwMzEwLCAKCQkiU29ueSIsCgkJIkhhbmR5Y2FtIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKLyogU3VibWl0dGVkIGJ5IFJhamVzaCBLdW1ibGUgTmF5YWsgPG5heWFrQG9icy1uaWNlLmZyPiAqLwpVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDJlLCAweDA1MDAsIDB4MDUwMCwgCgkJIlNvbnkiLAoJCSJIYW5keWNhbSBIQy04NSIsCgkJVVNfU0NfVUZJLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDAzMiwgMHgwMDAwLCAweDk5OTksCgkJIlNvbnkiLAoJCSJNZW1vcnlzdGljayBNU0MtVTAxTiIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKLyogU3VibWl0dGVkIGJ5IE1pY2hhbCBNbG90ZWsgPG1sb3Rla0Bmb29iYXIucGw+ICovClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAwNTgsIDB4MDAwMCwgMHg5OTk5LAoJCSJTb255IiwKCQkiUEVHIE43NjBjIE1lbW9yeXN0aWNrIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfSU5RVUlSWSApLAoJCQpVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDY5LCAweDAwMDAsIDB4OTk5OSwKCQkiU29ueSIsCgkJIk1lbW9yeXN0aWNrIE1TQy1VMDMiLAoJCVVTX1NDX1VGSSwgVVNfUFJfQ0IsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKLyogU3VibWl0dGVkIGJ5IE5hdGhhbiBCYWJiIDxuYXRoYW5AbGV4aS5jb20+ICovClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAwNmQsIDB4MDAwMCwgMHg5OTk5LAoJCSJTb255IiwKCQkiUEVHIE1hc3MgU3RvcmFnZSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKCi8qIFN1Ym1pdHRlZCBieSBNaWtlIEFsYm9ybiA8bWFsYm9ybkBkZWFuZHJhLmhvbWVpcC5uZXQ+ICovClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAxNmEsIDB4MDAwMCwgMHg5OTk5LAoJCSJTb255IiwKCQkiUEVHIE1hc3MgU3RvcmFnZSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKCQkKLyogU3VibWl0dGVkIGJ5IEZyYW5rIEVuZ2VsIDxmcmFua2llQGNzZS51bnN3LmVkdS5hdT4gKi8KVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDA5OSwgMHgwMDAwLCAweDk5OTksCiAgICAgICAgICAgICAgICAiU29ueSIsCiAgICAgICAgICAgICAgICAiUEVHIE1hc3MgU3RvcmFnZSIsCiAgICAgICAgICAgICAgICBVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKICAgICAgICAgICAgICAgIFVTX0ZMX0ZJWF9JTlFVSVJZICksCgoJCQpVTlVTVUFMX0RFViggIDB4MDU3YiwgMHgwMDAwLCAweDAwMDAsIDB4MDI5OSwgCgkJIlktRSBEYXRhIiwKCQkiRmxhc2hidXN0ZXItVSIsCgkJVVNfU0NfREVWSUNFLCAgVVNfUFJfQ0IsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiksCgpVTlVTVUFMX0RFViggIDB4MDU3YiwgMHgwMDAwLCAweDAzMDAsIDB4OTk5OSwgCgkJIlktRSBEYXRhIiwKCQkiRmxhc2hidXN0ZXItVSIsCgkJVVNfU0NfREVWSUNFLCAgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4pLAoKLyogUmVwb3J0ZWQgYnkgSm9oYW5uIENhcmRvbiA8am9oYW5uLmNhcmRvbkBmcmVlLmZyPgogKiBUaGlzIGVudHJ5IGlzIG5lZWRlZCBvbmx5IGJlY2F1c2UgdGhlIGRldmljZSByZXBvcnRzCiAqIGJJbnRlcmZhY2VDbGFzcyA9IDB4ZmYgKHZlbmRvci1zcGVjaWZpYykKICovClVOVVNVQUxfREVWKCAgMHgwNTdiLCAweDAwMjIsIDB4MDAwMCwgMHg5OTk5LCAKCQkiWS1FIERhdGEiLAoJCSJTaWxpY29uIE1lZGlhIFIvVyIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsIDApLAoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9BTEFVREEKVU5VU1VBTF9ERVYoICAweDA1ODQsIDB4MDAwOCwgMHgwMTAyLCAweDAxMDIsCgkJIkZ1amlmaWxtIiwKCQkiRFBDLVIxIChBbGF1ZGEpIiwKIAkJVVNfU0NfU0NTSSwgVVNfUFJfQUxBVURBLCBpbml0X2FsYXVkYSwgMCApLAojZW5kaWYKCi8qIEZhYnJpemlvIEZlbGxpbmkgPGZlbGxvQGxpYmVyby5pdD4gKi8KVU5VU1VBTF9ERVYoICAweDA1OTUsIDB4NDM0MywgMHgwMDAwLCAweDIyMTAsCgkJIkZ1amlmaWxtIiwKCQkiRGlnaXRhbCBDYW1lcmEgRVgtMjAgRFNDIiwKCQlVU19TQ184MDcwLCBVU19QUl9ERVZJQ0UsIE5VTEwsIDAgKSwKCi8qIFRoZSBlbnRyeSB3YXMgaGVyZSBiZWZvcmUgSSB0b29rIG92ZXIsIGFuZCBoYWQgVVNfU0NfUkJDLiBJdCB0dXJucwogKiBvdXQgdGhhdCBpc24ndCBuZWVkZWQuIEFkZGl0aW9uYWxseSwgVG9yc3RlbiBFcmlrc3NvbgogKiA8VG9yc3Rlbi5Fcmlrc3NvbkBiZXJnaWFuc2thLnNlPiBpcyBhYmxlIHRvIHVzZSBoaXMgZGV2aWNlIGZpbmUKICogd2l0aG91dCB0aGlzIGVudHJ5IGF0IGFsbCAtIGJ1dCBJIGRvbid0IHN1c3BlY3QgdGhhdCB3aWxsIGJlIHRydWUKICogZm9yIGFsbCB1c2VycyAodGhlIHByb3RvY29sIGlzIGxpa2VseSBuZWVkZWQpLCBzbyBpcyBzdGF5aW5nIGF0CiAqIHRoaXMgdGltZS4gLSBQaGlsIERpYm93aXR6IDxwaGlsQGlwb20uY29tPgogKi8KVU5VU1VBTF9ERVYoICAweDA1OWYsIDB4YTYwMSwgMHgwMjAwLCAweDAyMDAsIAoJCSJMYUNpZSIsCgkJIlVTQiBIYXJkIERpc2siLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfQ0IsIE5VTEwsIDAgKSwKCi8qIFN1Ym1pdHRlZCBieSBKb2VsIEJvdXJxdWFyZCA8bnVtbG9ja0BmcmVlc3VyZi5jaD4KICogU29tZSB2ZXJzaW9ucyBvZiB0aGlzIGRldmljZSBuZWVkIHRoZSBTdWJDbGFzcyBhbmQgUHJvdG9jb2wgb3ZlcnJpZGVzCiAqIHdoaWxlIG90aGVycyBkb24ndC4KICovClVOVVNVQUxfREVWKCAgMHgwNWFiLCAweDAwNjAsIDB4MTEwNCwgMHgxMTEwLAoJCSJJbi1TeXN0ZW0iLAoJCSJQeXJvR2F0ZSBFeHRlcm5hbCBDRC1ST00gRW5jbG9zdXJlIChGQ0QtNTIzKSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQlVMSywgTlVMTCwKCQlVU19GTF9ORUVEX09WRVJSSURFICksCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0lTRDIwMApVTlVTVUFMX0RFViggIDB4MDVhYiwgMHgwMDMxLCAweDAxMDAsIDB4MDExMCwKCQkiSW4tU3lzdGVtIiwKCQkiVVNCL0lERSBCcmlkZ2UgKEFUQS9BVEFQSSkiLAoJCVVTX1NDX0lTRDIwMCwgVVNfUFJfQlVMSywgaXNkMjAwX0luaXRpYWxpemF0aW9uLAoJCTAgKSwKClVOVVNVQUxfREVWKCAgMHgwNWFiLCAweDAzMDEsIDB4MDEwMCwgMHgwMTEwLAoJCSJJbi1TeXN0ZW0iLAoJCSJQb3J0YWJsZSBVU0IgSGFyZGRyaXZlIFYyIiwKCQlVU19TQ19JU0QyMDAsIFVTX1BSX0JVTEssIGlzZDIwMF9Jbml0aWFsaXphdGlvbiwKCQkwICksCgpVTlVTVUFMX0RFViggIDB4MDVhYiwgMHgwMzUxLCAweDAxMDAsIDB4MDExMCwKCQkiSW4tU3lzdGVtIiwKCQkiUG9ydGFibGUgVVNCIEhhcmRkcml2ZSBWMiIsCgkJVVNfU0NfSVNEMjAwLCBVU19QUl9CVUxLLCBpc2QyMDBfSW5pdGlhbGl6YXRpb24sCgkJMCApLAoKVU5VU1VBTF9ERVYoICAweDA1YWIsIDB4NTcwMSwgMHgwMTAwLCAweDAxMTAsCgkJIkluLVN5c3RlbSIsCgkJIlVTQiBTdG9yYWdlIEFkYXB0ZXIgVjIiLAoJCVVTX1NDX0lTRDIwMCwgVVNfUFJfQlVMSywgaXNkMjAwX0luaXRpYWxpemF0aW9uLAoJCTAgKSwKI2VuZGlmCgovKiBTdWJtaXR0ZWQgYnkgU3ZlbiBBbmRlcnNvbiA8c3Zlbi1saW51eEBhbmRlcnNvbi5kZT4KICogVGhlcmUgYXJlIGF0IGxlYXN0IGZvdXIgUHJvZHVjdElEcyB1c2VkIGZvciBpUG9kcywgc28gSSBhZGRlZCAweDEyMDIgYW5kCiAqIDB4MTIwNC4gVGhleSBqdXN0IG5lZWQgdGhlIFVTX0ZMX0ZJWF9DQVBBQ0lUWS4gQXMgdGhlIGJjZERldmljZSBhcHBlYXJzCiAqIHRvIGNoYW5nZSB3aXRoIGZpcm13YXJlIHVwZGF0ZXMsIEkgY2hhbmdlZCB0aGUgcmFuZ2UgdG8gbWF4aW11bSBmb3IgYWxsCiAqIGlQb2QgZW50cmllcy4KICovClVOVVNVQUxfREVWKCAweDA1YWMsIDB4MTIwMiwgMHgwMDAwLCAweDk5OTksCgkJIkFwcGxlIiwKCQkiaVBvZCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZICksCgovKiBSZXBvcnRlZCBieSBBdmkgS2l2aXR5IDxhdmlAYXJnby5jby5pbD4gKi8KVU5VU1VBTF9ERVYoIDB4MDVhYywgMHgxMjAzLCAweDAwMDAsIDB4OTk5OSwKCQkiQXBwbGUiLAoJCSJpUG9kIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkgKSwKClVOVVNVQUxfREVWKCAweDA1YWMsIDB4MTIwNCwgMHgwMDAwLCAweDk5OTksCgkJIkFwcGxlIiwKCQkiaVBvZCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZICksCgpVTlVTVUFMX0RFViggMHgwNWFjLCAweDEyMDUsIDB4MDAwMCwgMHg5OTk5LAoJCSJBcHBsZSIsCgkJImlQb2QiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSApLAoKLyoKICogUmVwb3J0ZWQgYnkgVHlzb24gVmluc29uIDxsb3Jub3NzQGdtYWlsLmNvbT4KICogVGhpcyBwYXJ0aWN1bGFyIHByb2R1Y3RJZCBpcyB0aGUgaVBvZCBOYW5vCiAqLwpVTlVTVUFMX0RFViggMHgwNWFjLCAweDEyMGEsIDB4MDAwMCwgMHg5OTk5LAoJCSJBcHBsZSIsCgkJImlQb2QiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSApLAoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9KVU1QU0hPVApVTlVTVUFMX0RFViggIDB4MDVkYywgMHgwMDAxLCAweDAwMDAsIDB4MDAwMSwKCQkiTGV4YXIiLAoJCSJKdW1wc2hvdCBVU0IgQ0YgUmVhZGVyIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9KVU1QU0hPVCwgTlVMTCwKCQlVU19GTF9ORUVEX09WRVJSSURFICksCiNlbmRpZgoKLyogUmVwb3J0ZWQgYnkgQmxha2UgTWF0aGVueSA8Ym1hdGhlbnlAcHVyZHVlLmVkdT4gKi8KVU5VU1VBTF9ERVYoICAweDA1ZGMsIDB4YjAwMiwgMHgwMDAwLCAweDAxMTMsCgkJIkxleGFyIiwKCQkiVVNCIENGIFJlYWRlciIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKCi8qIFRoZSBmb2xsb3dpbmcgdHdvIGVudHJpZXMgYXJlIGZvciBhIEdlbmVzeXMgVVNCIHRvIElERQogKiBjb252ZXJ0ZXIgY2hpcCwgYnV0IGl0IGNoYW5nZXMgaXRzIFByb2R1Y3RJZCBkZXBlbmRpbmcKICogb24gd2hldGhlciBvciBub3QgYSBkaXNrIG9yIGFuIG9wdGljYWwgZGV2aWNlIGlzIGVuY2xvc2VkCiAqIFRoZXkgd2VyZSBvcmlnaW5hbGx5IHJlcG9ydGVkIGJ5IEFsZXhhbmRlciBPbHR1CiAqIDxhbGV4YW5kZXJAYWxsLTIuY29tPiBhbmQgUGV0ZXIgTWFya3MgPHBldGVyLm1hcmtzQHR1cm5lci5jb20+CiAqIHJlc3BlY3RpdmVseS4KICovClVOVVNVQUxfREVWKCAgMHgwNWUzLCAweDA3MDEsIDB4MDAwMCwgMHhmZmZmLAoJCSJHZW5lc3lzIExvZ2ljIiwKCQkiVVNCIHRvIElERSBPcHRpY2FsIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9HT19TTE9XICksCgpVTlVTVUFMX0RFViggIDB4MDVlMywgMHgwNzAyLCAweDAwMDAsIDB4ZmZmZiwKCQkiR2VuZXN5cyBMb2dpYyIsCgkJIlVTQiB0byBJREUgRGlzayIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfR09fU0xPVyApLAoKLyogUmVwb3J0ZWQgYnkgSGFubm8gQm9lY2sgPGhhbm5vQGdteC5kZT4KICogVGFrZW4gZnJvbSB0aGUgTHljb3JpcyBLZXJuZWwgKi8KVU5VU1VBTF9ERVYoICAweDA2MzYsIDB4MDAwMywgMHgwMDAwLCAweDk5OTksCgkJIlZpdml0YXIiLAoJCSJWaXZpY2FtIDM1WHgiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0JVTEssIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKClVOVVNVQUxfREVWKCAgMHgwNjQ0LCAweDAwMDAsIDB4MDEwMCwgMHgwMTAwLCAKCQkiVEVBQyIsCgkJIkZsb3BweSBEcml2ZSIsCgkJVVNfU0NfVUZJLCBVU19QUl9DQiwgTlVMTCwgMCApLCAKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjA5ClVOVVNVQUxfREVWKCAgMHgwNjZiLCAweDAxMDUsIDB4MDEwMCwgMHgwMTAwLCAKCQkiT2x5bXB1cyIsCgkJIkNhbWVkaWEgTUFVU0ItMiIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfRVVTQl9TRERSMDksIHVzYl9zdG9yX3NkZHIwOV9pbml0LAoJCTApLAojZW5kaWYKCi8qIFJlcG9ydGVkIGJ5IERhcnNlbiBMdSA8ZGFyc2VuQG1pY3JvLmVlLm50aHUuZWR1LnR3PiAqLwpVTlVTVUFMX0RFViggMHgwNjZmLCAweDgwMDAsIDB4MDAwMSwgMHgwMDAxLAoJCSJTaWdtYVRlbCIsCgkJIlVTQk1TQyBBdWRpbyBQbGF5ZXIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSApLAoKLyogUmVwb3J0ZWQgYnkgUmljaGFyZCAtPVtdPS0gPG1pY3JvX2ZseWVyQGhvdG1haWwuY29tPiAqLwpVTlVTVUFMX0RFViggMHgwNjdiLCAweDI1MDcsIDB4MDEwMCwgMHgwMTAwLAoJCSJQcm9saWZpYyBUZWNobm9sb2d5IEluYy4iLAoJCSJNYXNzIFN0b3JhZ2UgRGV2aWNlIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkgfCBVU19GTF9HT19TTE9XICksCgovKiBSZXBvcnRlZCBieSBBbGV4IEJ1dGNoZXIgPGFsZXguYnV0Y2hlckBhc3N1cnN5cy5jby51az4gKi8KVU5VU1VBTF9ERVYoIDB4MDY3YiwgMHgzNTA3LCAweDAwMDEsIDB4MDAwMSwKCQkiUHJvbGlmaWMgVGVjaG5vbG9neSBJbmMuIiwKCQkiQVRBUEktNiBCcmlkZ2UgQ29udHJvbGxlciIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZIHwgVVNfRkxfR09fU0xPVyApLAoKLyogU3VibWl0dGVkIGJ5IEJlbm55IFNqb3N0cmFuZCA8YmVubnlAaG9zdG1vYmlsaXR5LmNvbT4gKi8KVU5VU1VBTF9ERVYoIDB4MDY4NiwgMHg0MDExLCAweDAwMDEsIDB4MDAwMSwKCQkiTWlub2x0YSIsCgkJIkRpbWFnZSBGMzAwIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9CVUxLLCBOVUxMLCAwICksCgovKiBSZXBvcnRlZCBieSBNaWd1ZWwgQS4gRm9zYXMgPGFtbjNzMWFAb25vLmNvbT4gKi8KVU5VU1VBTF9ERVYoICAweDA2ODYsIDB4NDAxNywgMHgwMDAxLCAweDAwMDEsCiAgICAgICAgICAgICAgICAiTWlub2x0YSIsCiAgICAgICAgICAgICAgICAiRElNQUdFIEUyMjMiLAogICAgICAgICAgICAgICAgVVNfU0NfU0NTSSwgVVNfUFJfREVWSUNFLCBOVUxMLCAwICksCgpVTlVTVUFMX0RFViggIDB4MDY5MywgMHgwMDA1LCAweDAxMDAsIDB4MDEwMCwKCQkiSGFnaXdhcmEiLAoJCSJGbGFzaGdhdGUiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0JVTEssIE5VTEwsIDAgKSwgCgovKiBSZXBvcnRlZCBieSBEYXZpZCBIYW1pbHRvbiA8bmlmdGltdXNtYXhpbXVzQGx5Y29zLmNvbT4gKi8KVU5VU1VBTF9ERVYoICAweDA2OWIsIDB4MzAwNCwgMHgwMDAxLCAweDAwMDEsCgkJIlRob21zb24gTXVsdGltZWRpYSBJbmMuIiwKCQkiUkNBIFJEMTA4MCBNUDMgUGxheWVyIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkgKSwKCi8qIFJlcG9ydGVkIGJ5IE9saXZpZXIgQmxvbmRlYXUgPHplaXRvdW5AZ21haWwuY29tPiAqLwpVTlVTVUFMX0RFViggIDB4MDcyNywgMHgwMzA2LCAweDAxMDAsIDB4MDEwMCwKCQkiQVRNRUwiLAoJCSJTTkQxIFN0b3JhZ2UiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFKSwKCi8qIFN1Ym1pdHRlZCBieSBSb21hbiBIb2RlayA8cm9tYW5AaG9kZWsubmV0PiAqLwpVTlVTVUFMX0RFViggIDB4MDc4MSwgMHgwMDAxLCAweDAyMDAsIDB4MDIwMCwKCQkiU2FuZGlzayIsCgkJIkltYWdlTWF0ZSBTRERSLTA1YSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQ0IsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKVU5VU1VBTF9ERVYoICAweDA3ODEsIDB4MDAwMiwgMHgwMDA5LCAweDAwMDksCgkJIlNhbkRpc2sgQ29ycG9yYXRpb24iLAoJCSJJbWFnZU1hdGUgQ29tcGFjdEZsYXNoIFVTQiIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZICksCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX1VTQkFUClVOVVNVQUxfREVWKCAgMHgwNzgxLCAweDAwMDUsIDB4MDAwNSwgMHgwMDA1LAoJCSJTYW5kaXNrIiwKCQkiSW1hZ2VNYXRlIFNERFItMDViIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9VU0JBVCwgaW5pdF91c2JhdCwKCQlVU19GTF9TSU5HTEVfTFVOICksCiNlbmRpZgoKVU5VU1VBTF9ERVYoICAweDA3ODEsIDB4MDEwMCwgMHgwMTAwLCAweDAxMDAsCgkJIlNhbmRpc2siLAoJCSJJbWFnZU1hdGUgU0REUi0xMiIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQ0IsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9TRERSMDkKVU5VU1VBTF9ERVYoICAweDA3ODEsIDB4MDIwMCwgMHgwMDAwLCAweDk5OTksIAoJCSJTYW5kaXNrIiwKCQkiSW1hZ2VNYXRlIFNERFItMDkiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0VVU0JfU0REUjA5LCB1c2Jfc3Rvcl9zZGRyMDlfaW5pdCwKCQkwKSwKI2VuZGlmCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0ZSRUVDT00KVU5VU1VBTF9ERVYoICAweDA3YWIsIDB4ZmMwMSwgMHgwMDAwLCAweDk5OTksCgkJIkZyZWVjb20iLAoJCSJVU0ItSURFIiwKCQlVU19TQ19RSUMsIFVTX1BSX0ZSRUVDT00sIGZyZWVjb21faW5pdCwgMCksCiNlbmRpZgoKLyogUmVwb3J0ZWQgYnkgRWVybyBWb2xvdGluZW4gPGVlcm9AcGluZy12aWluaS5vcmc+ICovClVOVVNVQUxfREVWKCAgMHgwN2FiLCAweGZjY2QsIDB4MDAwMCwgMHg5OTk5LAoJCSJGcmVlY29tIFRlY2hub2xvZ2llcyIsCgkJIkZIRC1DbGFzc2ljIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkpLAoKVU5VU1VBTF9ERVYoICAweDA3YWYsIDB4MDAwNCwgMHgwMTAwLCAweDAxMzMsIAoJCSJNaWNyb3RlY2giLAoJCSJVU0ItU0NTSS1EQjI1IiwKCQlVU19TQ19TQ1NJLCBVU19QUl9CVUxLLCB1c2Jfc3Rvcl9ldXNjc2lfaW5pdCwKCQlVU19GTF9TQ01fTVVMVF9UQVJHICksIAoKVU5VU1VBTF9ERVYoICAweDA3YWYsIDB4MDAwNSwgMHgwMTAwLCAweDAxMDAsIAoJCSJNaWNyb3RlY2giLAoJCSJVU0ItU0NTSS1IRDUwIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgdXNiX3N0b3JfZXVzY3NpX2luaXQsCgkJVVNfRkxfU0NNX01VTFRfVEFSRyApLCAKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfRFBDTQpVTlVTVUFMX0RFViggIDB4MDdhZiwgMHgwMDA2LCAweDAxMDAsIDB4MDEwMCwKCQkiTWljcm90ZWNoIiwKCQkiQ2FtZXJhTWF0ZSAoRFBDTV9VU0IpIiwKIAkJVVNfU0NfU0NTSSwgVVNfUFJfRFBDTV9VU0IsIE5VTEwsIDAgKSwKI2VuZGlmCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQQpVTlVTVUFMX0RFViggIDB4MDdiNCwgMHgwMTBhLCAweDAxMDIsIDB4MDEwMiwKCQkiT2x5bXB1cyIsCgkJIk1BVVNCLTEwIChBbGF1ZGEpIiwKIAkJVVNfU0NfU0NTSSwgVVNfUFJfQUxBVURBLCBpbml0X2FsYXVkYSwgMCApLAojZW5kaWYKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfREFUQUZBQgpVTlVTVUFMX0RFViggIDB4MDdjNCwgMHhhMDAwLCAweDAwMDAsIDB4MDAxNSwKCQkiRGF0YWZhYiIsCgkJIk1EQ0ZFLUIgVVNCIENGIFJlYWRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfREFUQUZBQiwgTlVMTCwKCQkwICksCgovKgogKiBUaGUgZm9sbG93aW5nIERhdGFmYWItYmFzZWQgZGV2aWNlcyBtYXkgb3IgbWF5IG5vdCB3b3JrCiAqIHVzaW5nIHRoZSBjdXJyZW50IGRyaXZlci4uLnRoZSAweGZmZmYgaXMgYXJiaXRyYXJ5IHNpbmNlIEkKICogZG9uJ3Qga25vdyB3aGF0IGRldmljZSB2ZXJzaW9ucyBleGlzdCBmb3IgdGhlc2UgZ3V5cy4KICoKICogVGhlIDB4YTAwMyBhbmQgMHhhMDA0IGRldmljZXMgaW4gcGFydGljdWxhciBJJ20gY3VyaW91cyBhYm91dC4KICogSSdtIHRvbGQgdGhleSBleGlzdCBidXQgc28gZmFyIG5vYm9keSBoYXMgY29tZSBmb3J3YXJkIHRvIHNheSB0aGF0CiAqIHRoZXkgd29yayB3aXRoIHRoaXMgZHJpdmVyLiAgR2l2ZW4gdGhlIHN1Y2Nlc3Mgd2UndmUgaGFkIGdldHRpbmcKICogb3RoZXIgRGF0YWZhYi1iYXNlZCBjYXJkcyBvcGVyYXRpb25hbCB3aXRoIHRoaXMgZHJpdmVyLCBJJ3ZlIGRlY2lkZWQKICogdG8gbGVhdmUgdGhlc2UgdHdvIGRldmljZXMgaW4gdGhlIGxpc3QuCiAqLwpVTlVTVUFMX0RFViggMHgwN2M0LCAweGEwMDEsIDB4MDAwMCwgMHhmZmZmLAoJCSJTSUlHL0RhdGFmYWIiLAoJCSJTSUlHL0RhdGFmYWIgTWVtb3J5IFN0aWNrK0NGIFJlYWRlci9Xcml0ZXIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0RBVEFGQUIsIE5VTEwsCgkJMCApLAoKLyogUmVwb3J0ZWQgYnkgSm9zZWYgUmVpc2luZ2VyIDxqb3NlZi5yZWlzaW5nZXJAbmV0Y29sb2duZS5kZT4gKi8KVU5VU1VBTF9ERVYoIDB4MDdjNCwgMHhhMDAyLCAweDAwMDAsIDB4ZmZmZiwKCQkiRGF0YWZhYi9Vbmtub3duIiwKCQkiTUQyL01EMyBEaXNrIGVuY2xvc3VyZSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfREFUQUZBQiwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCgpVTlVTVUFMX0RFViggMHgwN2M0LCAweGEwMDMsIDB4MDAwMCwgMHhmZmZmLAoJCSJEYXRhZmFiL1Vua25vd24iLAoJCSJEYXRhZmFiLWJhc2VkIFJlYWRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfREFUQUZBQiwgTlVMTCwKCQkwICksCgpVTlVTVUFMX0RFViggMHgwN2M0LCAweGEwMDQsIDB4MDAwMCwgMHhmZmZmLAoJCSJEYXRhZmFiL1Vua25vd24iLAoJCSJEYXRhZmFiLWJhc2VkIFJlYWRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfREFUQUZBQiwgTlVMTCwKCQkwICksCgpVTlVTVUFMX0RFViggMHgwN2M0LCAweGEwMDUsIDB4MDAwMCwgMHhmZmZmLAoJCSJQTlkvRGF0YWZhYiIsCgkJIlBOWS9EYXRhZmFiIENGK1NNIFJlYWRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfREFUQUZBQiwgTlVMTCwKCQkwICksCgpVTlVTVUFMX0RFViggMHgwN2M0LCAweGEwMDYsIDB4MDAwMCwgMHhmZmZmLAoJCSJTaW1wbGUgVGVjaC9EYXRhZmFiIiwKCQkiU2ltcGxlIFRlY2gvRGF0YWZhYiBDRitTTSBSZWFkZXIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0RBVEFGQUIsIE5VTEwsCgkJMCApLAojZW5kaWYKCQkKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUKLyogQ29udHJpYnV0ZWQgYnkgUGV0ZXIgV2FlY2h0bGVyICovClVOVVNVQUxfREVWKCAweDA3YzQsIDB4YTEwMywgMHgwMDAwLCAweDk5OTksCgkJIkRhdGFmYWIiLAoJCSJNRFNNLUIgcmVhZGVyIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9TRERSNTUsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKI2VuZGlmCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0RBVEFGQUIKLyogU3VibWl0dGVkIGJ5IE9sYWYgSGVyaW5nIDxvbGhAc3VzZS5kZT4gKi8KVU5VU1VBTF9ERVYoICAweDA3YzQsIDB4YTEwOSwgMHgwMDAwLCAweGZmZmYsCgkJIkRhdGFmYWIgU3lzdGVtcywgSW5jLiIsCgkJIlVTQiB0byBDRiArIFNNIENvbWJvIChMQzEpIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9EQVRBRkFCLCBOVUxMLAoJCTAgKSwKI2VuZGlmCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjU1Ci8qIFNNIHBhcnQgLSBhZWIgPEFuZHJpZXMuQnJvdXdlckBjd2kubmw+ICovClVOVVNVQUxfREVWKCAgMHgwN2M0LCAweGExMDksIDB4MDAwMCwgMHhmZmZmLAoJCSJEYXRhZmFiIFN5c3RlbXMsIEluYy4iLAoJCSJVU0IgdG8gQ0YgKyBTTSBDb21ibyAoTEMxKSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfU0REUjU1LCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4gKSwKI2VuZGlmCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0RBVEFGQUIKLyogUmVwb3J0ZWQgYnkgRmVsaXggTW9lbGxlciA8ZmVsaXhAZGVya2xlY2tzLmRlPgogKiBpbiBHZXJtYW55IHRoaXMgaXMgc29sZCBieSBIYW1hIHdpdGggdGhlIHByb2R1Y3RudW1iZXIgNDY5NTIKICogYXMgIkR1YWxTbG90IENvbXBhY3RGbGFzaChUTSkgJiBNU3RpY2sgRHJpdmUgVVNCIgogKi8KVU5VU1VBTF9ERVYoICAweDA3YzQsIDB4YTEwYiwgMHgwMDAwLCAweGZmZmYsCiAgICAgICAgICAgICAgICAiRGF0YUZhYiBTeXN0ZW1zIEluYy4iLAogICAgICAgICAgICAgICAgIlVTQiBDRitNUyIsCiAgICAgICAgICAgICAgICBVU19TQ19TQ1NJLCBVU19QUl9EQVRBRkFCLCBOVUxMLAogICAgICAgICAgICAgICAgMCApLAoKI2VuZGlmCgovKiBEYXRhZmFiIEtFQ0YtVVNCIC8gU2FnYXRlayBEQ1MtQ0YgLyBTaW1wbGV0ZWNoIEZsYXNobGluayBVQ0YtMTAwCiAqIE9ubHkgcmV2aXNpb24gMS4xMyB0ZXN0ZWQgKHNhbWUgZm9yIGFsbCBvZiB0aGUgYWJvdmUgZGV2aWNlcywKICogYmFzZWQgb24gdGhlIERhdGFmYWIgREYtVUctMDcgY2hpcCkuICBOZWVkZWQgZm9yIFVTX0ZMX0ZJWF9JTlFVSVJZLgogKiBTdWJtaXR0ZWQgYnkgTWFyZWsgTWljaGFsa2lld2ljeiA8bWFyZWttQGFtZWxlay5nZGEucGw+LgogKiBTZWUgYWxzbyBodHRwOi8vbWFydGluLndpbGNrLmJlaS50LW9ubGluZS5kZS8ja2VjZiAuCiAqLwpVTlVTVUFMX0RFViggIDB4MDdjNCwgMHhhNDAwLCAweDAwMDAsIDB4ZmZmZiwKCQkiRGF0YWZhYiIsCgkJIktFQ0YtVVNCIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfSU5RVUlSWSApLAoKLyogQ2FzaW8gUVYgMngwMC8zeDAwLzQwMDAvODAwMCBkaWdpdGFsIHN0aWxsIGNhbWVyYXMgYXJlIG5vdCBjb25mb3JtYW50CiAqIHRvIHRoZSBVU0Igc3RvcmFnZSBzcGVjaWZpY2F0aW9uIGluIHR3byB3YXlzOgogKiAtIFRoZXkgdGVsbCB1cyB0aGV5IGFyZSB1c2luZyB0cmFuc3BvcnQgcHJvdG9jb2wgQ0JJLiBJbiByZWFsaXR5IHRoZXkKICogICBhcmUgdXNpbmcgdHJhbnNwb3J0IHByb3RvY29sIENCLgogKiAtIFRoZXkgZG9uJ3QgbGlrZSB0aGUgSU5RVUlSWSBjb21tYW5kLiBTbyB3ZSBtdXN0IGhhbmRsZSB0aGlzIGNvbW1hbmQKICogICBvZiB0aGUgU0NTSSBsYXllciBvdXJzZWx2ZXMuCiAqIC0gU29tZSBjYW1lcmFzIHdpdGggaWRQcm9kdWN0PTB4MTAwMSBhbmQgYmNkRGV2aWNlPTB4MTAwMCBoYXZlCiAqICAgYkludGVyZmFjZVByb3RvY29sPTB4MDAgKFVTX1BSX0NCSSkgd2hpbGUgb3RoZXJzIGhhdmUgMHgwMSAoVVNfUFJfQ0IpLgogKiAgIFNvIGRvbid0IHJlbW92ZSB0aGUgVVNfUFJfQ0Igb3ZlcnJpZGUhCiAqIC0gQ2FtZXJhcyB3aXRoIGJjZERldmljZT0weDkwMDkgcmVxdWlyZSB0aGUgVVNfU0NfODA3MCBvdmVycmlkZS4KICovClVOVVNVQUxfREVWKCAweDA3Y2YsIDB4MTAwMSwgMHgxMDAwLCAweDk5OTksCgkJIkNhc2lvIiwKCQkiUVYgRGlnaXRhbENhbWVyYSIsCgkJVVNfU0NfODA3MCwgVVNfUFJfQ0IsIE5VTEwsCgkJVVNfRkxfTkVFRF9PVkVSUklERSB8IFVTX0ZMX0ZJWF9JTlFVSVJZICksCgovKiBTdWJtaXR0ZWQgYnkgSGFydG11dCBXYWhsIDxod2FobEBod2FobC5kZT4qLwpVTlVTVUFMX0RFViggMHgwODM5LCAweDAwMGEsIDB4MDAwMSwgMHgwMDAxLAoJCSJTYW1zdW5nIiwKCQkiRGlnaW1heCA0MTAiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZKSwKCi8qIEVudHJ5IGFuZCBzdXBwb3J0aW5nIHBhdGNoIGJ5IFRoZW9kb3JlIEtpbGdvcmUgPGtpbGdvdGFAYXVidXJuLmVkdT4uCiAqIEZsYWcgd2lsbCBzdXBwb3J0IEJ1bGsgZGV2aWNlcyB3aGljaCB1c2UgYSBzdGFuZGFyZHMtdmlvbGF0aW5nIDMyLWJ5dGUKICogQ29tbWFuZCBCbG9jayBXcmFwcGVyLiBIZXJlLCB0aGUgIkRDMk1FR0EiIGNhbWVyYXMgKHNldmVyYWwgYnJhbmRzKSB3aXRoCiAqIEdyYW5kdGVjaCBHVDg5MnggY2hpcCwgd2hpY2ggcmVxdWVzdCAiUHJvcHJpZXRhcnkgU0NTSSBCdWxrIiBzdXBwb3J0LgogKi8KClVOVVNVQUxfREVWKCAgMHgwODRkLCAweDAwMTEsIDB4MDExMCwgMHgwMTEwLAoJCSJHcmFuZHRlY2giLAoJCSJEQzJNRUdBIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9CVUxLMzIpLAoKLyogU3VibWl0dGVkIGJ5IEphbiBEZSBMdXljayA8bGttbEBrY29yZS5vcmc+ICovClVOVVNVQUxfREVWKCAgMHgwOGJkLCAweDExMDAsIDB4MDAwMCwgMHgwMDAwLAoJCSJDSVRJWkVOIiwKCQkiWDFERS1VU0IiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4pLAoKLyogRW50cnkgbmVlZGVkIGZvciBmbGFncy4gTW9yZW92ZXIsIGFsbCBkZXZpY2VzIHdpdGggdGhpcyBJRCB1c2UKICogYnVsay1vbmx5IHRyYW5zcG9ydCwgYnV0IF9zb21lXyBmYWxzZWx5IHJlcG9ydCBDb250cm9sL0J1bGsgaW5zdGVhZC4KICogT25lIGV4YW1wbGUgaXMgIlRydW1waW9uIERpZ2l0YWwgUmVzZWFyY2ggTVlNUDMiLgogKiBTdWJtaXR0ZWQgYnkgQmpvZXJuIEJyaWxsIDxicmlsbChhdClmcy5tYXRoLnVuaS1mcmFua2Z1cnQuZGU+CiAqLwpVTlVTVUFMX0RFViggIDB4MDkwYSwgMHgxMDAxLCAweDAxMDAsIDB4MDEwMCwKCQkiVHJ1bXBpb24iLAoJCSJ0MzM1MjAgVVNCIEZsYXNoIENhcmQgQ29udHJvbGxlciIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9CVUxLLCBOVUxMLAoJCVVTX0ZMX05FRURfT1ZFUlJJREUgKSwKCi8qIFJlcG9ydGVkIGJ5IEZpbGlwcG8gQmFyZGVsbGkgPGZpbGliYXJkQGxpYmVyby5pdD4KICogVGhlIGRldmljZSByZXBvcnRzIGEgc3ViY2xhc3Mgb2YgUkJDLCB3aGljaCBpcyB3cm9uZy4KICovClVOVVNVQUxfREVWKCAgMHgwOTBhLCAweDEwNTAsIDB4MDEwMCwgMHgwMTAwLAoJCSJUcnVtcGlvbiBNaWNyb2VsZWN0cm9uaWNzLCBJbmMuIiwKCQkiMzM1MjAgVVNCIERpZ2l0YWwgVm9pY2UgUmVjb3JkZXIiLAoJCVVTX1NDX1VGSSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCTApLAoKLyogVHJ1bXBpb24gTWljcm9lbGVjdHJvbmljcyBNUDMgcGxheWVyIChmZWxpcGVfYWxmYXJvQGxpbnV4bWFpbC5vcmcpICovClVOVVNVQUxfREVWKCAweDA5MGEsIDB4MTIwMCwgMHgwMDAwLCAweDk5OTksCgkJIlRydW1waW9uIiwKCQkiTVAzIHBsYXllciIsCgkJVVNfU0NfUkJDLCBVU19QUl9CVUxLLCBOVUxMLAoJCTAgKSwKCi8qIGFlYiAqLwpVTlVTVUFMX0RFViggMHgwOTBjLCAweDExMzIsIDB4MDAwMCwgMHhmZmZmLAoJCSJGZWl5YSIsCgkJIjUtaW4tMSBDYXJkIFJlYWRlciIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZICksCgovKiBUaGlzIFBlbnRheCBzdGlsbCBjYW1lcmEgaXMgbm90IGNvbmZvcm1hbnQKICogdG8gdGhlIFVTQiBzdG9yYWdlIHNwZWNpZmljYXRpb246IC0KICogLSBJdCBkb2VzIG5vdCBsaWtlIHRoZSBJTlFVSVJZIGNvbW1hbmQuIFNvIHdlIG11c3QgaGFuZGxlIHRoaXMgY29tbWFuZAogKiAgIG9mIHRoZSBTQ1NJIGxheWVyIG91cnNlbHZlcy4KICogVGVzdGVkIG9uIFJldi4gMTAuMDAgKDB4MTAwMCkKICogU3VibWl0dGVkIGJ5IEphbWVzIENvdXJ0aWVyLUR1dHRvbiA8SmFtZXNAc3VwZXJidWcuZGVtb24uY28udWs+CiAqLwpVTlVTVUFMX0RFViggMHgwYTE3LCAweDAwMDQsIDB4MTAwMCwgMHgxMDAwLAogICAgICAgICAgICAgICAgIlBlbnRheCIsCiAgICAgICAgICAgICAgICAiT3B0aW8gMi8zLzQwMCIsCiAgICAgICAgICAgICAgICBVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKICAgICAgICAgICAgICAgIFVTX0ZMX0ZJWF9JTlFVSVJZICksCgoKLyogU3VibWl0dGVkIGJ5IFBlciBXaW5rdmlzdCA8cGVyLndpbmt2aXN0QHVrLmNvbT4gKi8KVU5VU1VBTF9ERVYoIDB4MGExNywgMHgwMDYsIDB4MDAwMCwgMHhmZmZmLAogICAgICAgICAgICAgICAgIlBlbnRheCIsCiAgICAgICAgICAgICAgICAiT3B0aW8gUy9TNCIsCiAgICAgICAgICAgICAgICBVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKICAgICAgICAgICAgICAgIFVTX0ZMX0ZJWF9JTlFVSVJZICksCgkJCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfSVNEMjAwClVOVVNVQUxfREVWKCAgMHgwYmY2LCAweGEwMDEsIDB4MDEwMCwgMHgwMTEwLAoJCSJBVEkiLAoJCSJVU0IgQ2FibGUgMjA1IiwKCQlVU19TQ19JU0QyMDAsIFVTX1BSX0JVTEssIGlzZDIwMF9Jbml0aWFsaXphdGlvbiwKCQkwICksCiNlbmRpZgoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9EQVRBRkFCClVOVVNVQUxfREVWKCAweDBjMGIsIDB4YTEwOSwgMHgwMDAwLCAweGZmZmYsCgkgICAgICAgIkFjb21kYXRhIiwKCSAgICAgICAiQ0YiLAoJICAgICAgIFVTX1NDX1NDU0ksIFVTX1BSX0RBVEFGQUIsIE5VTEwsCgkgICAgICAgVVNfRkxfU0lOR0xFX0xVTiApLAojZW5kaWYKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUKVU5VU1VBTF9ERVYoIDB4MGMwYiwgMHhhMTA5LCAweDAwMDAsIDB4ZmZmZiwKCSAgICAgICAiQWNvbWRhdGEiLAoJICAgICAgICJTTSIsCgkgICAgICAgVVNfU0NfU0NTSSwgVVNfUFJfU0REUjU1LCBOVUxMLAoJICAgICAgIFVTX0ZMX1NJTkdMRV9MVU4gKSwKI2VuZGlmCgovKiBTdWJtaXR0ZWQgYnk6IE5pY2sgU2lsbGlrIDxuLnNpbGxpa0B0ZW1wbGUuZWR1PgogKiBOZWVkZWQgZm9yIE9uZVRvdWNoIGV4dGVuc2lvbiB0byB1c2Itc3RvcmFnZQogKgogKi8KI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9PTkVUT1VDSAoJVU5VU1VBTF9ERVYoICAweDBkNDksIDB4NzAwMCwgMHgwMDAwLCAweDk5OTksCgkJCSJNYXh0b3IiLAoJCQkiT25lVG91Y2ggRXh0ZXJuYWwgSGFyZGRyaXZlIiwKCQkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIG9uZXRvdWNoX2Nvbm5lY3RfaW5wdXQsCgkJCTApLAoJVU5VU1VBTF9ERVYoICAweDBkNDksIDB4NzAxMCwgMHgwMDAwLCAweDk5OTksCgkJCSJNYXh0b3IiLAoJCQkiT25lVG91Y2ggRXh0ZXJuYWwgSGFyZGRyaXZlIiwKCQkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIG9uZXRvdWNoX2Nvbm5lY3RfaW5wdXQsCgkJCTApLAojZW5kaWYKCi8qCiAqIFBldGUgWmFpdGNldiA8emFpdGNldkB5YWhvby5jb20+LCBieiMxNjQ2ODguCiAqIFRoZSBkZXZpY2UgYmxhdGFudGx5IGlnbm9yZXMgTFVOIGFuZCByZXR1cm5zIDEgaW4gR2V0TWF4TFVOLgogKi8KVU5VU1VBTF9ERVYoIDB4MGM0NSwgMHgxMDYwLCAweDAxMDAsIDB4MDEwMCwKCQkiVW5rbm93biIsCgkJIlVua25vd24iLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4gKSwKCi8qIFN1Ym1pdHRlZCBieSBKb3JpcyBTdHJ1eXZlIDxqb3Jpc0BzdHJ1eXZlLmJlPiAqLwpVTlVTVUFMX0RFViggMHgwZDk2LCAweDQxMGEsIDB4MDAwMSwgMHhmZmZmLAoJCSJNZWRpb24iLAoJCSJNRCA3NDI1IiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfSU5RVUlSWSksCgovKgogKiBFbnRyeSBmb3IgSmVub3B0aWsgSkQgNTIwMHozCiAqCiAqIGVtYWlsOiBjYXIuYnVzc2VAZ214LmRlCiAqLwpVTlVTVUFMX0RFViggIDB4MGQ5NiwgMHg1MjAwLCAweDAwMDEsIDB4MDIwMCwKCQkiSmVub3B0aWsiLAoJCSJKRCA1MjAwIHozIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwgVVNfRkxfRklYX0lOUVVJUlkpLAoKLyogUmVwb3J0ZWQgYnkgTHVib21pciBCbGFoYSA8dHJpdG9sQHRyaWxvZ2ljLmN6PgogKiBJIF9SRUFMTFlfIGRvbid0IGtub3cgd2hhdCAzcmQsIDR0aCBudW1iZXIgYW5kIGFsbCBkZWZpbmVzIG1lYW4sIGJ1dCB0aGlzCiAqIHdvcmtzIGZvciBtZS4gQ2FuIGFueWJvZHkgY29ycmVjdCB0aGVzZSB2YWx1ZXM/IChJIGFibGUgdG8gdGVzdCBjb3JyZWN0ZWQKICogdmVyc2lvbi4pCiAqLwpVTlVTVUFMX0RFViggMHgwZGQ4LCAweDEwNjAsIDB4MDAwMCwgMHhmZmZmLAoJCSJOZXRhYyIsCgkJIlVTQi1DRi1DYXJkIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfSU5RVUlSWSApLAoKLyogUGF0Y2ggYnkgU3RlcGhhbiBXYWx0ZXIgPHN0ZXBoYW4ud2FsdGVyQGVwZmwuY2g+CiAqIEkgZG9uJ3Qga25vdyB3aHksIGJ1dCBpdCB3b3Jrcy4uLiAqLwpVTlVTVUFMX0RFViggMHgwZGRhLCAweDAwMDEsIDB4MDAxMiwgMHgwMDEyLAoJCSJXSU5XQVJEIiwKCQkiTXVzaWMgRGlzayIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFJlcG9ydGVkIGJ5IElhbiBNY0Nvbm5lbGwgPGlhbiBhdCBlbWl0LmRlbW9uLmNvLnVrPiAqLwpVTlVTVUFMX0RFViggIDB4MGRkYSwgMHgwMzAxLCAweDAwMTIsIDB4MDAxMiwKCQkiUE5QX01QMyIsCgkJIlBOUF9NUDMgUExBWUVSIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSApLAoKLyogUmVwb3J0ZWQgYnkgSmltIE1jQ2xvc2tleSA8bWNjbG9za0B1Y3NjLmVkdT4gKi8KVU5VU1VBTF9ERVYoIDB4MGUyMSwgMHgwNTIwLCAweDAxMDAsIDB4MDEwMCwKCQkiQ293b24gU3lzdGVtcyIsCgkJImlBVURJTyBNNSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9CVUxLLCBOVUxMLAoJCTAgKSwKCi8qIFN1Ym1pdHRlZCBieSBBbnRvaW5lIE1haXJlc3NlIDxhbnRvaW5lLm1haXJlc3NlQGZyZWUuZnI+ICovClVOVVNVQUxfREVWKCAweDBlZDEsIDB4NjY2MCwgMHgwMTAwLCAweDAzMDAsCgkJIlVTQiIsCgkJIlNvbGlkIHN0YXRlIGRpc2siLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZICksCgovKiBTdWJtaXR0ZWQgYnkgRGFuaWVsIERyYWtlIDxkc2RAZ2VudG9vLm9yZz4KICogUmVwb3J0ZWQgYnkgZGF5dWwgb24gdGhlIEdlbnRvbyBGb3J1bXMgKi8KVU5VU1VBTF9ERVYoICAweDBlYTAsIDB4MjE2OCwgMHgwMTEwLCAweDAxMTAsCgkJIk91cnMgVGVjaG5vbG9neSIsCgkJIkZsYXNoIERpc2siLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBSZXBvcnRlZCBieSBSYXN0aXNsYXYgU3RhbmlrIDxyc19rZXJuZWxAeWFob28uY29tPiAqLwpVTlVTVUFMX0RFViggIDB4MGVhMCwgMHg2ODI4LCAweDAxMTAsIDB4MDExMCwKCQkiVVNCIiwKCQkiRmxhc2ggRGlzayIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFJlcG9ydGVkIGJ5IE1pY2hhZWwgU3RhdHRtYW5uIDxtaWNoYWVsQHN0YXR0bWFubi5jb20+ICovClVOVVNVQUxfREVWKCAgMHgwZmNlLCAweGQwMDgsIDB4MDAwMCwgMHgwMDAwLAoJCSJTb255IEVyaWNzc29uIiwKCQkiVjgwMC1Wb2RhZm9uZSA4MDIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX05PX1dQX0RFVEVDVCApLAoKLyogUmVwb3J0ZWQgYnkgS2V2aW4gQ2VybmVrZWUgPGtwYy11c2JkZXZAZ2VsYXRvLnVpdWMuZWR1PgogKiBUZXN0ZWQgb24gaGFyZHdhcmUgdmVyc2lvbiAxLjEwLgogKiBFbnRyeSBpcyBuZWVkZWQgb25seSBmb3IgdGhlIGluaXRpYWxpemVyIGZ1bmN0aW9uIG92ZXJyaWRlLgogKi8KVU5VU1VBTF9ERVYoICAweDEwMTksIDB4MGM1NSwgMHgwMDAwLCAweDk5OTksCgkJIkRlc2tub3RlIiwKCQkiVUNSLTYxUzJCIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgdXNiX3N0b3JfdWNyNjFzMmJfaW5pdCwKCQkwICksCgovKiBSZXBvcnRlZCBieSBWaWxpdXMgQmlsaW5rZXZpY2l1cyA8dmlsaXNhcyBBVCB4eHggRE9UIGx0KSAqLwpVTlVTVUFMX0RFViggIDB4MTMyYiwgMHgwMDBiLCAweDAwMDEsIDB4MDAwMSwKCQkiTWlub2x0YSIsCgkJIkRpbWFnZSBaMTAiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCTAgKSwKCi8qIFJlcG9ydGVkIGJ5IEtvdHJsYSBWaXRlenNsYXYgPGtvdHJsYUBjZWIuY3o+ICovClVOVVNVQUxfREVWKCAgMHgxMzcwLCAweDY4MjgsIDB4MDExMCwgMHgwMTEwLAoJCSJTV0lTU0JJVCIsCgkJIkJsYWNrIFNpbHZlciIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFJlcG9ydGVkIGJ5IFJhZG92YW4gR2FyYWJpayA8Z2FyYWJpa0BrYXNzaW9wZWlhLmp1bHMuc2F2YmEuc2s+ICovClVOVVNVQUxfREVWKCAgMHgyNzM1LCAweDEwMGIsIDB4MDAwMCwgMHg5OTk5LAoJCSJNUElPIiwKCQkiSFMyMDAiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0dPX1NMT1cgKSwKCi8qCiAqIERhdmlkIEjkcmRlbWFuIDxkYXZpZEAyZ2VuLmNvbT4KICogVGhlIGtleSBtYWtlcyB0aGUgU0NTSSBzdGFjayBwcmludCBjb25mdXNpbmcgKGJ1dCBoYXJtbGVzcykgbWVzc2FnZXMKICovClVOVVNVQUxfREVWKCAgMHg0MTQ2LCAweGJhMDEsIDB4MDEwMCwgMHgwMTAwLAoJCSJJb21lZ2EiLAoJCSJNaWNybyBNaW5pIDFHQiIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsIFVTX0ZMX05PVF9MT0NLQUJMRSApLAoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUKVU5VU1VBTF9ERVYoICAweDU1YWEsIDB4YTEwMywgMHgwMDAwLCAweDk5OTksIAoJCSJTYW5kaXNrIiwKCQkiSW1hZ2VNYXRlIFNERFI1NSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfU0REUjU1LCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4pLAojZW5kaWYKCi8qIFJlcG9ydGVkIGJ5IEFuZHJldyBTaW1tb25zIDxhbmRyZXcuc2ltbW9uc0BnbWFpbC5jb20+ICovClVOVVNVQUxfREVWKCAgMHhlZDA2LCAweDQ1MDAsIDB4MDAwMSwgMHgwMDAxLAoJCSJEYXRhU3RvciIsCgkJIlVTQjQ1MDAgRlcxLjA0IiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkpLAoKLyogQ29udHJvbC9CdWxrIHRyYW5zcG9ydCBmb3IgYWxsIFN1YkNsYXNzIHZhbHVlcyAqLwpVU1VBTF9ERVYoVVNfU0NfUkJDLCBVU19QUl9DQiwgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ184MDIwLCBVU19QUl9DQiwgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ19RSUMsIFVTX1BSX0NCLCBVU0JfVVNfVFlQRV9TVE9SKSwKVVNVQUxfREVWKFVTX1NDX1VGSSwgVVNfUFJfQ0IsIFVTQl9VU19UWVBFX1NUT1IpLApVU1VBTF9ERVYoVVNfU0NfODA3MCwgVVNfUFJfQ0IsIFVTQl9VU19UWVBFX1NUT1IpLApVU1VBTF9ERVYoVVNfU0NfU0NTSSwgVVNfUFJfQ0IsIFVTQl9VU19UWVBFX1NUT1IpLAoKLyogQ29udHJvbC9CdWxrL0ludGVycnVwdCB0cmFuc3BvcnQgZm9yIGFsbCBTdWJDbGFzcyB2YWx1ZXMgKi8KVVNVQUxfREVWKFVTX1NDX1JCQywgVVNfUFJfQ0JJLCBVU0JfVVNfVFlQRV9TVE9SKSwKVVNVQUxfREVWKFVTX1NDXzgwMjAsIFVTX1BSX0NCSSwgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ19RSUMsIFVTX1BSX0NCSSwgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ19VRkksIFVTX1BSX0NCSSwgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ184MDcwLCBVU19QUl9DQkksIFVTQl9VU19UWVBFX1NUT1IpLApVU1VBTF9ERVYoVVNfU0NfU0NTSSwgVVNfUFJfQ0JJLCBVU0JfVVNfVFlQRV9TVE9SKSwKCi8qIEJ1bGstb25seSB0cmFuc3BvcnQgZm9yIGFsbCBTdWJDbGFzcyB2YWx1ZXMgKi8KVVNVQUxfREVWKFVTX1NDX1JCQywgVVNfUFJfQlVMSywgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ184MDIwLCBVU19QUl9CVUxLLCBVU0JfVVNfVFlQRV9TVE9SKSwKVVNVQUxfREVWKFVTX1NDX1FJQywgVVNfUFJfQlVMSywgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ19VRkksIFVTX1BSX0JVTEssIFVTQl9VU19UWVBFX1NUT1IpLApVU1VBTF9ERVYoVVNfU0NfODA3MCwgVVNfUFJfQlVMSywgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ19TQ1NJLCBVU19QUl9CVUxLLCAwKSwK