ZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW1pcHMvYml0b3BzLmggYi9pbmNsdWRlL2FzbS1taXBzL2JpdG9wcy5oCmluZGV4IGVkZmY0YzAuLjU2ZDcyMjUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW1pcHMvYml0b3BzLmgKKysrIGIvaW5jbHVkZS9hc20tbWlwcy9iaXRvcHMuaApAQCAtMTYxLDcgKzE2MSw3IEBACiAgKiBAbnI6IEJpdCB0byBzZXQKICAqIEBhZGRyOiBBZGRyZXNzIHRvIGNvdW50IGZyb20KICAqCi0gKiBUaGlzIG9wZXJhdGlvbiBpcyBhdG9taWMgYW5kIGNhbm5vdCBiZSByZW9yZGVyZWQuICAKKyAqIFRoaXMgb3BlcmF0aW9uIGlzIGF0b21pYyBhbmQgY2Fubm90IGJlIHJlb3JkZXJlZC4KICAqIEl0IGFsc28gaW1wbGllcyBhIG1lbW9yeSBiYXJyaWVyLgogICovCiBleHRlcm4gX19pbmxpbmVfXyBpbnQKQEAgLTE5MCw3ICsxOTAsNyBAQAogICogQG5yOiBCaXQgdG8gc2V0CiAgKiBAYWRkcjogQWRkcmVzcyB0byBjb3VudCBmcm9tCiAgKgotICogVGhpcyBvcGVyYXRpb24gaXMgbm9uLWF0b21pYyBhbmQgY2FuIGJlIHJlb3JkZXJlZC4gIAorICogVGhpcyBvcGVyYXRpb24gaXMgbm9uLWF0b21pYyBhbmQgY2FuIGJlIHJlb3JkZXJlZC4KICAqIElmIHR3byBleGFtcGxlcyBvZiB0aGlzIG9wZXJhdGlvbiByYWNlLCBvbmUgY2FuIGFwcGVhciB0byBzdWNjZWVkCiAgKiBidXQgYWN0dWFsbHkgZmFpbC4gIFlvdSBtdXN0IHByb3RlY3QgbXVsdGlwbGUgYWNjZXNzZXMgd2l0aCBhIGxvY2suCiAgKi8KQEAgLTIxMiw3ICsyMTIsNyBAQAogICogQG5yOiBCaXQgdG8gc2V0CiAgKiBAYWRkcjogQWRkcmVzcyB0byBjb3VudCBmcm9tCiAgKgotICogVGhpcyBvcGVyYXRpb24gaXMgYXRvbWljIGFuZCBjYW5ub3QgYmUgcmVvcmRlcmVkLiAgCisgKiBUaGlzIG9wZXJhdGlvbiBpcyBhdG9taWMgYW5kIGNhbm5vdCBiZSByZW9yZGVyZWQuCiAgKiBJdCBhbHNvIGltcGxpZXMgYSBtZW1vcnkgYmFycmllci4KICAqLwogZXh0ZXJuIF9faW5saW5lX18gaW50CkBAIC0yNDIsNyArMjQyLDcgQEAKICAqIEBucjogQml0IHRvIHNldAogICogQGFkZHI6IEFkZHJlc3MgdG8gY291bnQgZnJvbQogICoKLSAqIFRoaXMgb3BlcmF0aW9uIGlzIG5vbi1hdG9taWMgYW5kIGNhbiBiZSByZW9yZGVyZWQuICAKKyAqIFRoaXMgb3BlcmF0aW9uIGlzIG5vbi1hdG9taWMgYW5kIGNhbiBiZSByZW9yZGVyZWQuCiAgKiBJZiB0d28gZXhhbXBsZXMgb2YgdGhpcyBvcGVyYXRpb24gcmFjZSwgb25lIGNhbiBhcHBlYXIgdG8gc3VjY2VlZAogICogYnV0IGFjdHVhbGx5IGZhaWwuICBZb3UgbXVzdCBwcm90ZWN0IG11bHRpcGxlIGFjY2Vzc2VzIHdpdGggYSBsb2NrLgogICovCkBAIC0yNjQsNyArMjY0LDcgQEAKICAqIEBucjogQml0IHRvIHNldAogICogQGFkZHI6IEFkZHJlc3MgdG8gY291bnQgZnJvbQogICoKLSAqIFRoaXMgb3BlcmF0aW9uIGlzIGF0b21pYyBhbmQgY2Fubm90IGJlIHJlb3JkZXJlZC4gIAorICogVGhpcyBvcGVyYXRpb24gaXMgYXRvbWljIGFuZCBjYW5ub3QgYmUgcmVvcmRlcmVkLgogICogSXQgYWxzbyBpbXBsaWVzIGEgbWVtb3J5IGJhcnJpZXIuCiAgKi8KIGV4dGVybiBfX2lubGluZV9fIGludApAQCAtMjkzLDcgKzI5Myw3IEBACiAgKiBAbnI6IEJpdCB0byBzZXQKICAqIEBhZGRyOiBBZGRyZXNzIHRvIGNvdW50IGZyb20KICAqCi0gKiBUaGlzIG9wZXJhdGlvbiBpcyBub24tYXRvbWljIGFuZCBjYW4gYmUgcmVvcmRlcmVkLiAgCisgKiBUaGlzIG9wZXJhdGlvbiBpcyBub24tYXRvbWljIGFuZCBjYW4gYmUgcmVvcmRlcmVkLgogICogSWYgdHdvIGV4YW1wbGVzIG9mIHRoaXMgb3BlcmF0aW9uIHJhY2UsIG9uZSBjYW4gYXBwZWFyIHRvIHN1Y2NlZWQKICAqIGJ1dCBhY3R1YWxseSBmYWlsLiAgWW91IG11c3QgcHJvdGVjdCBtdWx0aXBsZSBhY2Nlc3NlcyB3aXRoIGEgbG9jay4KICAqLwpAQCAtNDIwLDcgKzQyMCw3IEBACiAgKiBAbnI6IEJpdCB0byBzZXQKICAqIEBhZGRyOiBBZGRyZXNzIHRvIGNvdW50IGZyb20KICAqCi0gKiBUaGlzIG9wZXJhdGlvbiBpcyBhdG9taWMgYW5kIGNhbm5vdCBiZSByZW9yZGVyZWQuICAKKyAqIFRoaXMgb3BlcmF0aW9uIGlzIGF0b21pYyBhbmQgY2Fubm90IGJlIHJlb3JkZXJlZC4KICAqIEl0IGFsc28gaW1wbGllcyBhIG1lbW9yeSBiYXJyaWVyLgogICovCiBleHRlcm4gX19pbmxpbmVfXyBpbnQgdGVzdF9hbmRfc2V0X2JpdChpbnQgbnIsIHZvbGF0aWxlIHZvaWQgKiBhZGRyKQpAQCAtNDQ0LDcgKzQ0NCw3IEBACiAgKiBAbnI6IEJpdCB0byBzZXQKICAqIEBhZGRyOiBBZGRyZXNzIHRvIGNvdW50IGZyb20KICAqCi0gKiBUaGlzIG9wZXJhdGlvbiBpcyBub24tYXRvbWljIGFuZCBjYW4gYmUgcmVvcmRlcmVkLiAgCisgKiBUaGlzIG9wZXJhdGlvbiBpcyBub24tYXRvbWljIGFuZCBjYW4gYmUgcmVvcmRlcmVkLgogICogSWYgdHdvIGV4YW1wbGVzIG9mIHRoaXMgb3BlcmF0aW9uIHJhY2UsIG9uZSBjYW4gYXBwZWFyIHRvIHN1Y2NlZWQKICAqIGJ1dCBhY3R1YWxseSBmYWlsLiAgWW91IG11c3QgcHJvdGVjdCBtdWx0aXBsZSBhY2Nlc3NlcyB3aXRoIGEgbG9jay4KICAqLwpAQCAtNDY2LDcgKzQ2Niw3IEBACiAgKiBAbnI6IEJpdCB0byBzZXQKICAqIEBhZGRyOiBBZGRyZXNzIHRvIGNvdW50IGZyb20KICAqCi0gKiBUaGlzIG9wZXJhdGlvbiBpcyBhdG9taWMgYW5kIGNhbm5vdCBiZSByZW9yZGVyZWQuICAKKyAqIFRoaXMgb3BlcmF0aW9uIGlzIGF0b21pYyBhbmQgY2Fubm90IGJlIHJlb3JkZXJlZC4KICAqIEl0IGFsc28gaW1wbGllcyBhIG1lbW9yeSBiYXJyaWVyLgogICovCiBleHRlcm4gX19pbmxpbmVfXyBpbnQgdGVzdF9hbmRfY2xlYXJfYml0KGludCBuciwgdm9sYXRpbGUgdm9pZCAqIGFkZHIpCkBAIC00OTAsNyArNDkwLDcgQEAKICAqIEBucjogQml0IHRvIHNldAogICogQGFkZHI6IEFkZHJlc3MgdG8gY291bnQgZnJvbQogICoKLSAqIFRoaXMgb3BlcmF0aW9uIGlzIG5vbi1hdG9taWMgYW5kIGNhbiBiZSByZW9yZGVyZWQuICAKKyAqIFRoaXMgb3BlcmF0aW9uIGlzIG5vbi1hdG9taWMgYW5kIGNhbiBiZSByZW9yZGVyZWQuCiAgKiBJZiB0d28gZXhhbXBsZXMgb2YgdGhpcyBvcGVyYXRpb24gcmFjZSwgb25lIGNhbiBhcHBlYXIgdG8gc3VjY2VlZAogICogYnV0IGFjdHVhbGx5IGZhaWwuICBZb3UgbXVzdCBwcm90ZWN0IG11bHRpcGxlIGFjY2Vzc2VzIHdpdGggYSBsb2NrLgogICovCkBAIC01MTIsNyArNTEyLDcgQEAKICAqIEBucjogQml0IHRvIHNldAogICogQGFkZHI6IEFkZHJlc3MgdG8gY291bnQgZnJvbQogICoKLSAqIFRoaXMgb3BlcmF0aW9uIGlzIGF0b21pYyBhbmQgY2Fubm90IGJlIHJlb3JkZXJlZC4gIAorICogVGhpcyBvcGVyYXRpb24gaXMgYXRvbWljIGFuZCBjYW5ub3QgYmUgcmVvcmRlcmVkLgogICogSXQgYWxzbyBpbXBsaWVzIGEgbWVtb3J5IGJhcnJpZXIuCiAgKi8KIGV4dGVybiBfX2lubGluZV9fIGludCB0ZXN0X2FuZF9jaGFuZ2VfYml0KGludCBuciwgdm9sYXRpbGUgdm9pZCAqIGFkZHIpCkBAIC01MzYsNyArNTM2LDcgQEAKICAqIEBucjogQml0IHRvIHNldAogICogQGFkZHI6IEFkZHJlc3MgdG8gY291bnQgZnJvbQogICoKLSAqIFRoaXMgb3BlcmF0aW9uIGlzIG5vbi1hdG9taWMgYW5kIGNhbiBiZSByZW9yZGVyZWQuICAKKyAqIFRoaXMgb3BlcmF0aW9uIGlzIG5vbi1hdG9taWMgYW5kIGNhbiBiZSByZW9yZGVyZWQuCiAgKiBJZiB0d28gZXhhbXBsZXMgb2YgdGhpcyBvcGVyYXRpb24gcmFjZSwgb25lIGNhbiBhcHBlYXIgdG8gc3VjY2VlZAogICogYnV0IGFjdHVhbGx5IGZhaWwuICBZb3UgbXVzdCBwcm90ZWN0IG11bHRpcGxlIGFjY2Vzc2VzIHdpdGggYSBsb2NrLgogICovCkBAIC02MzgsNyArNjM4LDcgQEAKIAl1bnNpZ25lZCBpbnQgKnAgPSAoKHVuc2lnbmVkIGludCAqKSBhZGRyKSArIChvZmZzZXQgPj4gNSk7CiAJaW50IHNldCA9IDAsIGJpdCA9IG9mZnNldCAmIDMxLCByZXM7CiAJdW5zaWduZWQgbG9uZyBkdW1teTsKLQkKKwogCWlmIChiaXQpIHsKIAkJLyoKIAkJICogTG9vayBmb3IgemVybyBpbiBmaXJzdCBieXRlCkBAIC03ODksNyArNzg5LDcgQEAKICNlbmRpZgogCiAjZGVmaW5lIGZpbmRfZmlyc3RfemVyb19iaXQoYWRkciwgc2l6ZSkgXAotICAgICAgICBmaW5kX25leHRfemVyb19iaXQoKGFkZHIpLCAoc2l6ZSksIDApCisJZmluZF9uZXh0X3plcm9fYml0KChhZGRyKSwgKHNpemUpLCAwKQogCiAjZW5kaWYgLyogKF9fTUlQU0VCX18pICovCiAKQEAgLTgzNSw3ICs4MzUsNyBAQAogfQogCiAjZGVmaW5lIGV4dDJfZmluZF9maXJzdF96ZXJvX2JpdChhZGRyLCBzaXplKSBcCi0gICAgICAgIGV4dDJfZmluZF9uZXh0X3plcm9fYml0KChhZGRyKSwgKHNpemUpLCAwKQorCWV4dDJfZmluZF9uZXh0X3plcm9fYml0KChhZGRyKSwgKHNpemUpLCAwKQogCiBleHRlcm4gX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGV4dDJfZmluZF9uZXh0X3plcm9fYml0KHZvaWQgKmFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSwgdW5zaWduZWQgbG9uZyBvZmZzZXQpCiB7CkBAIC04OTQsOCArODk0LDggQEAKICNkZWZpbmUgZXh0Ml90ZXN0X2JpdChuciwgYWRkcikgdGVzdF9iaXQoKG5yKSwgKGFkZHIpKQogI2RlZmluZSBleHQyX2ZpbmRfZmlyc3RfemVyb19iaXQoYWRkciwgc2l6ZSkgZmluZF9maXJzdF96ZXJvX2JpdCgoYWRkciksIChzaXplKSkKICNkZWZpbmUgZXh0Ml9maW5kX25leHRfemVyb19iaXQoYWRkciwgc2l6ZSwgb2Zmc2V0KSBcCi0gICAgICAgICAgICAgICAgZmluZF9uZXh0X3plcm9fYml0KChhZGRyKSwgKHNpemUpLCAob2Zmc2V0KSkKLSAKKwkJZmluZF9uZXh0X3plcm9fYml0KChhZGRyKSwgKHNpemUpLCAob2Zmc2V0KSkKKwogI2VuZGlmIC8qICEoX19NSVBTRUJfXykgKi8KIAogLyoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW1pcHMvaW5jYS1pcC5oIGIvaW5jbHVkZS9hc20tbWlwcy9pbmNhLWlwLmgKaW5kZXggMGM1ZjFkNy4uZTc4N2ExZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9hc20tbWlwcy9pbmNhLWlwLmgKKysrIGIvaW5jbHVkZS9hc20tbWlwcy9pbmNhLWlwLmgKQEAgLTIsNDEgKzIsNDEgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgICAgICBDb3B5cmlnaHQgKGMpIDIwMDIsIEluZmluZW9uIFRlY2hub2xvZ2llcy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBObyBXYXJyYW50eQotICAgQmVjYXVzZSB0aGUgcHJvZ3JhbSBpcyBsaWNlbnNlZCBmcmVlIG9mIGNoYXJnZSwgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIAotICAgdGhlIHByb2dyYW0sIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGFwcGxpY2FibGUgbGF3LiAgRXhjZXB0IHdoZW4gICAgIAotICAgb3RoZXJ3aXNlIHN0YXRlZCBpbiB3cml0aW5nIHRoZSBjb3B5cmlnaHQgaG9sZGVycyBhbmQvb3Igb3RoZXIgcGFydGllcyAgIAotICAgcHJvdmlkZSB0aGUgcHJvZ3JhbSAiYXMgaXMiIHdpdGhvdXQgd2FycmFudHkgb2YgYW55IGtpbmQsIGVpdGhlciAgICAgICAgIAotICAgZXhwcmVzc2VkIG9yIGltcGxpZWQsIGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvLCB0aGUgaW1wbGllZCAgICAgICAgIAotICAgd2FycmFudGllcyBvZiBtZXJjaGFudGFiaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLiBUaGUgIAotICAgZW50aXJlIHJpc2sgYXMgdG8gdGhlIHF1YWxpdHkgYW5kIHBlcmZvcm1hbmNlIG9mIHRoZSBwcm9ncmFtIGlzIHdpdGggICAgIAotICAgeW91LiAgc2hvdWxkIHRoZSBwcm9ncmFtIHByb3ZlIGRlZmVjdGl2ZSwgeW91IGFzc3VtZSB0aGUgY29zdCBvZiBhbGwgICAgIAotICAgbmVjZXNzYXJ5IHNlcnZpY2luZywgcmVwYWlyIG9yIGNvcnJlY3Rpb24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgSW4gbm8gZXZlbnQgdW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nICAgIAotICAgd2lsbCBhbnkgY29weXJpZ2h0IGhvbGRlciwgb3IgYW55IG90aGVyIHBhcnR5IHdobyBtYXkgbW9kaWZ5IGFuZC9vciAgICAgIAotICAgcmVkaXN0cmlidXRlIHRoZSBwcm9ncmFtIGFzIHBlcm1pdHRlZCBhYm92ZSwgYmUgbGlhYmxlIHRvIHlvdSBmb3IgICAgICAgIAotICAgZGFtYWdlcywgaW5jbHVkaW5nIGFueSBnZW5lcmFsLCBzcGVjaWFsLCBpbmNpZGVudGFsIG9yIGNvbnNlcXVlbnRpYWwgICAgIAotICAgZGFtYWdlcyBhcmlzaW5nIG91dCBvZiB0aGUgdXNlIG9yIGluYWJpbGl0eSB0byB1c2UgdGhlIHByb2dyYW0gICAgICAgICAgIAotICAgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gbG9zcyBvZiBkYXRhIG9yIGRhdGEgYmVpbmcgcmVuZGVyZWQgICAgICAgIAotICAgaW5hY2N1cmF0ZSBvciBsb3NzZXMgc3VzdGFpbmVkIGJ5IHlvdSBvciB0aGlyZCBwYXJ0aWVzIG9yIGEgZmFpbHVyZSBvZiAgIAotICAgdGhlIHByb2dyYW0gdG8gb3BlcmF0ZSB3aXRoIGFueSBvdGhlciBwcm9ncmFtcyksIGV2ZW4gaWYgc3VjaCBob2xkZXIgb3IgIAotICAgb3RoZXIgcGFydHkgaGFzIGJlZW4gYWR2aXNlZCBvZiB0aGUgcG9zc2liaWxpdHkgb2Ygc3VjaCBkYW1hZ2VzLiAKKwkJCSAgICAgICBObyBXYXJyYW50eQorICAgQmVjYXVzZSB0aGUgcHJvZ3JhbSBpcyBsaWNlbnNlZCBmcmVlIG9mIGNoYXJnZSwgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yCisgICB0aGUgcHJvZ3JhbSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgYXBwbGljYWJsZSBsYXcuICBFeGNlcHQgd2hlbgorICAgb3RoZXJ3aXNlIHN0YXRlZCBpbiB3cml0aW5nIHRoZSBjb3B5cmlnaHQgaG9sZGVycyBhbmQvb3Igb3RoZXIgcGFydGllcworICAgcHJvdmlkZSB0aGUgcHJvZ3JhbSAiYXMgaXMiIHdpdGhvdXQgd2FycmFudHkgb2YgYW55IGtpbmQsIGVpdGhlcgorICAgZXhwcmVzc2VkIG9yIGltcGxpZWQsIGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvLCB0aGUgaW1wbGllZAorICAgd2FycmFudGllcyBvZiBtZXJjaGFudGFiaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlLiBUaGUKKyAgIGVudGlyZSByaXNrIGFzIHRvIHRoZSBxdWFsaXR5IGFuZCBwZXJmb3JtYW5jZSBvZiB0aGUgcHJvZ3JhbSBpcyB3aXRoCisgICB5b3UuICBzaG91bGQgdGhlIHByb2dyYW0gcHJvdmUgZGVmZWN0aXZlLCB5b3UgYXNzdW1lIHRoZSBjb3N0IG9mIGFsbAorICAgbmVjZXNzYXJ5IHNlcnZpY2luZywgcmVwYWlyIG9yIGNvcnJlY3Rpb24uCisKKyAgIEluIG5vIGV2ZW50IHVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZworICAgd2lsbCBhbnkgY29weXJpZ2h0IGhvbGRlciwgb3IgYW55IG90aGVyIHBhcnR5IHdobyBtYXkgbW9kaWZ5IGFuZC9vcgorICAgcmVkaXN0cmlidXRlIHRoZSBwcm9ncmFtIGFzIHBlcm1pdHRlZCBhYm92ZSwgYmUgbGlhYmxlIHRvIHlvdSBmb3IKKyAgIGRhbWFnZXMsIGluY2x1ZGluZyBhbnkgZ2VuZXJhbCwgc3BlY2lhbCwgaW5jaWRlbnRhbCBvciBjb25zZXF1ZW50aWFsCisgICBkYW1hZ2VzIGFyaXNpbmcgb3V0IG9mIHRoZSB1c2Ugb3IgaW5hYmlsaXR5IHRvIHVzZSB0aGUgcHJvZ3JhbQorICAgKGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gbG9zcyBvZiBkYXRhIG9yIGRhdGEgYmVpbmcgcmVuZGVyZWQKKyAgIGluYWNjdXJhdGUgb3IgbG9zc2VzIHN1c3RhaW5lZCBieSB5b3Ugb3IgdGhpcmQgcGFydGllcyBvciBhIGZhaWx1cmUgb2YKKyAgIHRoZSBwcm9ncmFtIHRvIG9wZXJhdGUgd2l0aCBhbnkgb3RoZXIgcHJvZ3JhbXMpLCBldmVuIGlmIHN1Y2ggaG9sZGVyIG9yCisgICBvdGhlciBwYXJ0eSBoYXMgYmVlbiBhZHZpc2VkIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWNoIGRhbWFnZXMuCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0JCQotICAgICAgICAgCisKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogIE1vZHVsZSAgICAgIDogIFdEVCByZWdpc3RlciBhZGRyZXNzIGFuZCBiaXRzICAgICAgICAgICAgICAgICAgICAgICAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotICAgICAgICAgCi0jZGVmaW5lIElOQ0FfSVBfV0RUICAgICAgICAgICAgICAgICAgICAgICAgICAoMHhCODAwMDAwMCkKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8gICAKIAotICAgICAgCi0vKioqUmVzZXQgU3RhdHVzIFJlZ2lzdGVyIFBvd2VyIE9uKioqLyAKKyNkZWZpbmUgSU5DQV9JUF9XRFQgICAgICAgICAgICAgICAgICAgICAgICAgICgweEI4MDAwMDAwKQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKKy8qKipSZXNldCBTdGF0dXMgUmVnaXN0ZXIgUG93ZXIgT24qKiovCiAjZGVmaW5lIElOQ0FfSVBfV0RUX1JTVF9TUiAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1dEVCsgMHgwMDE0KSkKLSAgICAgIAotLyoqKlJlc2V0IFJlcXVlc3QgUmVnaXN0ZXIqKiovIAorCisvKioqUmVzZXQgUmVxdWVzdCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9XRFRfUlNUX1JFUSAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfV0RUKyAweDAwMTApKQogI2RlZmluZSBJTkNBX0lQX1dEVF9SU1RfUkVRX1NXQk9PVCAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDI0KQogI2RlZmluZSBJTkNBX0lQX1dEVF9SU1RfUkVRX1NXQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNikKQEAgLTQ2LDM3ICs0NiwzNyBAQAogI2RlZmluZSBJTkNBX0lQX1dEVF9SU1RfUkVRX1JSRVhUICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQogI2RlZmluZSBJTkNBX0lQX1dEVF9SU1RfUkVRX1JSRFNQICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQogI2RlZmluZSBJTkNBX0lQX1dEVF9SU1RfUkVRX1JSQ1BVICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQotICAgICAgCi0vKioqTk1JIFN0YXR1cyBSZWdpc3RlcioqKi8gCisKKy8qKipOTUkgU3RhdHVzIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX1dEVF9OTUlTUiAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9XRFQrIDB4MDAyQykpCiAjZGVmaW5lIElOQ0FfSVBfV0RUX05NSVNSX05NSVdEVCAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiAjZGVmaW5lIElOQ0FfSVBfV0RUX05NSVNSX05NSVBMTCAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiAjZGVmaW5lIElOQ0FfSVBfV0RUX05NSVNSX05NSUVYVCAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0gICAgICAKLS8qKipNYW51ZmFjdHVyZXIgSWRlbnRpZmljYXRpb24gUmVnaXN0ZXIqKiovIAorCisvKioqTWFudWZhY3R1cmVyIElkZW50aWZpY2F0aW9uIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX1dEVF9NQU5JRCAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9XRFQrIDB4MDA3MCkpCiAjZGVmaW5lIElOQ0FfSVBfV0RUX01BTklEX01BTlVGICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCAxMSkgLSAxKSAmICh2YWx1ZSkpIDw8IDUpCi0gICAgICAKLS8qKipDaGlwIElkZW50aWZpY2F0aW9uIFJlZ2lzdGVyKioqLyAKKworLyoqKkNoaXAgSWRlbnRpZmljYXRpb24gUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfV0RUX0NISVBJRCAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1dEVCsgMHgwMDc0KSkKICNkZWZpbmUgSU5DQV9JUF9XRFRfQ0hJUElEX1ZFUlNJT04gKHZhbHVlKSAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgMjgpCiAjZGVmaW5lIElOQ0FfSVBfV0RUX0NISVBJRF9QQVJUX05VTUJFUiAodmFsdWUpICAgICAgICAoKCgoIDEgPDwgMTYpIC0gMSkgJiAodmFsdWUpKSA8PCAxMikKICNkZWZpbmUgSU5DQV9JUF9XRFRfQ0hJUElEX01BTklEICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCAxMSkgLSAxKSAmICh2YWx1ZSkpIDw8IDEpCi0gICAgICAKLS8qKipSZWRlc2lnbiBUcmFjaW5nIElkZW50aWZpY2F0aW9uIFJlZ2lzdGVyKioqLyAKKworLyoqKlJlZGVzaWduIFRyYWNpbmcgSWRlbnRpZmljYXRpb24gUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfV0RUX1JUSUQgICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1dEVCsgMHgwMDc4KSkKICNkZWZpbmUgSU5DQV9JUF9XRFRfUlRJRF9MQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE1KQogI2RlZmluZSBJTkNBX0lQX1dEVF9SVElEX1JJWCAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKldhdGNoZG9nIFRpbWVyIENvbnRyb2wgUmVnaXN0ZXIgMCoqKi8gCisKKy8qKipXYXRjaGRvZyBUaW1lciBDb250cm9sIFJlZ2lzdGVyIDAqKiovCiAjZGVmaW5lIElOQ0FfSVBfV0RUX1dEVF9DT04wICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfV0RUKyAweDAwMjApKQotICAgICAgCi0vKioqV2F0Y2hkb2cgVGltZXIgQ29udHJvbCBSZWdpc3RlciAxKioqLyAKKworLyoqKldhdGNoZG9nIFRpbWVyIENvbnRyb2wgUmVnaXN0ZXIgMSoqKi8KICNkZWZpbmUgSU5DQV9JUF9XRFRfV0RUX0NPTjEgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9XRFQrIDB4MDAyNCkpCiAjZGVmaW5lIElOQ0FfSVBfV0RUX1dEVF9DT04xX1dEVERSICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzKQogI2RlZmluZSBJTkNBX0lQX1dEVF9XRFRfQ09OMV9XRFRJUiAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKLSAgICAgIAotLyoqKldhdGNoZG9nIFRpbWVyIFN0YXR1cyBSZWdpc3RlcioqKi8gCisKKy8qKipXYXRjaGRvZyBUaW1lciBTdGF0dXMgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfV0RUX1dEVF9TUiAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1dEVCsgMHgwMDI4KSkKICNkZWZpbmUgSU5DQV9JUF9XRFRfV0RUX1NSX1dEVFRJTSAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCAxNikgLSAxKSAmICh2YWx1ZSkpIDw8IDE2KQogI2RlZmluZSBJTkNBX0lQX1dEVF9XRFRfU1JfV0RUUFIgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDUpCkBAIC04NCw2NiArODQsNjYgQEAKICNkZWZpbmUgSU5DQV9JUF9XRFRfV0RUX1NSX1dEVERTICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzKQogI2RlZmluZSBJTkNBX0lQX1dEVF9XRFRfU1JfV0RUSVMgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiAjZGVmaW5lIElOQ0FfSVBfV0RUX1dEVF9TUl9XRFRPRSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKLSNkZWZpbmUgSU5DQV9JUF9XRFRfV0RUX1NSX1dEVEFFICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQkJCi0gICAgICAgICAKKyNkZWZpbmUgSU5DQV9JUF9XRFRfV0RUX1NSX1dEVEFFICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQorCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiAgTW9kdWxlICAgICAgOiAgQ0dVIHJlZ2lzdGVyIGFkZHJlc3MgYW5kIGJpdHMgICAgICAgICAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0gICAgICAgICAKLSNkZWZpbmUgSU5DQV9JUF9DR1UgICAgICAgICAgICAgICAgICAgICAgICAgICgweEJGMTA3MDAwKQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLyAgIAogCi0gICAgICAKLS8qKipDR1UgUExMMSBDb250cm9sIFJlZ2lzdGVyKioqLyAKKyNkZWZpbmUgSU5DQV9JUF9DR1UgICAgICAgICAgICAgICAgICAgICAgICAgICgweEJGMTA3MDAwKQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKKy8qKipDR1UgUExMMSBDb250cm9sIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0NHVV9DR1VfUExMMUNSICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9DR1UrIDB4MDAwOCkpCiAjZGVmaW5lIElOQ0FfSVBfQ0dVX0NHVV9QTEwxQ1JfU1dSU1QgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMxKQogI2RlZmluZSBJTkNBX0lQX0NHVV9DR1VfUExMMUNSX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzApCiAjZGVmaW5lIElOQ0FfSVBfQ0dVX0NHVV9QTEwxQ1JfTkRJViAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDYpIC0gMSkgJiAodmFsdWUpKSA8PCAxNikKICNkZWZpbmUgSU5DQV9JUF9DR1VfQ0dVX1BMTDFDUl9NRElWICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipDR1UgUExMMCBDb250cm9sIFJlZ2lzdGVyKioqLyAKKworLyoqKkNHVSBQTEwwIENvbnRyb2wgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfQ0dVX0NHVV9QTEwwQ1IgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0NHVSsgMHgwMDAwKSkKICNkZWZpbmUgSU5DQV9JUF9DR1VfQ0dVX1BMTDBDUl9TV1JTVCAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzEpCiAjZGVmaW5lIElOQ0FfSVBfQ0dVX0NHVV9QTEwwQ1JfRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMCkKICNkZWZpbmUgSU5DQV9JUF9DR1VfQ0dVX1BMTDBDUl9ORElWICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgNikgLSAxKSAmICh2YWx1ZSkpIDw8IDE2KQogI2RlZmluZSBJTkNBX0lQX0NHVV9DR1VfUExMMENSX01ESVYgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKkNHVSBQTEwwIFN0YXR1cyBSZWdpc3RlcioqKi8gCisKKy8qKipDR1UgUExMMCBTdGF0dXMgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfQ0dVX0NHVV9QTEwwU1IgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0NHVSsgMHgwMDA0KSkKICNkZWZpbmUgSU5DQV9JUF9DR1VfQ0dVX1BMTDBTUl9MT0NLICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMxKQogI2RlZmluZSBJTkNBX0lQX0NHVV9DR1VfUExMMFNSX1JDRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDI5KQogI2RlZmluZSBJTkNBX0lQX0NHVV9DR1VfUExMMFNSX1BMTEJZUCAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE1KQotICAgICAgCi0vKioqQ0dVIFBMTDEgU3RhdHVzIFJlZ2lzdGVyKioqLyAKKworLyoqKkNHVSBQTEwxIFN0YXR1cyBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9DR1VfQ0dVX1BMTDFTUiAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQ0dVKyAweDAwMEMpKQogI2RlZmluZSBJTkNBX0lQX0NHVV9DR1VfUExMMVNSX0xPQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzEpCiAjZGVmaW5lIElOQ0FfSVBfQ0dVX0NHVV9QTEwxU1JfUkNGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjkpCiAjZGVmaW5lIElOQ0FfSVBfQ0dVX0NHVV9QTEwxU1JfUExMQllQICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTUpCi0gICAgICAKLS8qKipDR1UgRGl2aWRlciBDb250cm9sIFJlZ2lzdGVyKioqLyAKKworLyoqKkNHVSBEaXZpZGVyIENvbnRyb2wgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfQ0dVX0NHVV9ESVZDUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0NHVSsgMHgwMDEwKSkKLSAgICAgIAotLyoqKkNHVSBNdWx0aXBsZXhlciBDb250cm9sIFJlZ2lzdGVyKioqLyAKKworLyoqKkNHVSBNdWx0aXBsZXhlciBDb250cm9sIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0NHVV9DR1VfTVVYQ1IgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9DR1UrIDB4MDAxNCkpCiAjZGVmaW5lIElOQ0FfSVBfQ0dVX0NHVV9NVVhDUl9TV1JTVCAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzEpCiAjZGVmaW5lIElOQ0FfSVBfQ0dVX0NHVV9NVVhDUl9NVVhJSSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKICNkZWZpbmUgSU5DQV9JUF9DR1VfQ0dVX01VWENSX01VWEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKLSAgICAgIAotLyoqKkNHVSBGcmFjdGlvbmFsIERpdmlkZXIgQ29udHJvbCBSZWdpc3RlcioqKi8gCisKKy8qKipDR1UgRnJhY3Rpb25hbCBEaXZpZGVyIENvbnRyb2wgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfQ0dVX0NHVV9GRENSICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQ0dVKyAweDAwMTgpKQogI2RlZmluZSBJTkNBX0lQX0NHVV9DR1VfRkRDUl9GREVOICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMxKQogI2RlZmluZSBJTkNBX0lQX0NHVV9DR1VfRkRDUl9JTlRFR0VSICh2YWx1ZSkgICAgICAgICAgICAoKCgoIDEgPDwgMTIpIC0gMSkgJiAodmFsdWUpKSA8PCAxNikKLSNkZWZpbmUgSU5DQV9JUF9DR1VfQ0dVX0ZEQ1JfRlJBQ1RJT04gKHZhbHVlKSAgICAgICAgICAoKCgoIDEgPDwgMTYpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQkJCi0gICAgICAgICAKKyNkZWZpbmUgSU5DQV9JUF9DR1VfQ0dVX0ZEQ1JfRlJBQ1RJT04gKHZhbHVlKSAgICAgICAgICAoKCgoIDEgPDwgMTYpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQorCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiAgTW9kdWxlICAgICAgOiAgUE1VIHJlZ2lzdGVyIGFkZHJlc3MgYW5kIGJpdHMgICAgICAgICAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0gICAgICAgICAKLSNkZWZpbmUgSU5DQV9JUF9QTVUgICAgICAgICAgICAgICAgICAgICAgICAgICgweEJGMTAyMDAwKQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLyAgIAogCi0gICAgICAKLS8qKipQTSBHbG9iYWwgRW5hYmxlIFJlZ2lzdGVyKioqLyAKKyNkZWZpbmUgSU5DQV9JUF9QTVUgICAgICAgICAgICAgICAgICAgICAgICAgICgweEJGMTAyMDAwKQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKKy8qKipQTSBHbG9iYWwgRW5hYmxlIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX1BNVV9QTV9HRU4gICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9QTVUrIDB4MDAwMCkpCiAjZGVmaW5lIElOQ0FfSVBfUE1VX1BNX0dFTl9FTjE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE2KQogI2RlZmluZSBJTkNBX0lQX1BNVV9QTV9HRU5fRU4xNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNSkKQEAgLTE2MSw4ICsxNjEsOCBAQAogI2RlZmluZSBJTkNBX0lQX1BNVV9QTV9HRU5fRU4zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMykKICNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fR0VOX0VOMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiAjZGVmaW5lIElOQ0FfSVBfUE1VX1BNX0dFTl9FTjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQotICAgICAgCi0vKioqUE0gUG93ZXIgRG93biBFbmFibGUgUmVnaXN0ZXIqKiovIAorCisvKioqUE0gUG93ZXIgRG93biBFbmFibGUgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfUE1VX1BNX1BERU4gICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1BNVSsgMHgwMDA4KSkKICNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fUERFTl9FTjE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE2KQogI2RlZmluZSBJTkNBX0lQX1BNVV9QTV9QREVOX0VOMTUgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTUpCkBAIC0xNzksOCArMTc5LDggQEAKICNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fUERFTl9FTjMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzKQogI2RlZmluZSBJTkNBX0lQX1BNVV9QTV9QREVOX0VOMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiAjZGVmaW5lIElOQ0FfSVBfUE1VX1BNX1BERU5fRU4wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKLSAgICAgIAotLyoqKlBNIFdha2UtVXAgZnJvbSBQb3dlciBEb3duIFJlZ2lzdGVyKioqLyAKKworLyoqKlBNIFdha2UtVXAgZnJvbSBQb3dlciBEb3duIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX1BNVV9QTV9XVVAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9QTVUrIDB4MDAxMCkpCiAjZGVmaW5lIElOQ0FfSVBfUE1VX1BNX1dVUF9XVVAxNiAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTYpCiAjZGVmaW5lIElOQ0FfSVBfUE1VX1BNX1dVUF9XVVAxNSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTUpCkBAIC0xOTcsMzEgKzE5NywzMSBAQAogI2RlZmluZSBJTkNBX0lQX1BNVV9QTV9XVVBfV1VQMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzKQogI2RlZmluZSBJTkNBX0lQX1BNVV9QTV9XVVBfV1VQMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQogI2RlZmluZSBJTkNBX0lQX1BNVV9QTV9XVVBfV1VQMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQotICAgICAgCi0vKioqUE0gQ29udHJvbCBSZWdpc3RlcioqKi8gCisKKy8qKipQTSBDb250cm9sIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX1BNVV9QTV9DUiAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9QTVUrIDB4MDAxNCkpCiAjZGVmaW5lIElOQ0FfSVBfUE1VX1BNX0NSX0FXRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzEpCiAjZGVmaW5lIElOQ0FfSVBfUE1VX1BNX0NSX1NXUlNUICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMCkKICNkZWZpbmUgSU5DQV9JUF9QTVVfUE1fQ1JfU1dDUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQotI2RlZmluZSBJTkNBX0lQX1BNVV9QTV9DUl9DUkQgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCQkKLSAgICAgICAgIAorI2RlZmluZSBJTkNBX0lQX1BNVV9QTV9DUl9DUkQgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qICBNb2R1bGUgICAgICA6ICBCQ1UgcmVnaXN0ZXIgYWRkcmVzcyBhbmQgYml0cyAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSAgICAgICAgIAotI2RlZmluZSBJTkNBX0lQX0JDVSAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4QjgwMDAxMDApCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovICAgCiAKLSAgICAgIAotLyoqKkJDVSBDb250cm9sIFJlZ2lzdGVyICgwMDEwSCkqKiovIAorI2RlZmluZSBJTkNBX0lQX0JDVSAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4QjgwMDAxMDApCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworLyoqKkJDVSBDb250cm9sIFJlZ2lzdGVyICgwMDEwSCkqKiovCiAjZGVmaW5lIElOQ0FfSVBfQkNVX0JDVV9DT04gICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0JDVSsgMHgwMDEwKSkKICNkZWZpbmUgSU5DQV9JUF9CQ1VfQkNVX0NPTl9TUEMgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDI0KQogI2RlZmluZSBJTkNBX0lQX0JDVV9CQ1VfQ09OX1NQRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE5KQogI2RlZmluZSBJTkNBX0lQX0JDVV9CQ1VfQ09OX1BTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE4KQogI2RlZmluZSBJTkNBX0lQX0JDVV9CQ1VfQ09OX0RCRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE2KQogI2RlZmluZSBJTkNBX0lQX0JDVV9CQ1VfQ09OX1RPVVQgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAxNikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipCQ1UgRXJyb3IgQ29udHJvbCBDYXB0dXJlIFJlZ2lzdGVyICgwMDIwSCkqKiovIAorCisvKioqQkNVIEVycm9yIENvbnRyb2wgQ2FwdHVyZSBSZWdpc3RlciAoMDAyMEgpKioqLwogI2RlZmluZSBJTkNBX0lQX0JDVV9CQ1VfRUNPTiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0JDVSsgMHgwMDIwKSkKICNkZWZpbmUgSU5DQV9JUF9CQ1VfQkNVX0VDT05fVEFHICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDQpIC0gMSkgJiAodmFsdWUpKSA8PCAyNCkKICNkZWZpbmUgSU5DQV9JUF9CQ1VfQkNVX0VDT05fUkROICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjMpCkBAIC0yMzMsMzEgKzIzMywzMSBAQAogI2RlZmluZSBJTkNBX0lQX0JDVV9CQ1VfRUNPTl9UT1VUICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE2KQogI2RlZmluZSBJTkNBX0lQX0JDVV9CQ1VfRUNPTl9FUlJDTlQgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgMTYpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQogI2RlZmluZSBJTkNBX0lQX0JDVV9CQ1VfRUNPTl9PUEMgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDI4KQotICAgICAgCi0vKioqQkNVIEVycm9yIEFkZHJlc3MgQ2FwdHVyZSBSZWdpc3RlciAoMDAyNCBIKSoqKi8gCisKKy8qKipCQ1UgRXJyb3IgQWRkcmVzcyBDYXB0dXJlIFJlZ2lzdGVyICgwMDI0IEgpKioqLwogI2RlZmluZSBJTkNBX0lQX0JDVV9CQ1VfRUFERCAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0JDVSsgMHgwMDI0KSkKICNkZWZpbmUgSU5DQV9JUF9CQ1VfQkNVX0VBRERfRlBJQURSCi0gICAgICAKLS8qKipCQ1UgRXJyb3IgRGF0YSBDYXB0dXJlIFJlZ2lzdGVyICgwMDI4SCkqKiovIAorCisvKioqQkNVIEVycm9yIERhdGEgQ2FwdHVyZSBSZWdpc3RlciAoMDAyOEgpKioqLwogI2RlZmluZSBJTkNBX0lQX0JDVV9CQ1VfRURBVCAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0JDVSsgMHgwMDI4KSkKLSNkZWZpbmUgSU5DQV9JUF9CQ1VfQkNVX0VEQVRfRlBJREFUCQkKLSAgICAgICAgIAorI2RlZmluZSBJTkNBX0lQX0JDVV9CQ1VfRURBVF9GUElEQVQKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogIE1vZHVsZSAgICAgIDogIE1CQyByZWdpc3RlciBhZGRyZXNzIGFuZCBiaXRzICAgICAgICAgICAgICAgICAgICAgICAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotICAgICAgICAgCi0jZGVmaW5lIElOQ0FfSVBfTUJDICAgICAgICAgICAgICAgICAgICAgICAgICAoMHhCRjEwMzAwMCkKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8gICAKIAotICAgICAgCi0vKioqTWFpbGJveCBDUFUgQ29uZmlndXJhdGlvbiBSZWdpc3RlcioqKi8gCisjZGVmaW5lIElOQ0FfSVBfTUJDICAgICAgICAgICAgICAgICAgICAgICAgICAoMHhCRjEwMzAwMCkKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCisvKioqTWFpbGJveCBDUFUgQ29uZmlndXJhdGlvbiBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0NGRyAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwODApKQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfQ0ZHX1NXQVAgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgNikKICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0NGR19SRVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA1KQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfQ0ZHX0ZXSUQgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgMSkKICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0NGR19TSVpFICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0gICAgICAKLS8qKipNYWlsYm94IENQVSBJbnRlcnJ1cHQgU3RhdHVzIFJlZ2lzdGVyKioqLyAKKworLyoqKk1haWxib3ggQ1BVIEludGVycnVwdCBTdGF0dXMgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19JU1IgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDg0KSkKICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0lTUl9CM0RBICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMxKQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfSVNSX0IyREEgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzApCkBAIC0yNjUsOCArMjY1LDggQEAKICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0lTUl9CMEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyOCkKICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0lTUl9XRFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyNykKICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0lTUl9EUzI2MCAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCAyNykgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipNYWlsYm94IENQVSBNYXNrIFJlZ2lzdGVyKioqLyAKKworLyoqKk1haWxib3ggQ1BVIE1hc2sgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19NU0sgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDg4KSkKICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX01TS19CM0RBICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMxKQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfTVNLX0IyREEgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzApCkBAIC0yNzQsOCArMjc0LDggQEAKICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX01TS19CMEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyOCkKICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX01TS19XRFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyNykKICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX01TS19EUzI2MCAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCAyNykgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipNYWlsYm94IENQVSBNYXNrIDAxIFJlZ2lzdGVyKioqLyAKKworLyoqKk1haWxib3ggQ1BVIE1hc2sgMDEgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19NU0swMSAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDhDKSkKICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX01TSzAxX0IzREEgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzEpCiAjZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19NU0swMV9CMkRBICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMwKQpAQCAtMjgzLDggKzI4Myw4IEBACiAjZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19NU0swMV9CMEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyOCkKICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX01TSzAxX1dEVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDI3KQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfTVNLMDFfRFMyNjAgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgMjcpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqTWFpbGJveCBDUFUgTWFzayAxMCBSZWdpc3RlcioqKi8gCisKKy8qKipNYWlsYm94IENQVSBNYXNrIDEwIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfTVNLMTAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9NQkMrIDB4MDA5MCkpCiAjZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19NU0sxMF9CM0RBICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMxKQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfTVNLMTBfQjJEQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMCkKQEAgLTI5MiwxNjcgKzI5MiwxNjcgQEAKICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX01TSzEwX0IwRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDI4KQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfTVNLMTBfV0RUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjcpCiAjZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19NU0sxMF9EUzI2MCAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCAyNykgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipNYWlsYm94IENQVSBTaG9ydCBDb21tYW5kIFJlZ2lzdGVyKioqLyAKKworLyoqKk1haWxib3ggQ1BVIFNob3J0IENvbW1hbmQgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19DTUQgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDk0KSkKICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0NNRF9DUzI3MCAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCAyOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipNYWlsYm94IENQVSBJbnB1dCBEYXRhIG9mIEJ1ZmZlciAwKioqLyAKKworLyoqKk1haWxib3ggQ1BVIElucHV0IERhdGEgb2YgQnVmZmVyIDAqKiovCiAjZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19JRDAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDAwKSkKICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0lEMF9JTkRBVEEKLSAgICAgIAotLyoqKk1haWxib3ggQ1BVIElucHV0IERhdGEgb2YgQnVmZmVyIDEqKiovIAorCisvKioqTWFpbGJveCBDUFUgSW5wdXQgRGF0YSBvZiBCdWZmZXIgMSoqKi8KICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0lEMSAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwMjApKQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfSUQxX0lOREFUQQotICAgICAgCi0vKioqTWFpbGJveCBDUFUgT3V0cHV0IERhdGEgb2YgQnVmZmVyIDIqKiovIAorCisvKioqTWFpbGJveCBDUFUgT3V0cHV0IERhdGEgb2YgQnVmZmVyIDIqKiovCiAjZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19PRDIgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDQwKSkKICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX09EMl9PVVREQVRBCi0gICAgICAKLS8qKipNYWlsYm94IENQVSBPdXRwdXQgRGF0YSBvZiBCdWZmZXIgMyoqKi8gCisKKy8qKipNYWlsYm94IENQVSBPdXRwdXQgRGF0YSBvZiBCdWZmZXIgMyoqKi8KICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX09EMyAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwNjApKQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfT0QzX09VVERBVEEKLSAgICAgIAotLyoqKk1haWxib3ggQ1BVIENvbnRyb2wgUmVnaXN0ZXIgb2YgQnVmZmVyIDAqKiovIAorCisvKioqTWFpbGJveCBDUFUgQ29udHJvbCBSZWdpc3RlciBvZiBCdWZmZXIgMCoqKi8KICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0NSMCAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwMDQpKQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfQ1IwX1JEWUFCVEZMUyAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKk1haWxib3ggQ1BVIENvbnRyb2wgUmVnaXN0ZXIgb2YgQnVmZmVyIDEqKiovIAorCisvKioqTWFpbGJveCBDUFUgQ29udHJvbCBSZWdpc3RlciBvZiBCdWZmZXIgMSoqKi8KICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0NSMSAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwMjQpKQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfQ1IxX1JEWUFCVEZMUyAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKk1haWxib3ggQ1BVIENvbnRyb2wgUmVnaXN0ZXIgb2YgQnVmZmVyIDIqKiovIAorCisvKioqTWFpbGJveCBDUFUgQ29udHJvbCBSZWdpc3RlciBvZiBCdWZmZXIgMioqKi8KICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0NSMiAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwNDQpKQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfQ1IyX1JEWUFCVEZMUyAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKk1haWxib3ggQ1BVIENvbnRyb2wgUmVnaXN0ZXIgb2YgQnVmZmVyIDMqKiovIAorCisvKioqTWFpbGJveCBDUFUgQ29udHJvbCBSZWdpc3RlciBvZiBCdWZmZXIgMyoqKi8KICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0NSMyAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwNjQpKQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfQ1IzX1JEWUFCVEZMUyAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKk1haWxib3ggQ1BVIEZyZWUgU3BhY2Ugb2YgQnVmZmVyIDAqKiovIAorCisvKioqTWFpbGJveCBDUFUgRnJlZSBTcGFjZSBvZiBCdWZmZXIgMCoqKi8KICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0ZTMCAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwMDgpKQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfRlMwX0ZTCi0gICAgICAKLS8qKipNYWlsYm94IENQVSBGcmVlIFNwYWNlIG9mIEJ1ZmZlciAxKioqLyAKKworLyoqKk1haWxib3ggQ1BVIEZyZWUgU3BhY2Ugb2YgQnVmZmVyIDEqKiovCiAjZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19GUzEgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDI4KSkKICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0ZTMV9GUwotICAgICAgCi0vKioqTWFpbGJveCBDUFUgRnJlZSBTcGFjZSBvZiBCdWZmZXIgMioqKi8gCisKKy8qKipNYWlsYm94IENQVSBGcmVlIFNwYWNlIG9mIEJ1ZmZlciAyKioqLwogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfRlMyICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9NQkMrIDB4MDA0OCkpCiAjZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19GUzJfRlMKLSAgICAgIAotLyoqKk1haWxib3ggQ1BVIEZyZWUgU3BhY2Ugb2YgQnVmZmVyIDMqKiovIAorCisvKioqTWFpbGJveCBDUFUgRnJlZSBTcGFjZSBvZiBCdWZmZXIgMyoqKi8KICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0ZTMyAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwNjgpKQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfRlMzX0ZTCi0gICAgICAKLS8qKipNYWlsYm94IENQVSBEYXRhIEF2YWlsYWJsZSBpbiBCdWZmZXIgMCoqKi8gCisKKy8qKipNYWlsYm94IENQVSBEYXRhIEF2YWlsYWJsZSBpbiBCdWZmZXIgMCoqKi8KICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0RBMCAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwMEMpKQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfREEwX0RBCi0gICAgICAKLS8qKipNYWlsYm94IENQVSBEYXRhIEF2YWlsYWJsZSBpbiBCdWZmZXIgMSoqKi8gCisKKy8qKipNYWlsYm94IENQVSBEYXRhIEF2YWlsYWJsZSBpbiBCdWZmZXIgMSoqKi8KICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0RBMSAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwMkMpKQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfREExX0RBCi0gICAgICAKLS8qKipNYWlsYm94IENQVSBEYXRhIEF2YWlsYWJsZSBpbiBCdWZmZXIgMioqKi8gCisKKy8qKipNYWlsYm94IENQVSBEYXRhIEF2YWlsYWJsZSBpbiBCdWZmZXIgMioqKi8KICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0RBMiAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwNEMpKQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfREEyX0RBCi0gICAgICAKLS8qKipNYWlsYm94IENQVSBEYXRhIEF2YWlsYWJsZSBpbiBCdWZmZXIgMyoqKi8gCisKKy8qKipNYWlsYm94IENQVSBEYXRhIEF2YWlsYWJsZSBpbiBCdWZmZXIgMyoqKi8KICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0RBMyAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwNkMpKQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfREEzX0RBCi0gICAgICAKLS8qKipNYWlsYm94IENQVSBJbnB1dCBBYnNvbHV0ZSBQb2ludGVyIG9mIEJ1ZmZlciAwKioqLyAKKworLyoqKk1haWxib3ggQ1BVIElucHV0IEFic29sdXRlIFBvaW50ZXIgb2YgQnVmZmVyIDAqKiovCiAjZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19JQUJTMCAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDEwKSkKICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0lBQlMwX0lBQlMKLSAgICAgIAotLyoqKk1haWxib3ggQ1BVIElucHV0IEFic29sdXRlIFBvaW50ZXIgb2YgQnVmZmVyIDEqKiovIAorCisvKioqTWFpbGJveCBDUFUgSW5wdXQgQWJzb2x1dGUgUG9pbnRlciBvZiBCdWZmZXIgMSoqKi8KICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0lBQlMxICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwMzApKQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfSUFCUzFfSUFCUwotICAgICAgCi0vKioqTWFpbGJveCBDUFUgSW5wdXQgQWJzb2x1dGUgUG9pbnRlciBvZiBCdWZmZXIgMioqKi8gCisKKy8qKipNYWlsYm94IENQVSBJbnB1dCBBYnNvbHV0ZSBQb2ludGVyIG9mIEJ1ZmZlciAyKioqLwogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfSUFCUzIgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9NQkMrIDB4MDA1MCkpCiAjZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19JQUJTMl9JQUJTCi0gICAgICAKLS8qKipNYWlsYm94IENQVSBJbnB1dCBBYnNvbHV0ZSBQb2ludGVyIG9mIEJ1ZmZlciAzKioqLyAKKworLyoqKk1haWxib3ggQ1BVIElucHV0IEFic29sdXRlIFBvaW50ZXIgb2YgQnVmZmVyIDMqKiovCiAjZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19JQUJTMyAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDcwKSkKICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0lBQlMzX0lBQlMKLSAgICAgIAotLyoqKk1haWxib3ggQ1BVIElucHV0IFRlbXBvcmFyeSBQb2ludGVyIG9mIEJ1ZmZlciAwKioqLyAKKworLyoqKk1haWxib3ggQ1BVIElucHV0IFRlbXBvcmFyeSBQb2ludGVyIG9mIEJ1ZmZlciAwKioqLwogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfSVRNUDAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9NQkMrIDB4MDAxNCkpCiAjZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19JVE1QMF9JVE1QCi0gICAgICAKLS8qKipNYWlsYm94IENQVSBJbnB1dCBUZW1wb3JhcnkgUG9pbnRlciBvZiBCdWZmZXIgMSoqKi8gCisKKy8qKipNYWlsYm94IENQVSBJbnB1dCBUZW1wb3JhcnkgUG9pbnRlciBvZiBCdWZmZXIgMSoqKi8KICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0lUTVAxICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwMzQpKQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfSVRNUDFfSVRNUAotICAgICAgCi0vKioqTWFpbGJveCBDUFUgSW5wdXQgVGVtcG9yYXJ5IFBvaW50ZXIgb2YgQnVmZmVyIDIqKiovIAorCisvKioqTWFpbGJveCBDUFUgSW5wdXQgVGVtcG9yYXJ5IFBvaW50ZXIgb2YgQnVmZmVyIDIqKiovCiAjZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19JVE1QMiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDU0KSkKICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX0lUTVAyX0lUTVAKLSAgICAgIAotLyoqKk1haWxib3ggQ1BVIElucHV0IFRlbXBvcmFyeSBQb2ludGVyIG9mIEJ1ZmZlciAzKioqLyAKKworLyoqKk1haWxib3ggQ1BVIElucHV0IFRlbXBvcmFyeSBQb2ludGVyIG9mIEJ1ZmZlciAzKioqLwogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfSVRNUDMgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9NQkMrIDB4MDA3NCkpCiAjZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19JVE1QM19JVE1QCi0gICAgICAKLS8qKipNYWlsYm94IENQVSBPdXRwdXQgQWJzb2x1dGUgUG9pbnRlciBvZiBCdWZmZXIgMCoqKi8gCisKKy8qKipNYWlsYm94IENQVSBPdXRwdXQgQWJzb2x1dGUgUG9pbnRlciBvZiBCdWZmZXIgMCoqKi8KICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX09BQlMwICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwMTgpKQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfT0FCUzBfT0FCUwotICAgICAgCi0vKioqTWFpbGJveCBDUFUgT3V0cHV0IEFic29sdXRlIFBvaW50ZXIgb2YgQnVmZmVyIDEqKiovIAorCisvKioqTWFpbGJveCBDUFUgT3V0cHV0IEFic29sdXRlIFBvaW50ZXIgb2YgQnVmZmVyIDEqKiovCiAjZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19PQUJTMSAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMDM4KSkKICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX09BQlMxX09BQlMKLSAgICAgIAotLyoqKk1haWxib3ggQ1BVIE91dHB1dCBBYnNvbHV0ZSBQb2ludGVyIG9mIEJ1ZmZlciAyKioqLyAKKworLyoqKk1haWxib3ggQ1BVIE91dHB1dCBBYnNvbHV0ZSBQb2ludGVyIG9mIEJ1ZmZlciAyKioqLwogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfT0FCUzIgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9NQkMrIDB4MDA1OCkpCiAjZGVmaW5lIElOQ0FfSVBfTUJDX01CQ19PQUJTMl9PQUJTCi0gICAgICAKLS8qKipNYWlsYm94IENQVSBPdXRwdXQgQWJzb2x1dGUgUG9pbnRlciBvZiBCdWZmZXIgMyoqKi8gCisKKy8qKipNYWlsYm94IENQVSBPdXRwdXQgQWJzb2x1dGUgUG9pbnRlciBvZiBCdWZmZXIgMyoqKi8KICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX09BQlMzICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwNzgpKQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfT0FCUzNfT0FCUwotICAgICAgCi0vKioqTWFpbGJveCBDUFUgT3V0cHV0IFRlbXBvcmFyeSBQb2ludGVyIG9mIEJ1ZmZlciAwKioqLyAKKworLyoqKk1haWxib3ggQ1BVIE91dHB1dCBUZW1wb3JhcnkgUG9pbnRlciBvZiBCdWZmZXIgMCoqKi8KICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX09UTVAwICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwMUMpKQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfT1RNUDBfT1RNUAotICAgICAgCi0vKioqTWFpbGJveCBDUFUgT3V0cHV0IFRlbXBvcmFyeSBQb2ludGVyIG9mIEJ1ZmZlciAxKioqLyAKKworLyoqKk1haWxib3ggQ1BVIE91dHB1dCBUZW1wb3JhcnkgUG9pbnRlciBvZiBCdWZmZXIgMSoqKi8KICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX09UTVAxICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwM0MpKQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfT1RNUDFfT1RNUAotICAgICAgCi0vKioqTWFpbGJveCBDUFUgT3V0cHV0IFRlbXBvcmFyeSBQb2ludGVyIG9mIEJ1ZmZlciAyKioqLyAKKworLyoqKk1haWxib3ggQ1BVIE91dHB1dCBUZW1wb3JhcnkgUG9pbnRlciBvZiBCdWZmZXIgMioqKi8KICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX09UTVAyICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwNUMpKQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfT1RNUDJfT1RNUAotICAgICAgCi0vKioqTWFpbGJveCBDUFUgT3V0cHV0IFRlbXBvcmFyeSBQb2ludGVyIG9mIEJ1ZmZlciAzKioqLyAKKworLyoqKk1haWxib3ggQ1BVIE91dHB1dCBUZW1wb3JhcnkgUG9pbnRlciBvZiBCdWZmZXIgMyoqKi8KICNkZWZpbmUgSU5DQV9JUF9NQkNfTUJDX09UTVAzICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwN0MpKQogI2RlZmluZSBJTkNBX0lQX01CQ19NQkNfT1RNUDNfT1RNUAotICAgICAgCi0vKioqRFNQIENvbnRyb2wgUmVnaXN0ZXIqKiovIAorCisvKioqRFNQIENvbnRyb2wgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfTUJDX0RDVFJMICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX01CQysgMHgwMEEwKSkKICNkZWZpbmUgSU5DQV9JUF9NQkNfRENUUkxfQkEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQogI2RlZmluZSBJTkNBX0lQX01CQ19EQ1RSTF9CTU9EICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDEpCiAjZGVmaW5lIElOQ0FfSVBfTUJDX0RDVFJMX0lETCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDQpCiAjZGVmaW5lIElOQ0FfSVBfTUJDX0RDVFJMX1JFUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE1KQotICAgICAgCi0vKioqRFNQIFN0YXR1cyBSZWdpc3RlcioqKi8gCisKKy8qKipEU1AgU3RhdHVzIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX01CQ19EU1RBICAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9NQkMrIDB4MDBBNCkpCiAjZGVmaW5lIElOQ0FfSVBfTUJDX0RTVEFfSURMRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQogI2RlZmluZSBJTkNBX0lQX01CQ19EU1RBX1BEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKLSAgICAgIAotLyoqKkRTUCBUZXN0IDEgUmVnaXN0ZXIqKiovIAorCisvKioqRFNQIFRlc3QgMSBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9NQkNfRFRTVDEgICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfTUJDKyAweDAwQTgpKQogI2RlZmluZSBJTkNBX0lQX01CQ19EVFNUMV9BQk9SVCAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKICNkZWZpbmUgSU5DQV9JUF9NQkNfRFRTVDFfSFdGMzIgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiAjZGVmaW5lIElOQ0FfSVBfTUJDX0RUU1QxX0hXRjRNICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQotI2RlZmluZSBJTkNBX0lQX01CQ19EVFNUMV9IV0ZPUCAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMykJCQotICAgICAgICAgCisjZGVmaW5lIElOQ0FfSVBfTUJDX0RUU1QxX0hXRk9QICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzKQorCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiAgTW9kdWxlICAgICAgOiAgU3dpdGNoIHJlZ2lzdGVyIGFkZHJlc3MgYW5kIGJpdHMgICAgICAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0gICAgICAgICAKLSNkZWZpbmUgSU5DQV9JUF9Td2l0Y2ggICAgICAgICAgICAgICAgICAgICAgICgweEJGMTA0MDAwKQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLyAgIAogCi0gICAgICAKLS8qKipVbmtub3duIERlc3RpbmF0aW9uIFJlZ2lzdGVyKioqLyAKKyNkZWZpbmUgSU5DQV9JUF9Td2l0Y2ggICAgICAgICAgICAgICAgICAgICAgICgweEJGMTA0MDAwKQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKKy8qKipVbmtub3duIERlc3RpbmF0aW9uIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9VTl9ERVNUICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Td2l0Y2grIDB4MDAwMCkpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1VOX0RFU1RfQ0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA4KQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9VTl9ERVNUX0xCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKQEAgLTQ2Myw4ICs0NjMsOCBAQAogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9VTl9ERVNUX0NVICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfVU5fREVTVF9MVSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1VOX0RFU1RfUFUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQotICAgICAgCi0vKioqVkxBTiBDb250cm9sIFJlZ2lzdGVyKioqLyAKKworLyoqKlZMQU4gQ29udHJvbCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfVkxBTl9DVFJMICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU3dpdGNoKyAweDAwMDQpKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9WTEFOX0NUUkxfU0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA2KQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9WTEFOX0NUUkxfU0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA1KQpAQCAtNDczLDIzICs0NzMsMjMgQEAKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfVkxBTl9DVFJMX1RMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfVkxBTl9DVFJMX1RQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfVkxBTl9DVFJMX1ZBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKLSAgICAgIAotLyoqKlBDIFZMQU4gQ29uZmlndXJhdGlvbiBSZWdpc3RlcioqKi8gCisKKy8qKipQQyBWTEFOIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BDX1ZMQU4gICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMDA4KSkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUENfVkxBTl9QUkkgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDEyKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QQ19WTEFOX1ZMQU5fSUQgKHZhbHVlKSAgICAgICAgICAgICgoKCggMSA8PCAxMikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipMQU4gVkxBTiBDb25maWd1cmF0aW9uIFJlZ2lzdGVyKioqLyAKKworLyoqKkxBTiBWTEFOIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0xBTl9WTEFOICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU3dpdGNoKyAweDAwMEMpKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9MQU5fVkxBTl9QUkkgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDEyKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9MQU5fVkxBTl9WTEFOX0lEICh2YWx1ZSkgICAgICAgICAgICAoKCgoIDEgPDwgMTIpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqQ1BVIFZMQU4gQ29uZmlndXJhdGlvbiBSZWdpc3RlcioqKi8gCisKKy8qKipDUFUgVkxBTiBDb25maWd1cmF0aW9uIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9DUFVfVkxBTiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMDEwKSkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQ1BVX1ZMQU5fUFJJICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCAxMikKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQ1BVX1ZMQU5fVkxBTl9JRCAodmFsdWUpICAgICAgICAgICAgKCgoKCAxIDw8IDEyKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKlByaW9yaXR5IENvUyBNYXBwaW5nIFJlZ2lzdGVyKioqLyAKKworLyoqKlByaW9yaXR5IENvUyBNYXBwaW5nIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QUklfQ29TICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Td2l0Y2grIDB4MDAxNCkpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BSSV9Db1NfUDcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA3KQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QUklfQ29TX1A2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNikKQEAgLTQ5OSwxNCArNDk5LDE0IEBACiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BSSV9Db1NfUDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QUklfQ29TX1AxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUFJJX0NvU19QMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0gICAgICAKLS8qKipTcGFubmluZyBUcmVlIFBvcnQgU3RhdHVzIFJlZ2lzdGVyKioqLyAKKworLyoqKlNwYW5uaW5nIFRyZWUgUG9ydCBTdGF0dXMgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1NUX1BUICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMDE4KSkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfU1RfUFRfQ1BTICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCA0KQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9TVF9QVF9MUFMgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDIpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1NUX1BUX1BQUyAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKkFSTCBDb250cm9sIFJlZ2lzdGVyKioqLyAKKworLyoqKkFSTCBDb250cm9sIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9BUkxfQ1RMICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Td2l0Y2grIDB4MDAxQykpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0FSTF9DVExfQ0hDQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNSkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQVJMX0NUTF9DSENMICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE0KQpAQCAtNTIzLDI0ICs1MjMsMjQgQEAKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQVJMX0NUTF9NQUYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9BUkxfQ1RMX0VOTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0FSTF9DVExfUmVzICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDE5KSAtIDEpICYgKHZhbHVlKSkgPDwgMTMpCi0gICAgICAKLS8qKipDUFUgQWNjZXNzIENvbnRyb2wgUmVnaXN0ZXIqKiovIAorCisvKioqQ1BVIEFjY2VzcyBDb250cm9sIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9DUFVfQUNUTCAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMDIwKSkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQ1BVX0FDVExfUkEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMSkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQ1BVX0FDVExfUlcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMCkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQ1BVX0FDVExfUmVzICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDIxKSAtIDEpICYgKHZhbHVlKSkgPDwgOSkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQ1BVX0FDVExfQVZBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOCkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQ1BVX0FDVExfSURYICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDgpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqQ1BVIEFjY2VzcyBEYXRhIFJlZ2lzdGVyIDEqKiovIAorCisvKioqQ1BVIEFjY2VzcyBEYXRhIFJlZ2lzdGVyIDEqKiovCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0RBVEExICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMDI0KSkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfREFUQTFfRGF0YSAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDI0KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKkNQVSBBY2Nlc3MgRGF0YSBSZWdpc3RlciAyKioqLyAKKworLyoqKkNQVSBBY2Nlc3MgRGF0YSBSZWdpc3RlciAyKioqLwogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9EQVRBMiAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Td2l0Y2grIDB4MDAyOCkpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0RBVEEyX0RhdGEKLSAgICAgIAotLyoqKkNQVSBQb3J0IENvbnRyb2wgUmVnaXN0ZXIqKiovIAorCisvKioqQ1BVIFBvcnQgQ29udHJvbCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQ1BVX1BDVEwgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Td2l0Y2grIDB4MDAyQykpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0NQVV9QQ1RMX0RBX1BPUlRTICh2YWx1ZSkgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCAxMSkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQ1BVX1BDVExfREFDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTApCkBAIC01NTEsODUgKzU1MSw4NSBAQAogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9DUFVfUENUTF9FTUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9DUFVfUENUTF9FREwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9DUFVfUENUTF9SZXMgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMTgpIC0gMSkgJiAodmFsdWUpKSA8PCAxNCkKLSAgICAgIAotLyoqKkRTQ1AgQ29TIE1hcHBpbmcgUmVnaXN0ZXIgMSoqKi8gCisKKy8qKipEU0NQIENvUyBNYXBwaW5nIFJlZ2lzdGVyIDEqKiovCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0RTQ1BfQ09TMSAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMDMwKSkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfRFNDUF9DT1MxX0RTQ1AKLSAgICAgIAotLyoqKkRTQ1AgQ29TIE1hcHBpbmcgUmVnaXN0ZXIgMSoqKi8gCisKKy8qKipEU0NQIENvUyBNYXBwaW5nIFJlZ2lzdGVyIDEqKiovCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0RTQ1BfQ09TMiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMDM0KSkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfRFNDUF9DT1MyX0RTQ1AKLSAgICAgIAotLyoqKlBDIFdGUSBDb250cm9sIFJlZ2lzdGVyKioqLyAKKworLyoqKlBDIFdGUSBDb250cm9sIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QQ19XRlFfQ1RMICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Td2l0Y2grIDB4MDA4MCkpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BDX1dGUV9DVExfUDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA5KQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QQ19XRlFfQ1RMX1AwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOCkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUENfV0ZRX0NUTF9XVDEgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDUpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BDX1dGUV9DVExfV1QwICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCAyKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QQ19XRlFfQ1RMX1NDSF9TRUwgKHZhbHVlKSAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKlBDIFRYIENvbnRyb2wgUmVnaXN0ZXIqKiovIAorCisvKioqUEMgVFggQ29udHJvbCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUENfVFhfQ1RMICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU3dpdGNoKyAweDAwODQpKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QQ19UWF9DVExfRUxSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUENfVFhfQ1RMX0VFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0gICAgICAKLS8qKipMQU4gV0ZRIENvbnRyb2wgUmVnaXN0ZXIqKiovIAorCisvKioqTEFOIFdGUSBDb250cm9sIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9MQU5fV0ZRX0NUTCAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Td2l0Y2grIDB4MDEwMCkpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0xBTl9XRlFfQ1RMX1AxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOSkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfTEFOX1dGUV9DVExfUDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA4KQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9MQU5fV0ZRX0NUTF9XVDEgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDUpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0xBTl9XRlFfQ1RMX1dUMCAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMikKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfTEFOX1dGUV9DVExfU0NIX1NFTCAodmFsdWUpICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqTEFOIFRYIENvbnRyb2wgUmVnaXN0ZXIqKiovIAorCisvKioqTEFOIFRYIENvbnRyb2wgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0xBTl9UWF9DVEwgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMTA0KSkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfTEFOX1RYX0NUTF9FTFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9MQU5fVFhfQ1RMX0VFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0gICAgICAKLS8qKipDUFUgV0ZRIENvbnRyb2wgUmVnaXN0ZXIqKiovIAorCisvKioqQ1BVIFdGUSBDb250cm9sIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9DUFVfV0ZRX0NUTCAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Td2l0Y2grIDB4MDE4MCkpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0NQVV9XRlFfQ1RMX1AxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOSkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQ1BVX1dGUV9DVExfUDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA4KQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9DUFVfV0ZRX0NUTF9XVDEgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDUpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0NQVV9XRlFfQ1RMX1dUMCAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMikKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQ1BVX1dGUV9DVExfU0NIX1NFTCAodmFsdWUpICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqUE0gUEMgUlggV2F0ZXJtYXJrIFJlZ2lzdGVyKioqLyAKKworLyoqKlBNIFBDIFJYIFdhdGVybWFyayBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUENfV00gICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU3dpdGNoKyAweDAyMDApKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QQ19XTV9SWF9XTTEgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDI0KQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QQ19XTV9SWF9XTTIgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDE2KQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QQ19XTV9SWF9XTTMgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDgpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BDX1dNX1JYX1dNNCAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKlBNIExBTiBSWCBXYXRlcm1hcmsgUmVnaXN0ZXIqKiovIAorCisvKioqUE0gTEFOIFJYIFdhdGVybWFyayBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfTEFOX1dNICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU3dpdGNoKyAweDAyMDQpKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9MQU5fV01fUlhfV00xICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDgpIC0gMSkgJiAodmFsdWUpKSA8PCAyNCkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfTEFOX1dNX1JYX1dNMiAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgMTYpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0xBTl9XTV9SWF9XTTMgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDgpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0xBTl9XTV9SWF9XTTQgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipQTSBDUFUgUlggV2F0ZXJtYXJrIFJlZ2lzdGVyKioqLyAKKworLyoqKlBNIENQVSBSWCBXYXRlcm1hcmsgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0NQVV9XTSAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMjA4KSkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQ1BVX1dNX1JYX1dNMSAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgMjQpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0NQVV9XTV9SWF9XTTIgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDE2KQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9DUFVfV01fUlhfV00zICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDgpIC0gMSkgJiAodmFsdWUpKSA8PCA4KQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9DUFVfV01fUlhfV000ICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDgpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqUE0gQ1BVIFJYIFdhdGVybWFyayBSZWdpc3RlcioqKi8gCisKKy8qKipQTSBDUFUgUlggV2F0ZXJtYXJrIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9HQkxfV00gICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Td2l0Y2grIDB4MDIwQykpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0dCTF9XTV9HQkxfUlhfV00xICh2YWx1ZSkgICAgICAgICAoKCgoIDEgPDwgOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDI0KQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9HQkxfV01fR0JMX1JYX1dNMiAodmFsdWUpICAgICAgICAgKCgoKCAxIDw8IDgpIC0gMSkgJiAodmFsdWUpKSA8PCAxNikKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfR0JMX1dNX0dCTF9SWF9XTTMgKHZhbHVlKSAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgOCkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfR0JMX1dNX0dCTF9SWF9XTTQgKHZhbHVlKSAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKlBNIENvbnRyb2wgUmVnaXN0ZXIqKiovIAorCisvKioqUE0gQ29udHJvbCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUE1fQ1RMICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU3dpdGNoKyAweDAyMTApKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QTV9DVExfR0ROICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMykKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUE1fQ1RMX0NETiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BNX0NUTF9MRE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QTV9DVExfUEROICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKLSAgICAgIAotLyoqKlBNIEhlYWRlciBDb250cm9sIFJlZ2lzdGVyKioqLyAKKworLyoqKlBNIEhlYWRlciBDb250cm9sIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QTUFDX0hEX0NUTCAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Td2l0Y2grIDB4MDI4MCkpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BNQUNfSERfQ1RMX1JMMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIxKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QTUFDX0hEX0NUTF9SQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIwKQpAQCAtNjM4LDM4ICs2MzgsMzggQEAKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUE1BQ19IRF9DVExfVFlQRV9MRU4gKHZhbHVlKSAgICAgICAgICAoKCgoIDEgPDwgMTYpIC0gMSkgJiAodmFsdWUpKSA8PCAyKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QTUFDX0hEX0NUTF9UQUcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QTUFDX0hEX0NUTF9BREQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQotICAgICAgCi0vKioqUE0gU291cmNlIEFkZHJlc3MgUmVnaXN0ZXIgMSoqKi8gCisKKy8qKipQTSBTb3VyY2UgQWRkcmVzcyBSZWdpc3RlciAxKioqLwogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QTUFDX1NBMSAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMjg0KSkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUE1BQ19TQTFfU0FfNDdfMzIgKHZhbHVlKSAgICAgICAgICAoKCgoIDEgPDwgMTYpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqUE0gU291cmNlIEFkZHJlc3MgUmVnaXN0ZXIgMioqKi8gCisKKy8qKipQTSBTb3VyY2UgQWRkcmVzcyBSZWdpc3RlciAyKioqLwogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QTUFDX1NBMiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMjg4KSkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUE1BQ19TQTJfU0FfMzFfMAotICAgICAgCi0vKioqUE0gRGVzdCBBZGRyZXNzIFJlZ2lzdGVyIDEqKiovIAorCisvKioqUE0gRGVzdCBBZGRyZXNzIFJlZ2lzdGVyIDEqKiovCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BNQUNfREExICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU3dpdGNoKyAweDAyOEMpKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QTUFDX0RBMV9EQV80N18zMiAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCAxNikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipQTSBEZXN0IEFkZHJlc3MgUmVnaXN0ZXIgMioqKi8gCisKKy8qKipQTSBEZXN0IEFkZHJlc3MgUmVnaXN0ZXIgMioqKi8KICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUE1BQ19EQTIgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Td2l0Y2grIDB4MDI5MCkpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BNQUNfREEyX0RBXzMxXzAKLSAgICAgIAotLyoqKlBNIFZMQU4gUmVnaXN0ZXIqKiovIAorCisvKioqUE0gVkxBTiBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUE1BQ19WTEFOICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU3dpdGNoKyAweDAyOTQpKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QTUFDX1ZMQU5fUFJJICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCAxMykKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUE1BQ19WTEFOX0NGSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEyKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QTUFDX1ZMQU5fVkxBTklEICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDEyKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKlBNIFRYIElQRyBDb3VudGVyIFJlZ2lzdGVyKioqLyAKKworLyoqKlBNIFRYIElQRyBDb3VudGVyIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QTUFDX1RYX0lQRyAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Td2l0Y2grIDB4MDI5OCkpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BNQUNfVFhfSVBHX0lQR0NOVCAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKlBNIFJYIElQRyBDb3VudGVyIFJlZ2lzdGVyKioqLyAKKworLyoqKlBNIFJYIElQRyBDb3VudGVyIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QTUFDX1JYX0lQRyAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Td2l0Y2grIDB4MDI5QykpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BNQUNfUlhfSVBHX0lQR0NOVCAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKk1pcnJvciBSZWdpc3RlcioqKi8gCisKKy8qKipNaXJyb3IgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX01SUiAgICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMzAwKSkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfTVJSX01SUiAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgNikKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfTVJSX0VDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNSkKQEAgLTY3OCwyMSArNjc4LDIxIEBACiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX01SUl9JQyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX01SUl9JTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX01SUl9JUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0gICAgICAKLS8qKipQYWNrZXQgTGVuZ3RoIFJlZ2lzdGVyKioqLyAKKworLyoqKlBhY2tldCBMZW5ndGggUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX1BLVF9MRU4gICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1N3aXRjaCsgMHgwMzA0KSkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUEtUX0xFTl9BREQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxMSkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUEtUX0xFTl9NQVhfUEtUX0xFTiAodmFsdWUpICAgICAgICAoKCgoIDEgPDwgMTEpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqTURJTyBBY2Nlc3MgUmVnaXN0ZXIqKiovIAorCisvKioqTURJTyBBY2Nlc3MgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX01ESU9fQUNDICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU3dpdGNoKyAweDA0ODApKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9NRElPX0FDQ19SQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMxKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9NRElPX0FDQ19SVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMwKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9NRElPX0FDQ19QSFlfQUREUiAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCA1KSAtIDEpICYgKHZhbHVlKSkgPDwgMjEpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX01ESU9fQUNDX1JFR19BRERSICh2YWx1ZSkgICAgICAgICAgKCgoKCAxIDw8IDUpIC0gMSkgJiAodmFsdWUpKSA8PCAxNikKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfTURJT19BQ0NfUEhZX0RBVEEgKHZhbHVlKSAgICAgICAgICAoKCgoIDEgPDwgMTYpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqRXRoZXJuZXQgUEhZIFJlZ2lzdGVyKioqLyAKKworLyoqKkV0aGVybmV0IFBIWSBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfRVBIWSAgICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU3dpdGNoKyAweDA0ODQpKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9FUEhZX1NMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfRVBIWV9TUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDYpCkBAIC03MDIsMTMgKzcwMiwxMyBAQAogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9FUEhZX0RQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfRVBIWV9QTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0VQSFlfUFAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQotICAgICAgCi0vKioqUGF1c2UgV3JpdGUgRW5hYmxlIFJlZ2lzdGVyKioqLyAKKworLyoqKlBhdXNlIFdyaXRlIEVuYWJsZSBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfUFdSX0VOICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU3dpdGNoKyAweDA0ODgpKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QV1JfRU5fUEwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9QV1JfRU5fUFAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQotICAgICAgCi0vKioqTURJTyBDb25maWd1cmF0aW9uIFJlZ2lzdGVyKioqLyAKKworLyoqKk1ESU8gQ29uZmlndXJhdGlvbiBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfTURJT19DRkcgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Td2l0Y2grIDB4MDQ4QykpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX01ESU9fQ0ZHX01EUyAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMTQpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX01ESU9fQ0ZHX1BIWV9MQU5fQUREUiAodmFsdWUpICAgICAgICgoKCggMSA8PCA1KSAtIDEpICYgKHZhbHVlKSkgPDwgOSkKQEAgLTcxNywyNCArNzE3LDI0IEBACiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX01ESU9fQ0ZHX1BTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfTURJT19DRkdfUFQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9NRElPX0NGR19VTU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQotICAgICAgCi0vKioqQ2xvY2sgQ29uZmlndXJhdGlvbiBSZWdpc3RlcioqKi8gCisKKy8qKipDbG9jayBDb25maWd1cmF0aW9uIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9DTEtfQ0ZHICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Td2l0Y2grIDB4MDUwMCkpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0NMS19DRkdfQVJMX0lEICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOSkKICNkZWZpbmUgSU5DQV9JUF9Td2l0Y2hfQ0xLX0NGR19DUFVfSUQgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA4KQogI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9DTEtfQ0ZHX0xBTl9JRCAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiAjZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0NMS19DRkdfUENfSUQgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDYpCi0jZGVmaW5lIElOQ0FfSVBfU3dpdGNoX0NMS19DRkdfU0VfSUQgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDUpCQkKLSAgICAgICAgIAorI2RlZmluZSBJTkNBX0lQX1N3aXRjaF9DTEtfQ0ZHX1NFX0lEICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA1KQorCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiAgTW9kdWxlICAgICAgOiAgU1NDMSByZWdpc3RlciBhZGRyZXNzIGFuZCBiaXRzICAgICAgICAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0gICAgICAgICAKLSNkZWZpbmUgSU5DQV9JUF9TU0MxICAgICAgICAgICAgICAgICAgICAgICAgICgweEI4MDAwNTAwKQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLyAgIAogCi0gICAgICAKLS8qKipDb250cm9sIFJlZ2lzdGVyIChQcm9ncmFtbWluZyBNb2RlKSoqKi8gCisjZGVmaW5lIElOQ0FfSVBfU1NDMSAgICAgICAgICAgICAgICAgICAgICAgICAoMHhCODAwMDUwMCkKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCisvKioqQ29udHJvbCBSZWdpc3RlciAoUHJvZ3JhbW1pbmcgTW9kZSkqKiovCiAjZGVmaW5lIElOQ0FfSVBfU1NDMV9TQ0NfQ09OX1BSRyAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9TU0MxKyAweDAwMTApKQogI2RlZmluZSBJTkNBX0lQX1NTQzFfU0NDX0NPTl9QUkdfRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNSkKICNkZWZpbmUgSU5DQV9JUF9TU0MxX1NDQ19DT05fUFJHX01TICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTQpCkBAIC03NDgsOCArNzQ4LDggQEAKICNkZWZpbmUgSU5DQV9JUF9TU0MxX1NDQ19DT05fUFJHX1BIICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNSkKICNkZWZpbmUgSU5DQV9JUF9TU0MxX1NDQ19DT05fUFJHX0hCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNCkKICNkZWZpbmUgSU5DQV9JUF9TU0MxX1NDQ19DT05fUFJHX0JNICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDQpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqU0NDIENvbnRyb2wgUmVnaXN0ZXIgKE9wZXJhdGluZyBNb2RlKSoqKi8gCisKKy8qKipTQ0MgQ29udHJvbCBSZWdpc3RlciAoT3BlcmF0aW5nIE1vZGUpKioqLwogI2RlZmluZSBJTkNBX0lQX1NTQzFfU0NDX0NPTl9PUFIgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU1NDMSsgMHgwMDEwKSkKICNkZWZpbmUgSU5DQV9JUF9TU0MxX1NDQ19DT05fT1BSX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTUpCiAjZGVmaW5lIElOQ0FfSVBfU1NDMV9TQ0NfQ09OX09QUl9NUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE0KQpAQCAtNzU5LDggKzc1OSw4IEBACiAjZGVmaW5lIElOQ0FfSVBfU1NDMV9TQ0NfQ09OX09QUl9SRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDkpCiAjZGVmaW5lIElOQ0FfSVBfU1NDMV9TQ0NfQ09OX09QUl9URSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDgpCiAjZGVmaW5lIElOQ0FfSVBfU1NDMV9TQ0NfQ09OX09QUl9CQyAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKlNTQyBXcml0ZSBIYXJkd2FyZSBNb2RpZmllZCBDb250cm9sIFJlZ2lzdGVyKioqLyAKKworLyoqKlNTQyBXcml0ZSBIYXJkd2FyZSBNb2RpZmllZCBDb250cm9sIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX1NTQzFfU1NDX1dIQkNPTiAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU1NDMSsgMHgwMDQwKSkKICNkZWZpbmUgSU5DQV9JUF9TU0MxX1NTQ19XSEJDT05fU0VUQkUgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE1KQogI2RlZmluZSBJTkNBX0lQX1NTQzFfU1NDX1dIQkNPTl9TRVRQRSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTQpCkBAIC03NzAsNTMgKzc3MCw1MyBAQAogI2RlZmluZSBJTkNBX0lQX1NTQzFfU1NDX1dIQkNPTl9DTFJQRSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTApCiAjZGVmaW5lIElOQ0FfSVBfU1NDMV9TU0NfV0hCQ09OX0NMUlJFICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA5KQogI2RlZmluZSBJTkNBX0lQX1NTQzFfU1NDX1dIQkNPTl9DTFJURSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOCkKLSAgICAgIAotLyoqKlNTQyBCYXVkcmF0ZSBUaW1lciBSZWxvYWQgUmVnaXN0ZXIqKiovIAorCisvKioqU1NDIEJhdWRyYXRlIFRpbWVyIFJlbG9hZCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9TU0MxX1NTQ19CUiAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1NTQzErIDB4MDAxNCkpCiAjZGVmaW5lIElOQ0FfSVBfU1NDMV9TU0NfQlJfQlJfVkFMVUUgKHZhbHVlKSAgICAgICAgICAoKCgoIDEgPDwgMTYpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqU1NDIFRyYW5zbWl0dGVyIEJ1ZmZlciBSZWdpc3RlcioqKi8gCisKKy8qKipTU0MgVHJhbnNtaXR0ZXIgQnVmZmVyIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX1NTQzFfU1NDX1RCICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU1NDMSsgMHgwMDIwKSkKICNkZWZpbmUgSU5DQV9JUF9TU0MxX1NTQ19UQl9UQl9WQUxVRSAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCAxNikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipTU0MgUmVjZWl2ZXIgQnVmZmVyIFJlZ2lzdGVyKioqLyAKKworLyoqKlNTQyBSZWNlaXZlciBCdWZmZXIgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfU1NDMV9TU0NfUkIgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9TU0MxKyAweDAwMjQpKQogI2RlZmluZSBJTkNBX0lQX1NTQzFfU1NDX1JCX1JCX1ZBTFVFICh2YWx1ZSkgICAgICAgICAgKCgoKCAxIDw8IDE2KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKlNTQyBSZWNlaXZlIEZJRk8gQ29udHJvbCBSZWdpc3RlcioqKi8gCisKKy8qKipTU0MgUmVjZWl2ZSBGSUZPIENvbnRyb2wgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfU1NDMV9TU0NfUlhGQ09OICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9TU0MxKyAweDAwMzApKQogI2RlZmluZSBJTkNBX0lQX1NTQzFfU1NDX1JYRkNPTl9SWEZJVEwgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgNikgLSAxKSAmICh2YWx1ZSkpIDw8IDgpCiAjZGVmaW5lIElOQ0FfSVBfU1NDMV9TU0NfUlhGQ09OX1JYVE1FTiAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiAjZGVmaW5lIElOQ0FfSVBfU1NDMV9TU0NfUlhGQ09OX1JYRkxVICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQogI2RlZmluZSBJTkNBX0lQX1NTQzFfU1NDX1JYRkNPTl9SWEZFTiAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKLSAgICAgIAotLyoqKlNTQyBUcmFuc21pdCBGSUZPIENvbnRyb2wgUmVnaXN0ZXIqKiovIAorCisvKioqU1NDIFRyYW5zbWl0IEZJRk8gQ29udHJvbCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9TU0MxX1NTQ19UWEZDT04gICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1NTQzErIDB4MDAzNCkpCiAjZGVmaW5lIElOQ0FfSVBfU1NDMV9TU0NfVFhGQ09OX1JYRklUTCAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCA2KSAtIDEpICYgKHZhbHVlKSkgPDwgOCkKICNkZWZpbmUgSU5DQV9JUF9TU0MxX1NTQ19UWEZDT05fVFhUTUVOICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKICNkZWZpbmUgSU5DQV9JUF9TU0MxX1NTQ19UWEZDT05fVFhGTFUgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiAjZGVmaW5lIElOQ0FfSVBfU1NDMV9TU0NfVFhGQ09OX1RYRkVOICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQotICAgICAgCi0vKioqU1NDIEZJRk8gU3RhdHVzIFJlZ2lzdGVyKioqLyAKKworLyoqKlNTQyBGSUZPIFN0YXR1cyBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9TU0MxX1NTQ19GU1RBVCAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1NTQzErIDB4MDAzOCkpCiAjZGVmaW5lIElOQ0FfSVBfU1NDMV9TU0NfRlNUQVRfVFhGRkwgKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDYpIC0gMSkgJiAodmFsdWUpKSA8PCA4KQogI2RlZmluZSBJTkNBX0lQX1NTQzFfU1NDX0ZTVEFUX1JYRkZMICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCA2KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKlNTQyBDbG9jayBDb250cm9sIFJlZ2lzdGVyKioqLyAKKworLyoqKlNTQyBDbG9jayBDb250cm9sIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX1NTQzFfU1NDX0NMQyAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU1NDMSsgMHgwMDAwKSkKICNkZWZpbmUgSU5DQV9JUF9TU0MxX1NTQ19DTENfUk1DICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDgpIC0gMSkgJiAodmFsdWUpKSA8PCA4KQogI2RlZmluZSBJTkNBX0lQX1NTQzFfU1NDX0NMQ19ESVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCi0jZGVmaW5lIElOQ0FfSVBfU1NDMV9TU0NfQ0xDX0RJU1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkJCQotICAgICAgICAgCisjZGVmaW5lIElOQ0FfSVBfU1NDMV9TU0NfQ0xDX0RJU1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogIE1vZHVsZSAgICAgIDogIFNTQzIgcmVnaXN0ZXIgYWRkcmVzcyBhbmQgYml0cyAgICAgICAgICAgICAgICAgICAgICAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotICAgICAgICAgCi0jZGVmaW5lIElOQ0FfSVBfU1NDMiAgICAgICAgICAgICAgICAgICAgICAgICAoMHhCODAwMDYwMCkKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8gICAKIAotICAgICAgCi0vKioqQ29udHJvbCBSZWdpc3RlciAoUHJvZ3JhbW1pbmcgTW9kZSkqKiovIAorI2RlZmluZSBJTkNBX0lQX1NTQzIgICAgICAgICAgICAgICAgICAgICAgICAgKDB4QjgwMDA2MDApCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworLyoqKkNvbnRyb2wgUmVnaXN0ZXIgKFByb2dyYW1taW5nIE1vZGUpKioqLwogI2RlZmluZSBJTkNBX0lQX1NTQzJfU0NDX0NPTl9QUkcgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU1NDMisgMHgwMDEwKSkKICNkZWZpbmUgSU5DQV9JUF9TU0MyX1NDQ19DT05fUFJHX0VOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTUpCiAjZGVmaW5lIElOQ0FfSVBfU1NDMl9TQ0NfQ09OX1BSR19NUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE0KQpAQCAtODMwLDggKzgzMCw4IEBACiAjZGVmaW5lIElOQ0FfSVBfU1NDMl9TQ0NfQ09OX1BSR19QSCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDUpCiAjZGVmaW5lIElOQ0FfSVBfU1NDMl9TQ0NfQ09OX1BSR19IQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDQpCiAjZGVmaW5lIElOQ0FfSVBfU1NDMl9TQ0NfQ09OX1BSR19CTSAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKlNDQyBDb250cm9sIFJlZ2lzdGVyIChPcGVyYXRpbmcgTW9kZSkqKiovIAorCisvKioqU0NDIENvbnRyb2wgUmVnaXN0ZXIgKE9wZXJhdGluZyBNb2RlKSoqKi8KICNkZWZpbmUgSU5DQV9JUF9TU0MyX1NDQ19DT05fT1BSICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1NTQzIrIDB4MDAxMCkpCiAjZGVmaW5lIElOQ0FfSVBfU1NDMl9TQ0NfQ09OX09QUl9FTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE1KQogI2RlZmluZSBJTkNBX0lQX1NTQzJfU0NDX0NPTl9PUFJfTVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNCkKQEAgLTg0MSw4ICs4NDEsOCBAQAogI2RlZmluZSBJTkNBX0lQX1NTQzJfU0NDX0NPTl9PUFJfUkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA5KQogI2RlZmluZSBJTkNBX0lQX1NTQzJfU0NDX0NPTl9PUFJfVEUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA4KQogI2RlZmluZSBJTkNBX0lQX1NTQzJfU0NDX0NPTl9PUFJfQkMgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipTU0MgV3JpdGUgSGFyZHdhcmUgTW9kaWZpZWQgQ29udHJvbCBSZWdpc3RlcioqKi8gCisKKy8qKipTU0MgV3JpdGUgSGFyZHdhcmUgTW9kaWZpZWQgQ29udHJvbCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9TU0MyX1NTQ19XSEJDT04gICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1NTQzIrIDB4MDA0MCkpCiAjZGVmaW5lIElOQ0FfSVBfU1NDMl9TU0NfV0hCQ09OX1NFVEJFICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNSkKICNkZWZpbmUgSU5DQV9JUF9TU0MyX1NTQ19XSEJDT05fU0VUUEUgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE0KQpAQCAtODUyLDYzICs4NTIsNjMgQEAKICNkZWZpbmUgSU5DQV9JUF9TU0MyX1NTQ19XSEJDT05fQ0xSUEUgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEwKQogI2RlZmluZSBJTkNBX0lQX1NTQzJfU1NDX1dIQkNPTl9DTFJSRSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOSkKICNkZWZpbmUgSU5DQV9JUF9TU0MyX1NTQ19XSEJDT05fQ0xSVEUgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDgpCi0gICAgICAKLS8qKipTU0MgQmF1ZHJhdGUgVGltZXIgUmVsb2FkIFJlZ2lzdGVyKioqLyAKKworLyoqKlNTQyBCYXVkcmF0ZSBUaW1lciBSZWxvYWQgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfU1NDMl9TU0NfQlIgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9TU0MyKyAweDAwMTQpKQogI2RlZmluZSBJTkNBX0lQX1NTQzJfU1NDX0JSX0JSX1ZBTFVFICh2YWx1ZSkgICAgICAgICAgKCgoKCAxIDw8IDE2KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKlNTQyBUcmFuc21pdHRlciBCdWZmZXIgUmVnaXN0ZXIqKiovIAorCisvKioqU1NDIFRyYW5zbWl0dGVyIEJ1ZmZlciBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9TU0MyX1NTQ19UQiAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1NTQzIrIDB4MDAyMCkpCiAjZGVmaW5lIElOQ0FfSVBfU1NDMl9TU0NfVEJfVEJfVkFMVUUgKHZhbHVlKSAgICAgICAgICAoKCgoIDEgPDwgMTYpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqU1NDIFJlY2VpdmVyIEJ1ZmZlciBSZWdpc3RlcioqKi8gCisKKy8qKipTU0MgUmVjZWl2ZXIgQnVmZmVyIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX1NTQzJfU1NDX1JCICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU1NDMisgMHgwMDI0KSkKICNkZWZpbmUgSU5DQV9JUF9TU0MyX1NTQ19SQl9SQl9WQUxVRSAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCAxNikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipTU0MgUmVjZWl2ZSBGSUZPIENvbnRyb2wgUmVnaXN0ZXIqKiovIAorCisvKioqU1NDIFJlY2VpdmUgRklGTyBDb250cm9sIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX1NTQzJfU1NDX1JYRkNPTiAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU1NDMisgMHgwMDMwKSkKICNkZWZpbmUgSU5DQV9JUF9TU0MyX1NTQ19SWEZDT05fUlhGSVRMICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDYpIC0gMSkgJiAodmFsdWUpKSA8PCA4KQogI2RlZmluZSBJTkNBX0lQX1NTQzJfU1NDX1JYRkNPTl9SWFRNRU4gICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQogI2RlZmluZSBJTkNBX0lQX1NTQzJfU1NDX1JYRkNPTl9SWEZMVSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKICNkZWZpbmUgSU5DQV9JUF9TU0MyX1NTQ19SWEZDT05fUlhGRU4gICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0gICAgICAKLS8qKipTU0MgVHJhbnNtaXQgRklGTyBDb250cm9sIFJlZ2lzdGVyKioqLyAKKworLyoqKlNTQyBUcmFuc21pdCBGSUZPIENvbnRyb2wgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfU1NDMl9TU0NfVFhGQ09OICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9TU0MyKyAweDAwMzQpKQogI2RlZmluZSBJTkNBX0lQX1NTQzJfU1NDX1RYRkNPTl9SWEZJVEwgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgNikgLSAxKSAmICh2YWx1ZSkpIDw8IDgpCiAjZGVmaW5lIElOQ0FfSVBfU1NDMl9TU0NfVFhGQ09OX1RYVE1FTiAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiAjZGVmaW5lIElOQ0FfSVBfU1NDMl9TU0NfVFhGQ09OX1RYRkxVICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQogI2RlZmluZSBJTkNBX0lQX1NTQzJfU1NDX1RYRkNPTl9UWEZFTiAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKLSAgICAgIAotLyoqKlNTQyBGSUZPIFN0YXR1cyBSZWdpc3RlcioqKi8gCisKKy8qKipTU0MgRklGTyBTdGF0dXMgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfU1NDMl9TU0NfRlNUQVQgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9TU0MyKyAweDAwMzgpKQogI2RlZmluZSBJTkNBX0lQX1NTQzJfU1NDX0ZTVEFUX1RYRkZMICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCA2KSAtIDEpICYgKHZhbHVlKSkgPDwgOCkKICNkZWZpbmUgSU5DQV9JUF9TU0MyX1NTQ19GU1RBVF9SWEZGTCAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgNikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipTU0MgQ2xvY2sgQ29udHJvbCBSZWdpc3RlcioqKi8gCisKKy8qKipTU0MgQ2xvY2sgQ29udHJvbCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9TU0MyX1NTQ19DTEMgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1NTQzIrIDB4MDAwMCkpCiAjZGVmaW5lIElOQ0FfSVBfU1NDMl9TU0NfQ0xDX1JNQyAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgOCkKICNkZWZpbmUgSU5DQV9JUF9TU0MyX1NTQ19DTENfRElTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQotI2RlZmluZSBJTkNBX0lQX1NTQzJfU1NDX0NMQ19ESVNSICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCQkKLSAgICAgICAgIAorI2RlZmluZSBJTkNBX0lQX1NTQzJfU1NDX0NMQ19ESVNSICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qICBNb2R1bGUgICAgICA6ICBFQlUgcmVnaXN0ZXIgYWRkcmVzcyBhbmQgYml0cyAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSAgICAgICAgIAorCiAjaWYgZGVmaW5lZChDT05GSUdfSU5DQV9JUCkKICNkZWZpbmUgSU5DQV9JUF9FQlUgICAgICAgICAgICAgICAgICAgICAgICAgICgweEI4MDAwMjAwKQogI2VsaWYgZGVmaW5lZChDT05GSUdfUFVSUExFKQogI2RlZmluZSBJTkNBX0lQX0VCVSAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4QjgwMEQ4MDApCiAjZW5kaWYKIAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLyAgIAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCi0gICAgICAKLS8qKipFQlUgQ2xvY2sgQ29udHJvbCBSZWdpc3RlcioqKi8gCisKKy8qKipFQlUgQ2xvY2sgQ29udHJvbCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0NMQyAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfRUJVKyAweDAwMDApKQogI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQ0xDX0RJU1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKICNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0NMQ19ESVNSICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0gICAgICAKLS8qKipFQlUgR2xvYmFsIENvbnRyb2wgUmVnaXN0ZXIqKiovIAorCisvKioqRUJVIEdsb2JhbCBDb250cm9sIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQ09OICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9FQlUrIDB4MDAxMCkpCiAjZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9DT05fRFRBQ1MgKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCAyMCkKICNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0NPTl9EVEFSVyAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDE2KQpAQCAtOTE2LDI5ICs5MTYsMjkgQEAKICNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0NPTl9BUkJNT0RFICh2YWx1ZSkgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDYpCiAjZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9DT05fQVJCU1lOQyAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA1KQogI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQ09OXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzKQotICAgICAgCi0vKioqRUJVIEFkZHJlc3MgU2VsZWN0IFJlZ2lzdGVyIDAqKiovIAorCisvKioqRUJVIEFkZHJlc3MgU2VsZWN0IFJlZ2lzdGVyIDAqKiovCiAjZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9BRERTRUwwICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0VCVSsgMHgwMDIwKSkKICNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0FERFNFTDBfQkFTRSAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDIwKSAtIDEpICYgKHZhbHVlKSkgPDwgMTIpCiAjZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9BRERTRUwwX01BU0sgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgNCkKICNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0FERFNFTDBfTUlSUk9SRSAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQogI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQUREU0VMMF9SRUdFTiAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKLSAgICAgIAotLyoqKkVCVSBBZGRyZXNzIFNlbGVjdCBSZWdpc3RlciAxKioqLyAKKworLyoqKkVCVSBBZGRyZXNzIFNlbGVjdCBSZWdpc3RlciAxKioqLwogI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQUREU0VMMSAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9FQlUrIDB4MDAyNCkpCiAjZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9BRERTRUwxX0JBU0UgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAyMCkgLSAxKSAmICh2YWx1ZSkpIDw8IDEyKQogI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQUREU0VMMV9NQVNLICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDQpCiAjZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9BRERTRUwxX01JUlJPUkUgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKICNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0FERFNFTDFfUkVHRU4gICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0gICAgICAKLS8qKipFQlUgQWRkcmVzcyBTZWxlY3QgUmVnaXN0ZXIgMioqKi8gCisKKy8qKipFQlUgQWRkcmVzcyBTZWxlY3QgUmVnaXN0ZXIgMioqKi8KICNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0FERFNFTDIgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfRUJVKyAweDAwMjgpKQogI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQUREU0VMMl9CQVNFICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMjApIC0gMSkgJiAodmFsdWUpKSA8PCAxMikKICNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0FERFNFTDJfTUFTSyAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDQpIC0gMSkgJiAodmFsdWUpKSA8PCA0KQogI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQUREU0VMMl9NSVJST1JFICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiAjZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9BRERTRUwyX1JFR0VOICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQotICAgICAgCi0vKioqRUJVIEJ1cyBDb25maWd1cmF0aW9uIFJlZ2lzdGVyIDAqKiovIAorCisvKioqRUJVIEJ1cyBDb25maWd1cmF0aW9uIFJlZ2lzdGVyIDAqKiovCiAjZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9CVVNDT04wICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0VCVSsgMHgwMDYwKSkKICNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0JVU0NPTjBfV1JESVMgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMxKQogI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQlVTQ09OMF9BTEVDICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDI5KQpAQCAtOTU0LDggKzk1NCw4IEBACiAjZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9CVVNDT04wX0hPTERDICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgNCkKICNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0JVU0NPTjBfUkVDT1ZDICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAyKQogI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQlVTQ09OMF9DTVVMVCAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipFQlUgQnVzIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgMSoqKi8gCisKKy8qKipFQlUgQnVzIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgMSoqKi8KICNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0JVU0NPTjEgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfRUJVKyAweDAwNjQpKQogI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQlVTQ09OMV9XUkRJUyAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzEpCiAjZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9CVVNDT04xX0FMRUMgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMjkpCkBAIC05NzEsOCArOTcxLDggQEAKICNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0JVU0NPTjFfSE9MREMgKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCA0KQogI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQlVTQ09OMV9SRUNPVkMgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDIpCiAjZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9CVVNDT04xX0NNVUxUICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKkVCVSBCdXMgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAyKioqLyAKKworLyoqKkVCVSBCdXMgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAyKioqLwogI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQlVTQ09OMiAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9FQlUrIDB4MDA2OCkpCiAjZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9CVVNDT04yX1dSRElTICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMSkKICNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0JVU0NPTjJfQUxFQyAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAyOSkKQEAgLTk4NywyOCArOTg3LDI4IEBACiAjZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9CVVNDT04yX1dBSVRXUkMgKHZhbHVlKSAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgNikKICNkZWZpbmUgSU5DQV9JUF9FQlVfRUJVX0JVU0NPTjJfSE9MREMgKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCA0KQogI2RlZmluZSBJTkNBX0lQX0VCVV9FQlVfQlVTQ09OMl9SRUNPVkMgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDIpCi0jZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9CVVNDT04yX0NNVUxUICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkJCQotICAgICAgICAgCisjZGVmaW5lIElOQ0FfSVBfRUJVX0VCVV9CVVNDT04yX0NNVUxUICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogIE1vZHVsZSAgICAgIDogIFNEUkFNIHJlZ2lzdGVyIGFkZHJlc3MgYW5kIGJpdHMgICAgICAgICAgICAgICAgICAgICAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotICAgICAgICAgCi0jZGVmaW5lIElOQ0FfSVBfU0RSQU0gICAgICAgICAgICAgICAgICAgICAgICAoMHhCRjgwMDAwMCkKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8gICAKIAotICAgICAgCi0vKioqTUMgQWNjZXNzIEVycm9yIENhdXNlIFJlZ2lzdGVyKioqLyAKKyNkZWZpbmUgSU5DQV9JUF9TRFJBTSAgICAgICAgICAgICAgICAgICAgICAgICgweEJGODAwMDAwKQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKKy8qKipNQyBBY2Nlc3MgRXJyb3IgQ2F1c2UgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfRVJSQ0FVU0UgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU0RSQU0rIDB4MDEwMCkpCiAjZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfRVJSQ0FVU0VfRVJSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzEpCiAjZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfRVJSQ0FVU0VfUE9SVCAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDQpIC0gMSkgJiAodmFsdWUpKSA8PCAxNikKICNkZWZpbmUgSU5DQV9JUF9TRFJBTV9NQ19FUlJDQVVTRV9DQVVTRSAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCiAjZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfRVJSQ0FVU0VfUmVzICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IE5hTikgLSAxKSAmICh2YWx1ZSkpIDw8IE5hTikKLSAgICAgIAotLyoqKk1DIEFjY2VzcyBFcnJvciBBZGRyZXNzIFJlZ2lzdGVyKioqLyAKKworLyoqKk1DIEFjY2VzcyBFcnJvciBBZGRyZXNzIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX1NEUkFNX01DX0VSUkFERFIgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1NEUkFNKyAweDAxMDgpKQogI2RlZmluZSBJTkNBX0lQX1NEUkFNX01DX0VSUkFERFJfQUREUgotICAgICAgCi0vKioqTUMgSS9PIEdlbmVyYWwgUHVycG9zZSBSZWdpc3RlcioqKi8gCisKKy8qKipNQyBJL08gR2VuZXJhbCBQdXJwb3NlIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX1NEUkFNX01DX0lPR1AgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1NEUkFNKyAweDA4MDApKQogI2RlZmluZSBJTkNBX0lQX1NEUkFNX01DX0lPR1BfR1BSNiAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDQpIC0gMSkgJiAodmFsdWUpKSA8PCAyOCkKICNkZWZpbmUgSU5DQV9JUF9TRFJBTV9NQ19JT0dQX0dQUjUgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgMjQpCkBAIC0xMDE5LDM5ICsxMDE5LDM5IEBACiAjZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfSU9HUF9DTEtERUxBWSAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgOCkKICNkZWZpbmUgSU5DQV9JUF9TRFJBTV9NQ19JT0dQX0NMS1JBVCAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgNCkKICNkZWZpbmUgSU5DQV9JUF9TRFJBTV9NQ19JT0dQX1JEREVMICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKk1DIFNlbGYgUmVmcmVzaCBSZWdpc3RlcioqKi8gCisKKy8qKipNQyBTZWxmIFJlZnJlc2ggUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfU0VMRlJGU0ggICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU0RSQU0rIDB4MEEwMCkpCiAjZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfU0VMRlJGU0hfUFdEUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQogI2RlZmluZSBJTkNBX0lQX1NEUkFNX01DX1NFTEZSRlNIX1BXRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCiAjZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfU0VMRlJGU0hfUmVzICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDMwKSAtIDEpICYgKHZhbHVlKSkgPDwgMikKLSAgICAgIAotLyoqKk1DIEVuYWJsZSBSZWdpc3RlcioqKi8gCisKKy8qKipNQyBFbmFibGUgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfQ1RSTEVOQSAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU0RSQU0rIDB4MTAwMCkpCiAjZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfQ1RSTEVOQV9FTkEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQogI2RlZmluZSBJTkNBX0lQX1NEUkFNX01DX0NUUkxFTkFfUmVzICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDMxKSAtIDEpICYgKHZhbHVlKSkgPDwgMSkKLSAgICAgIAotLyoqKk1DIE1vZGUgUmVnaXN0ZXIgU2V0dXAgQ29kZSoqKi8gCisKKy8qKipNQyBNb2RlIFJlZ2lzdGVyIFNldHVwIENvZGUqKiovCiAjZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfTVJTQ09ERSAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU0RSQU0rIDB4MTAwOCkpCiAjZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfTVJTQ09ERV9VTUMgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgNSkgLSAxKSAmICh2YWx1ZSkpIDw8IDcpCiAjZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfTVJTQ09ERV9DTCAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgNCkKICNkZWZpbmUgSU5DQV9JUF9TRFJBTV9NQ19NUlNDT0RFX1dUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMykKICNkZWZpbmUgSU5DQV9JUF9TRFJBTV9NQ19NUlNDT0RFX0JMICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqTUMgQ29uZmlndXJhdGlvbiBEYXRhLXdvcmQgV2lkdGggUmVnaXN0ZXIqKiovIAorCisvKioqTUMgQ29uZmlndXJhdGlvbiBEYXRhLXdvcmQgV2lkdGggUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfQ0ZHRFcgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9TRFJBTSsgMHgxMDEwKSkKICNkZWZpbmUgSU5DQV9JUF9TRFJBTV9NQ19DRkdEV19EVyAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKICNkZWZpbmUgSU5DQV9JUF9TRFJBTV9NQ19DRkdEV19SZXMgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMjgpIC0gMSkgJiAodmFsdWUpKSA8PCA0KQotICAgICAgCi0vKioqTUMgQ29uZmlndXJhdGlvbiBQaHlzaWNhbCBCYW5rIDAgUmVnaXN0ZXIqKiovIAorCisvKioqTUMgQ29uZmlndXJhdGlvbiBQaHlzaWNhbCBCYW5rIDAgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfQ0ZHUEIwICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU0RSQU0rIDB4MTAxOCkpCiAjZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfQ0ZHUEIwX01DU0VOMCAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgMTIpCiAjZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfQ0ZHUEIwX0JBTktOMCAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgOCkKICNkZWZpbmUgSU5DQV9JUF9TRFJBTV9NQ19DRkdQQjBfUk9XVzAgKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDQpIC0gMSkgJiAodmFsdWUpKSA8PCA0KQogI2RlZmluZSBJTkNBX0lQX1NEUkFNX01DX0NGR1BCMF9DT0xXMCAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCiAjZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfQ0ZHUEIwX1JlcyAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAxNikgLSAxKSAmICh2YWx1ZSkpIDw8IDE2KQotICAgICAgCi0vKioqTUMgTGF0ZW5jeSBSZWdpc3RlcioqKi8gCisKKy8qKipNQyBMYXRlbmN5IFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX1NEUkFNX01DX0xBVEVOQ1kgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1NEUkFNKyAweDEwMzgpKQogI2RlZmluZSBJTkNBX0lQX1NEUkFNX01DX0xBVEVOQ1lfVFJQICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDQpIC0gMSkgJiAodmFsdWUpKSA8PCAxNikKICNkZWZpbmUgSU5DQV9JUF9TRFJBTV9NQ19MQVRFTkNZX1RSQVMgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgMTIpCkBAIC0xMDU5LDI3ICsxMDU5LDI3IEBACiAjZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfTEFURU5DWV9URFBMICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDQpCiAjZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfTEFURU5DWV9UREFMICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCiAjZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfTEFURU5DWV9SZXMgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMTIpIC0gMSkgJiAodmFsdWUpKSA8PCAyMCkKLSAgICAgIAotLyoqKk1DIFJlZnJlc2ggQ3ljbGUgVGltZSBSZWdpc3RlcioqKi8gCisKKy8qKipNQyBSZWZyZXNoIEN5Y2xlIFRpbWUgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfVFJFRlJFU0ggICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfU0RSQU0rIDB4MTA0MCkpCiAjZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfVFJFRlJFU0hfVFJFRiAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDEzKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSNkZWZpbmUgSU5DQV9JUF9TRFJBTV9NQ19UUkVGUkVTSF9SZXMgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMTkpIC0gMSkgJiAodmFsdWUpKSA8PCAxMykJCQotICAgICAgICAgCisjZGVmaW5lIElOQ0FfSVBfU0RSQU1fTUNfVFJFRlJFU0hfUmVzICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDE5KSAtIDEpICYgKHZhbHVlKSkgPDwgMTMpCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qICBNb2R1bGUgICAgICA6ICBHUFRVIHJlZ2lzdGVyIGFkZHJlc3MgYW5kIGJpdHMgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSAgICAgICAgIAotI2RlZmluZSBJTkNBX0lQX0dQVFUgICAgICAgICAgICAgICAgICAgICAgICAgKDB4QjgwMDAzMDApCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovICAgCiAKLSAgICAgIAotLyoqKkdQVCBDbG9jayBDb250cm9sIFJlZ2lzdGVyKioqLyAKKyNkZWZpbmUgSU5DQV9JUF9HUFRVICAgICAgICAgICAgICAgICAgICAgICAgICgweEI4MDAwMzAwKQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKKy8qKipHUFQgQ2xvY2sgQ29udHJvbCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9DTEMgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0dQVFUrIDB4MDAwMCkpCiAjZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfQ0xDX1JNQyAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgOCkKICNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9DTENfRElTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQogI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX0NMQ19ESVNSICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0gICAgICAKLS8qKipHUFQgVGltZXIgMyBDb250cm9sIFJlZ2lzdGVyKioqLyAKKworLyoqKkdQVCBUaW1lciAzIENvbnRyb2wgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDNDT04gICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9HUFRVKyAweDAwMTQpKQogI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1QzQ09OX1QzUkRJUiAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE1KQogI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1QzQ09OX1QzQ0hESVIgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTQpCkBAIC0xMDkwLDggKzEwOTAsOCBAQAogI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1QzQ09OX1QzUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDYpCiAjZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDNDT05fVDNNICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCAzKQogI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1QzQ09OX1QzSSAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKkdQVCBXcml0ZSBIYXJkd2FyZSBNb2RpZmllZCBUaW1lciAzIENvbnRyb2wgUmVnaXN0ZXIgCisKKy8qKipHUFQgV3JpdGUgSGFyZHdhcmUgTW9kaWZpZWQgVGltZXIgMyBDb250cm9sIFJlZ2lzdGVyCiBJZiBzZXQgYW5kIGNsZWFyIGJpdCBhcmUgd3JpdHRlbiBjb25jdXJyZW50bHkgd2l0aCAxLCB0aGUgYXNzb2NpYXRlZCBiaXQgaXMgbm90IGNoYW5nZWQuKioqLwogI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1dIQlQzQ09OICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfR1BUVSsgMHgwMDRDKSkKICNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9XSEJUM0NPTl9TRVRUM0NIRElSICAgICAgICAgICAgICAgICgxIDw8IDE1KQpAQCAtMTEwMCw4ICsxMTAwLDggQEAKICNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9XSEJUM0NPTl9DTFJUM0VER0UgICAgICAgICAgICAgICAgICAoMSA8PCAxMikKICNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9XSEJUM0NPTl9TRVRUM09UTCAgICAgICAgICAgICAgICAgICgxIDw8IDExKQogI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1dIQlQzQ09OX0NMUlQzT1RMICAgICAgICAgICAgICAgICAgKDEgPDwgMTApCi0gICAgICAKLS8qKipHUFQgVGltZXIgMiBDb250cm9sIFJlZ2lzdGVyKioqLyAKKworLyoqKkdQVCBUaW1lciAyIENvbnRyb2wgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDJDT04gICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9HUFRVKyAweDAwMTApKQogI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1QyQ09OX1R4UkRJUiAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE1KQogI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1QyQ09OX1R4Q0hESVIgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTQpCkBAIC0xMTEyLDggKzExMTIsOCBAQAogI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1QyQ09OX1R4UiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDYpCiAjZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDJDT05fVHhNICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCAzKQogI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1QyQ09OX1R4SSAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKkdQVCBUaW1lciA0IENvbnRyb2wgUmVnaXN0ZXIqKiovIAorCisvKioqR1BUIFRpbWVyIDQgQ29udHJvbCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UNENPTiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0dQVFUrIDB4MDAxOCkpCiAjZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDRDT05fVHhSRElSICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTUpCiAjZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDRDT05fVHhDSERJUiAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNCkKQEAgLTExMjQsNyArMTEyNCw3IEBACiAjZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDRDT05fVHhSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNikKICNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UNENPTl9UeE0gKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDMpCiAjZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDRDT05fVHhJICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCisKIC8qKipHUFQgV3JpdGUgSFcgTW9kaWZpZWQgVGltZXIgMiBDb250cm9sIFJlZ2lzdGVyIElmIHNldAogIGFuZCBjbGVhciBiaXQgYXJlIHdyaXR0ZW4gY29uY3VycmVudGx5IHdpdGggMSwgdGhlIGFzc29jaWF0ZWQgYml0IGlzIG5vdCBjaGFuZ2VkLioqKi8KICNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9XSEJUMkNPTiAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0dQVFUrIDB4MDA0OCkpCkBAIC0xMTMyLDcgKzExMzIsNyBAQAogI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1dIQlQyQ09OX0NMUlR4Q0hESVIgICAgICAgICAgICAgICAgKDEgPDwgMTQpCiAjZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfV0hCVDJDT05fU0VUVHhFREdFICAgICAgICAgICAgICAgICAgKDEgPDwgMTMpCiAjZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfV0hCVDJDT05fQ0xSVHhFREdFICAgICAgICAgICAgICAgICAgKDEgPDwgMTIpCi0gICAgICAKKwogLyoqKkdQVCBXcml0ZSBIVyBNb2RpZmllZCBUaW1lciA0IENvbnRyb2wgUmVnaXN0ZXIgSWYgc2V0CiAgYW5kIGNsZWFyIGJpdCBhcmUgd3JpdHRlbiBjb25jdXJyZW50bHkgd2l0aCAxLCB0aGUgYXNzb2NpYXRlZCBiaXQgaXMgbm90IGNoYW5nZWQuKioqLwogI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1dIQlQ0Q09OICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfR1BUVSsgMHgwMDUwKSkKQEAgLTExNDAsMzIgKzExNDAsMzIgQEAKICNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9XSEJUNENPTl9DTFJUeENIRElSICAgICAgICAgICAgICAgICgxIDw8IDE0KQogI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1dIQlQ0Q09OX1NFVFR4RURHRSAgICAgICAgICAgICAgICAgICgxIDw8IDEzKQogI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1dIQlQ0Q09OX0NMUlR4RURHRSAgICAgICAgICAgICAgICAgICgxIDw8IDEyKQotICAgICAgCi0vKioqR1BUIENhcHR1cmUgUmVsb2FkIFJlZ2lzdGVyKioqLyAKKworLyoqKkdQVCBDYXB0dXJlIFJlbG9hZCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9DQVBSRUwgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0dQVFUrIDB4MDAzMCkpCiAjZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfQ0FQUkVMX0NBUFJFTCAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCAxNikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipHUFQgVGltZXIgMiBSZWdpc3RlcioqKi8gCisKKy8qKipHUFQgVGltZXIgMiBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UMiAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0dQVFUrIDB4MDAzNCkpCiAjZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDJfVFZBTCAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDE2KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKkdQVCBUaW1lciAzIFJlZ2lzdGVyKioqLyAKKworLyoqKkdQVCBUaW1lciAzIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1QzICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfR1BUVSsgMHgwMDM4KSkKICNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UM19UVkFMICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMTYpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqR1BUIFRpbWVyIDQgUmVnaXN0ZXIqKiovIAorCisvKioqR1BUIFRpbWVyIDQgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDQgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9HUFRVKyAweDAwM0MpKQogI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1Q0X1RWQUwgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAxNikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipHUFQgVGltZXIgNSBSZWdpc3RlcioqKi8gCisKKy8qKipHUFQgVGltZXIgNSBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UNSAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0dQVFUrIDB4MDA0MCkpCiAjZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDVfVFZBTCAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDE2KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKkdQVCBUaW1lciA2IFJlZ2lzdGVyKioqLyAKKworLyoqKkdQVCBUaW1lciA2IFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1Q2ICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfR1BUVSsgMHgwMDQ0KSkKICNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UNl9UVkFMICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMTYpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqR1BUIFRpbWVyIDYgQ29udHJvbCBSZWdpc3RlcioqKi8gCisKKy8qKipHUFQgVGltZXIgNiBDb250cm9sIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1Q2Q09OICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfR1BUVSsgMHgwMDIwKSkKICNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UNkNPTl9UNlNSICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE1KQogI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1Q2Q09OX1Q2Q0xSICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNCkKQEAgLTExNzUsMTQgKzExNzUsMTQgQEAKICNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UNkNPTl9UNlIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA2KQogI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1Q2Q09OX1Q2TSAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMykKICNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UNkNPTl9UNkkgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKKwogLyoqKkdQVCBXcml0ZSBIVyBNb2RpZmllZCBUaW1lciA2IENvbnRyb2wgUmVnaXN0ZXIgSWYgc2V0CiAgYW5kIGNsZWFyIGJpdCBhcmUgd3JpdHRlbiBjb25jdXJyZW50bHkgd2l0aCAxLCB0aGUgYXNzb2NpYXRlZCBiaXQgaXMgbm90IGNoYW5nZWQuKioqLwogI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1dIQlQ2Q09OICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfR1BUVSsgMHgwMDU0KSkKICNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9XSEJUNkNPTl9TRVRUNk9UTCAgICAgICAgICAgICAgICAgICgxIDw8IDExKQogI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1dIQlQ2Q09OX0NMUlQ2T1RMICAgICAgICAgICAgICAgICAgKDEgPDwgMTApCi0gICAgICAKLS8qKipHUFQgVGltZXIgNSBDb250cm9sIFJlZ2lzdGVyKioqLyAKKworLyoqKkdQVCBUaW1lciA1IENvbnRyb2wgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDVDT04gICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9HUFRVKyAweDAwMUMpKQogI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1Q1Q09OX1Q1U0MgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTUpCiAjZGVmaW5lIElOQ0FfSVBfR1BUVV9HUFRfVDVDT05fVDVDTFIgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE0KQpAQCAtMTE5NCwyNSArMTE5NCwyNSBAQAogI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1Q1Q09OX1Q1VUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKICNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UNUNPTl9UNVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA2KQogI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1Q1Q09OX1Q1TSAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMykKLSNkZWZpbmUgSU5DQV9JUF9HUFRVX0dQVF9UNUNPTl9UNUkgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDApCQkKLSAgICAgICAgIAorI2RlZmluZSBJTkNBX0lQX0dQVFVfR1BUX1Q1Q09OX1Q1SSAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogIE1vZHVsZSAgICAgIDogIElPTSByZWdpc3RlciBhZGRyZXNzIGFuZCBiaXRzICAgICAgICAgICAgICAgICAgICAgICAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotICAgICAgICAgCi0jZGVmaW5lIElOQ0FfSVBfSU9NICAgICAgICAgICAgICAgICAgICAgICAgICAoMHhCRjEwNTAwMCkKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8gICAKIAotICAgICAgCi0vKioqUmVjZWl2ZSBGSUZPKioqLyAKKyNkZWZpbmUgSU5DQV9JUF9JT00gICAgICAgICAgICAgICAgICAgICAgICAgICgweEJGMTA1MDAwKQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKKy8qKipSZWNlaXZlIEZJRk8qKiovCiAjZGVmaW5lIElOQ0FfSVBfSU9NX1JGSUZPICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMDAwKSkKICNkZWZpbmUgSU5DQV9JUF9JT01fUkZJRk9fUlhEICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDgpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqVHJhbnNtaXQgRklGTyoqKi8gCisKKy8qKipUcmFuc21pdCBGSUZPKioqLwogI2RlZmluZSBJTkNBX0lQX0lPTV9YRklGTyAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDAwMCkpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX1hGSUZPX1RYRCAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKkludGVycnVwdCBTdGF0dXMgUmVnaXN0ZXIgSERMQyoqKi8gCisKKy8qKipJbnRlcnJ1cHQgU3RhdHVzIFJlZ2lzdGVyIEhETEMqKiovCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0lTVEFIICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMDgwKSkKICNkZWZpbmUgSU5DQV9JUF9JT01fSVNUQUhfUk1FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKICNkZWZpbmUgSU5DQV9JUF9JT01fSVNUQUhfUlBGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNikKQEAgLTEyMjAsOCArMTIyMCw4IEBACiAjZGVmaW5lIElOQ0FfSVBfSU9NX0lTVEFIX1hQUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDQpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0lTVEFIX1hNUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0lTVEFIX1hEVSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCi0gICAgICAKLS8qKipJbnRlcnJ1cHQgTWFzayBSZWdpc3RlciBIRExDKioqLyAKKworLyoqKkludGVycnVwdCBNYXNrIFJlZ2lzdGVyIEhETEMqKiovCiAjZGVmaW5lIElOQ0FfSVBfSU9NX01BU0tIICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMDgwKSkKICNkZWZpbmUgSU5DQV9JUF9JT01fTUFTS0hfUk1FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKICNkZWZpbmUgSU5DQV9JUF9JT01fTUFTS0hfUlBGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNikKQEAgLTEyMjksMjMgKzEyMjksMjMgQEAKICNkZWZpbmUgSU5DQV9JUF9JT01fTUFTS0hfWFBSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNCkKICNkZWZpbmUgSU5DQV9JUF9JT01fTUFTS0hfWE1SICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMykKICNkZWZpbmUgSU5DQV9JUF9JT01fTUFTS0hfWERVICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKLSAgICAgIAotLyoqKlN0YXR1cyBSZWdpc3RlcioqKi8gCisKKy8qKipTdGF0dXMgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfSU9NX1NUQVIgICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMDg0KSkKICNkZWZpbmUgSU5DQV9JUF9JT01fU1RBUl9YRE9WICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX1NUQVJfWEZXICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNikKICNkZWZpbmUgSU5DQV9JUF9JT01fU1RBUl9SQUNJICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX1NUQVJfWEFDSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQotICAgICAgCi0vKioqQ29tbWFuZCBSZWdpc3RlcioqKi8gCisKKy8qKipDb21tYW5kIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0lPTV9DTURSICAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDA4NCkpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0NNRFJfUk1DICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKICNkZWZpbmUgSU5DQV9JUF9JT01fQ01EUl9SUkVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDYpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0NNRFJfWFRGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMykKICNkZWZpbmUgSU5DQV9JUF9JT01fQ01EUl9YTUUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQogI2RlZmluZSBJTkNBX0lQX0lPTV9DTURSX1hSRVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKLSAgICAgIAotLyoqKk1vZGUgUmVnaXN0ZXIqKiovIAorCisvKioqTW9kZSBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9JT01fTU9ERUggICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSU9NKyAweDAwODgpKQogI2RlZmluZSBJTkNBX0lQX0lPTV9NT0RFSF9NRFMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX01PREVIX01EUzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNikKQEAgLTEyNTQsOCArMTI1NCw4IEBACiAjZGVmaW5lIElOQ0FfSVBfSU9NX01PREVIX0RJTTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKICNkZWZpbmUgSU5DQV9JUF9JT01fTU9ERUhfRElNMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQogI2RlZmluZSBJTkNBX0lQX0lPTV9NT0RFSF9ESU0wICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0gICAgICAKLS8qKipFeHRlbmRlZCBNb2RlIFJlZ2lzdGVyKioqLyAKKworLyoqKkV4dGVuZGVkIE1vZGUgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0VYTVIgICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMDhDKSkKICNkZWZpbmUgSU5DQV9JUF9JT01fRVhNUl9YRkJTICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0VYTVJfUkZCUyAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCA1KQpAQCAtMTI2MywzNiArMTI2MywzNiBAQAogI2RlZmluZSBJTkNBX0lQX0lPTV9FWE1SX1hDUkMgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMykKICNkZWZpbmUgSU5DQV9JUF9JT01fRVhNUl9SQ1JDICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0VYTVJfSVRGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKLSAgICAgIAotLyoqKlNBUEkxIFJlZ2lzdGVyKioqLyAKKworLyoqKlNBUEkxIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0lPTV9TQVAxICAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDA5NCkpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX1NBUDFfU0FQSTEgKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDYpIC0gMSkgJiAodmFsdWUpKSA8PCAyKQogI2RlZmluZSBJTkNBX0lQX0lPTV9TQVAxX01IQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0gICAgICAKLS8qKipSZWNlaXZlIEZyYW1lIEJ5dGUgQ291bnQgTG93KioqLyAKKworLyoqKlJlY2VpdmUgRnJhbWUgQnl0ZSBDb3VudCBMb3cqKiovCiAjZGVmaW5lIElOQ0FfSVBfSU9NX1JCQ0wgICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMDk4KSkKICNkZWZpbmUgSU5DQV9JUF9JT01fUkJDTF9SQkModmFsdWUpICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAotLyoqKlNBUEkyIFJlZ2lzdGVyKioqLyAKKworCisvKioqU0FQSTIgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfSU9NX1NBUDIgICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMDk4KSkKICNkZWZpbmUgSU5DQV9JUF9JT01fU0FQMl9TQVBJMiAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgNikgLSAxKSAmICh2YWx1ZSkpIDw8IDIpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX1NBUDJfTUxBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKLSAgICAgIAotLyoqKlJlY2VpdmUgRnJhbWUgQnl0ZSBDb3VudCBIaWdoKioqLyAKKworLyoqKlJlY2VpdmUgRnJhbWUgQnl0ZSBDb3VudCBIaWdoKioqLwogI2RlZmluZSBJTkNBX0lQX0lPTV9SQkNIICAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDA5QykpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX1JCQ0hfT1YgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA0KQogI2RlZmluZSBJTkNBX0lQX0lPTV9SQkNIX1JCQzExICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzKQogI2RlZmluZSBJTkNBX0lQX0lPTV9SQkNIX1JCQzEwICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQogI2RlZmluZSBJTkNBX0lQX0lPTV9SQkNIX1JCQzkgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKICNkZWZpbmUgSU5DQV9JUF9JT01fUkJDSF9SQkM4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0gICAgICAKLS8qKipURUkxIFJlZ2lzdGVyIDEqKiovIAorCisvKioqVEVJMSBSZWdpc3RlciAxKioqLwogI2RlZmluZSBJTkNBX0lQX0lPTV9URUkxICAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDA5QykpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX1RFSTFfVEVJMSAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDcpIC0gMSkgJiAodmFsdWUpKSA8PCAxKQogI2RlZmluZSBJTkNBX0lQX0lPTV9URUkxX0VBICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKLSAgICAgIAotLyoqKlJlY2VpdmUgU3RhdHVzIFJlZ2lzdGVyKioqLyAKKworLyoqKlJlY2VpdmUgU3RhdHVzIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0lPTV9SU1RBICAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDBBMCkpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX1JTVEFfVkZSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKICNkZWZpbmUgSU5DQV9JUF9JT01fUlNUQV9SRE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA2KQpAQCAtMTMwMiw5OSArMTMwMiw5OSBAQAogI2RlZmluZSBJTkNBX0lQX0lPTV9SU1RBX1NBMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX1JTVEFfVEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQogI2RlZmluZSBJTkNBX0lQX0lPTV9SU1RBX0NSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKLSAgICAgIAotLyoqKlRFSTIgUmVnaXN0ZXIqKiovIAorCisvKioqVEVJMiBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9JT01fVEVJMiAgICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSU9NKyAweDAwQTApKQogI2RlZmluZSBJTkNBX0lQX0lPTV9URUkyX1RFSTIgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCA3KSAtIDEpICYgKHZhbHVlKSkgPDwgMSkKICNkZWZpbmUgSU5DQV9JUF9JT01fVEVJMl9FQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0gICAgICAKLS8qKipUZXN0IE1vZGUgUmVnaXN0ZXIgSERMQyoqKi8gCisKKy8qKipUZXN0IE1vZGUgUmVnaXN0ZXIgSERMQyoqKi8KICNkZWZpbmUgSU5DQV9JUF9JT01fVE1IICAgICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSU9NKyAweDAwQTQpKQogI2RlZmluZSBJTkNBX0lQX0lPTV9UTUhfVExQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKLSAgICAgIAotLyoqKkNvbW1hbmQvSW5kaWNhdGlvbiBSZWNlaXZlIDAqKiovIAorCisvKioqQ29tbWFuZC9JbmRpY2F0aW9uIFJlY2VpdmUgMCoqKi8KICNkZWZpbmUgSU5DQV9JUF9JT01fQ0lSMCAgICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSU9NKyAweDAwQjgpKQogI2RlZmluZSBJTkNBX0lQX0lPTV9DSVIwX0NPRFIwICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgNCkKICNkZWZpbmUgSU5DQV9JUF9JT01fQ0lSMF9DSUMwICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0NJUjBfQ0lDMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQogI2RlZmluZSBJTkNBX0lQX0lPTV9DSVIwX1NHICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKICNkZWZpbmUgSU5DQV9JUF9JT01fQ0lSMF9CQVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQotICAgICAgCi0vKioqQ29tbWFuZC9JbmRpY2F0aW9uIFRyYW5zbWl0IDAqKiovIAorCisvKioqQ29tbWFuZC9JbmRpY2F0aW9uIFRyYW5zbWl0IDAqKiovCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0NJWDAgICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMEI4KSkKICNkZWZpbmUgSU5DQV9JUF9JT01fQ0lYMF9DT0RYMCAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDQpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0NJWDBfVEJBMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzKQogI2RlZmluZSBJTkNBX0lQX0lPTV9DSVgwX1RCQTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKICNkZWZpbmUgSU5DQV9JUF9JT01fQ0lYMF9UQkEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0NJWDBfQkFDICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKLSAgICAgIAotLyoqKkNvbW1hbmQvSW5kaWNhdGlvbiBSZWNlaXZlIDEqKiovIAorCisvKioqQ29tbWFuZC9JbmRpY2F0aW9uIFJlY2VpdmUgMSoqKi8KICNkZWZpbmUgSU5DQV9JUF9JT01fQ0lSMSAgICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSU9NKyAweDAwQkMpKQogI2RlZmluZSBJTkNBX0lQX0lPTV9DSVIxX0NPRFIxICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCA2KSAtIDEpICYgKHZhbHVlKSkgPDwgMikKLSAgICAgIAotLyoqKkNvbW1hbmQvSW5kaWNhdGlvbiBUcmFuc21pdCAxKioqLyAKKworLyoqKkNvbW1hbmQvSW5kaWNhdGlvbiBUcmFuc21pdCAxKioqLwogI2RlZmluZSBJTkNBX0lQX0lPTV9DSVgxICAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDBCQykpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0NJWDFfQ09EWDEgKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDYpIC0gMSkgJiAodmFsdWUpKSA8PCAyKQogI2RlZmluZSBJTkNBX0lQX0lPTV9DSVgxX0NJQ1cgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKICNkZWZpbmUgSU5DQV9JUF9JT01fQ0lYMV9DSTFFICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0gICAgICAKLS8qKipDb250cm9sbGVyIERhdGEgQWNjZXNzIFJlZy4gKENIMTApKioqLyAKKworLyoqKkNvbnRyb2xsZXIgRGF0YSBBY2Nlc3MgUmVnLiAoQ0gxMCkqKiovCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0NEQTEwICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMTAwKSkKICNkZWZpbmUgSU5DQV9JUF9JT01fQ0RBMTBfQ0RBICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDgpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqQ29udHJvbGxlciBEYXRhIEFjY2VzcyBSZWcuIChDSDExKSoqKi8gCisKKy8qKipDb250cm9sbGVyIERhdGEgQWNjZXNzIFJlZy4gKENIMTEpKioqLwogI2RlZmluZSBJTkNBX0lQX0lPTV9DREExMSAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDEwNCkpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0NEQTExX0NEQSAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKkNvbnRyb2xsZXIgRGF0YSBBY2Nlc3MgUmVnLiAoQ0gyMCkqKiovIAorCisvKioqQ29udHJvbGxlciBEYXRhIEFjY2VzcyBSZWcuIChDSDIwKSoqKi8KICNkZWZpbmUgSU5DQV9JUF9JT01fQ0RBMjAgICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSU9NKyAweDAxMDgpKQogI2RlZmluZSBJTkNBX0lQX0lPTV9DREEyMF9DREEgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipDb250cm9sbGVyIERhdGEgQWNjZXNzIFJlZy4gKENIMjEpKioqLyAKKworLyoqKkNvbnRyb2xsZXIgRGF0YSBBY2Nlc3MgUmVnLiAoQ0gyMSkqKiovCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0NEQTIxICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMTBDKSkKICNkZWZpbmUgSU5DQV9JUF9JT01fQ0RBMjFfQ0RBICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDgpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqVGltZSBTbG90IGFuZCBEYXRhIFBvcnQgU2VsLiAoQ0gxMCkqKiovIAorCisvKioqVGltZSBTbG90IGFuZCBEYXRhIFBvcnQgU2VsLiAoQ0gxMCkqKiovCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0NEQV9UU0RQMTAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMTEwKSkKICNkZWZpbmUgSU5DQV9JUF9JT01fQ0RBX1RTRFAxMF9EUFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA3KQogI2RlZmluZSBJTkNBX0lQX0lPTV9DREFfVFNEUDEwX1RTUyAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKlRpbWUgU2xvdCBhbmQgRGF0YSBQb3J0IFNlbC4gKENIMTEpKioqLyAKKworLyoqKlRpbWUgU2xvdCBhbmQgRGF0YSBQb3J0IFNlbC4gKENIMTEpKioqLwogI2RlZmluZSBJTkNBX0lQX0lPTV9DREFfVFNEUDExICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDExNCkpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0NEQV9UU0RQMTFfRFBTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKICNkZWZpbmUgSU5DQV9JUF9JT01fQ0RBX1RTRFAxMV9UU1MgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipUaW1lIFNsb3QgYW5kIERhdGEgUG9ydCBTZWwuIChDSDIwKSoqKi8gCisKKy8qKipUaW1lIFNsb3QgYW5kIERhdGEgUG9ydCBTZWwuIChDSDIwKSoqKi8KICNkZWZpbmUgSU5DQV9JUF9JT01fQ0RBX1RTRFAyMCAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSU9NKyAweDAxMTgpKQogI2RlZmluZSBJTkNBX0lQX0lPTV9DREFfVFNEUDIwX0RQUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0NEQV9UU0RQMjBfVFNTICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDQpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqVGltZSBTbG90IGFuZCBEYXRhIFBvcnQgU2VsLiAoQ0gyMSkqKiovIAorCisvKioqVGltZSBTbG90IGFuZCBEYXRhIFBvcnQgU2VsLiAoQ0gyMSkqKiovCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0NEQV9UU0RQMjEgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMTFDKSkKICNkZWZpbmUgSU5DQV9JUF9JT01fQ0RBX1RTRFAyMV9EUFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA3KQogI2RlZmluZSBJTkNBX0lQX0lPTV9DREFfVFNEUDIxX1RTUyAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKlRpbWUgU2xvdCBhbmQgRGF0YSBQb3J0IFNlbC4gKENIMTApKioqLyAKKworLyoqKlRpbWUgU2xvdCBhbmQgRGF0YSBQb3J0IFNlbC4gKENIMTApKioqLwogI2RlZmluZSBJTkNBX0lQX0lPTV9DT19UU0RQMTAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDEyMCkpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0NPX1RTRFAxMF9EUFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA3KQogI2RlZmluZSBJTkNBX0lQX0lPTV9DT19UU0RQMTBfVFNTICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDQpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqVGltZSBTbG90IGFuZCBEYXRhIFBvcnQgU2VsLiAoQ0gxMSkqKiovIAorCisvKioqVGltZSBTbG90IGFuZCBEYXRhIFBvcnQgU2VsLiAoQ0gxMSkqKiovCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0NPX1RTRFAxMSAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMTI0KSkKICNkZWZpbmUgSU5DQV9JUF9JT01fQ09fVFNEUDExX0RQUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0NPX1RTRFAxMV9UU1MgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipUaW1lIFNsb3QgYW5kIERhdGEgUG9ydCBTZWwuIChDSDIwKSoqKi8gCisKKy8qKipUaW1lIFNsb3QgYW5kIERhdGEgUG9ydCBTZWwuIChDSDIwKSoqKi8KICNkZWZpbmUgSU5DQV9JUF9JT01fQ09fVFNEUDIwICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSU9NKyAweDAxMjgpKQogI2RlZmluZSBJTkNBX0lQX0lPTV9DT19UU0RQMjBfRFBTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKICNkZWZpbmUgSU5DQV9JUF9JT01fQ09fVFNEUDIwX1RTUyAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA0KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKlRpbWUgU2xvdCBhbmQgRGF0YSBQb3J0IFNlbC4gKENIMjEpKioqLyAKKworLyoqKlRpbWUgU2xvdCBhbmQgRGF0YSBQb3J0IFNlbC4gKENIMjEpKioqLwogI2RlZmluZSBJTkNBX0lQX0lPTV9DT19UU0RQMjEgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDEyQykpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0NPX1RTRFAyMV9EUFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA3KQogI2RlZmluZSBJTkNBX0lQX0lPTV9DT19UU0RQMjFfVFNTICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDQpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqQ3RybC4gUmVnLiBDb250ci4gRGF0YSBBY2Nlc3MgQ0gxeCoqKi8gCisKKy8qKipDdHJsLiBSZWcuIENvbnRyLiBEYXRhIEFjY2VzcyBDSDF4KioqLwogI2RlZmluZSBJTkNBX0lQX0lPTV9DREExX0NSICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDEzOCkpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0NEQTFfQ1JfRU5fVEJNICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNSkKICNkZWZpbmUgSU5DQV9JUF9JT01fQ0RBMV9DUl9FTl9JMSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNCkKQEAgLTE0MDIsOCArMTQwMiw4IEBACiAjZGVmaW5lIElOQ0FfSVBfSU9NX0NEQTFfQ1JfRU5fTzEgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0NEQTFfQ1JfRU5fTzAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0NEQTFfQ1JfU1dBUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQotICAgICAgCi0vKioqQ3RybC4gUmVnLiBDb250ci4gRGF0YSBBY2Nlc3MgQ0gxeCoqKi8gCisKKy8qKipDdHJsLiBSZWcuIENvbnRyLiBEYXRhIEFjY2VzcyBDSDF4KioqLwogI2RlZmluZSBJTkNBX0lQX0lPTV9DREEyX0NSICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDEzQykpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0NEQTJfQ1JfRU5fVEJNICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNSkKICNkZWZpbmUgSU5DQV9JUF9JT01fQ0RBMl9DUl9FTl9JMSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNCkKQEAgLTE0MTEsMzcgKzE0MTEsMzcgQEAKICNkZWZpbmUgSU5DQV9JUF9JT01fQ0RBMl9DUl9FTl9PMSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKICNkZWZpbmUgSU5DQV9JUF9JT01fQ0RBMl9DUl9FTl9PMCAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKICNkZWZpbmUgSU5DQV9JUF9JT01fQ0RBMl9DUl9TV0FQICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0gICAgICAKLS8qKipDb250cm9sIFJlZ2lzdGVyIEItQ2hhbm5lbCBEYXRhKioqLyAKKworLyoqKkNvbnRyb2wgUmVnaXN0ZXIgQi1DaGFubmVsIERhdGEqKiovCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0JDSEFfQ1IgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMTQ0KSkKICNkZWZpbmUgSU5DQV9JUF9JT01fQkNIQV9DUl9FTl9CQzIgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA0KQogI2RlZmluZSBJTkNBX0lQX0lPTV9CQ0hBX0NSX0VOX0JDMSAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCi0gICAgICAKLS8qKipDb250cm9sIFJlZ2lzdGVyIEItQ2hhbm5lbCBEYXRhKioqLyAKKworLyoqKkNvbnRyb2wgUmVnaXN0ZXIgQi1DaGFubmVsIERhdGEqKiovCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0JDSEJfQ1IgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMTQ4KSkKICNkZWZpbmUgSU5DQV9JUF9JT01fQkNIQl9DUl9FTl9CQzIgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA0KQogI2RlZmluZSBJTkNBX0lQX0lPTV9CQ0hCX0NSX0VOX0JDMSAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCi0gICAgICAKLS8qKipDb250cm9sIFJlZy4gZm9yIEhETEMgYW5kIENJMSBEYXRhKioqLyAKKworLyoqKkNvbnRyb2wgUmVnLiBmb3IgSERMQyBhbmQgQ0kxIERhdGEqKiovCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0RDSV9DUiAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMTRDKSkKICNkZWZpbmUgSU5DQV9JUF9JT01fRENJX0NSX0RQU19DSTEgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKICNkZWZpbmUgSU5DQV9JUF9JT01fRENJX0NSX0VOX0NJMSAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDYpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0RDSV9DUl9FTl9EICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDUpCi0gICAgICAKLS8qKipDb250cm9sIFJlZy4gZm9yIEhETEMgYW5kIENJMSBEYXRhKioqLyAKKworLyoqKkNvbnRyb2wgUmVnLiBmb3IgSERMQyBhbmQgQ0kxIERhdGEqKiovCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0RDSUNfQ1IgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMTRDKSkKICNkZWZpbmUgSU5DQV9JUF9JT01fRENJQ19DUl9EUFNfQ0kwICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0RDSUNfQ1JfRU5fQ0kwICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNikKICNkZWZpbmUgSU5DQV9JUF9JT01fRENJQ19DUl9EUFNfRCAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNSkKLSAgICAgIAotLyoqKkNvbnRyb2wgUmVnLiBTZXJpYWwgRGF0YSBTdHJvYmUgeCoqKi8gCisKKy8qKipDb250cm9sIFJlZy4gU2VyaWFsIERhdGEgU3Ryb2JlIHgqKiovCiAjZGVmaW5lIElOQ0FfSVBfSU9NX1NEU19DUiAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMTU0KSkKICNkZWZpbmUgSU5DQV9JUF9JT01fU0RTX0NSX0VOU19UU1MgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKICNkZWZpbmUgSU5DQV9JUF9JT01fU0RTX0NSX0VOU19UU1NfMSAgICAgICAgICAgICAgICAgICgxIDw8IDYpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX1NEU19DUl9FTlNfVFNTXzMgICAgICAgICAgICAgICAgICAoMSA8PCA1KQogI2RlZmluZSBJTkNBX0lQX0lPTV9TRFNfQ1JfVFNTICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDQpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqQ29udHJvbCBSZWdpc3RlciBJT00gRGF0YSoqKi8gCisKKy8qKipDb250cm9sIFJlZ2lzdGVyIElPTSBEYXRhKioqLwogI2RlZmluZSBJTkNBX0lQX0lPTV9JT01fQ1IgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JT00rIDB4MDE1QykpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX0lPTV9DUl9TUFUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA3KQogI2RlZmluZSBJTkNBX0lQX0lPTV9JT01fQ1JfQ0lfQ1MgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDUpCkBAIC0xNDUwLDggKzE0NTAsOCBAQAogI2RlZmluZSBJTkNBX0lQX0lPTV9JT01fQ1JfQ0xLTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQogI2RlZmluZSBJTkNBX0lQX0lPTV9JT01fQ1JfUmVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKICNkZWZpbmUgSU5DQV9JUF9JT01fSU9NX0NSX0RJU19JT00gICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKLSAgICAgIAotLyoqKlN5bmNocm9ub3VzIFRyYW5zZmVyIEludGVycnVwdCoqKi8gCisKKy8qKipTeW5jaHJvbm91cyBUcmFuc2ZlciBJbnRlcnJ1cHQqKiovCiAjZGVmaW5lIElOQ0FfSVBfSU9NX1NUSSAgICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMTYwKSkKICNkZWZpbmUgSU5DQV9JUF9JT01fU1RJX1NUT1YyMSAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDcpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX1NUSV9TVE9WMjAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA2KQpAQCAtMTQ2MSwxNSArMTQ2MSwxNSBAQAogI2RlZmluZSBJTkNBX0lQX0lPTV9TVElfU1RJMjAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX1NUSV9TVEkxMSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKICNkZWZpbmUgSU5DQV9JUF9JT01fU1RJX1NUSTEwICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQotICAgICAgCi0vKioqQWNrbm93bGVkZ2UgU3luY2hyb25vdXMgVHJhbnNmZXIgSW50ZXJydXB0KioqLyAKKworLyoqKkFja25vd2xlZGdlIFN5bmNocm9ub3VzIFRyYW5zZmVyIEludGVycnVwdCoqKi8KICNkZWZpbmUgSU5DQV9JUF9JT01fQVNUSSAgICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSU9NKyAweDAxNjApKQogI2RlZmluZSBJTkNBX0lQX0lPTV9BU1RJX0FDSzIxICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzKQogI2RlZmluZSBJTkNBX0lQX0lPTV9BU1RJX0FDSzIwICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQogI2RlZmluZSBJTkNBX0lQX0lPTV9BU1RJX0FDSzExICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQogI2RlZmluZSBJTkNBX0lQX0lPTV9BU1RJX0FDSzEwICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQotICAgICAgCi0vKioqTWFzayBTeW5jaHJvbm91cyBUcmFuc2ZlciBJbnRlcnJ1cHQqKiovIAorCisvKioqTWFzayBTeW5jaHJvbm91cyBUcmFuc2ZlciBJbnRlcnJ1cHQqKiovCiAjZGVmaW5lIElOQ0FfSVBfSU9NX01TVEkgICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMTY0KSkKICNkZWZpbmUgSU5DQV9JUF9JT01fTVNUSV9TVE9WMjEgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA3KQogI2RlZmluZSBJTkNBX0lQX0lPTV9NU1RJX1NUT1YyMCAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDYpCkBAIC0xNDc5LDM2ICsxNDc5LDM2IEBACiAjZGVmaW5lIElOQ0FfSVBfSU9NX01TVElfU1RJMjAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX01TVElfU1RJMTEgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX01TVElfU1RJMTAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0gICAgICAKLS8qKipDb25maWd1cmF0aW9uIFJlZ2lzdGVyIGZvciBTZXJpYWwgRGF0YSBTdHJvYmVzKioqLyAKKworLyoqKkNvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgZm9yIFNlcmlhbCBEYXRhIFN0cm9iZXMqKiovCiAjZGVmaW5lIElOQ0FfSVBfSU9NX1NEU19DT05GICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSU9NKyAweDAxNjgpKQogI2RlZmluZSBJTkNBX0lQX0lPTV9TRFNfQ09ORl9TRFNfQkNMICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0gICAgICAKLS8qKipNb25pdG9yaW5nIENEQSBCaXRzKioqLyAKKworLyoqKk1vbml0b3JpbmcgQ0RBIEJpdHMqKiovCiAjZGVmaW5lIElOQ0FfSVBfSU9NX01DREEgICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lPTSsgMHgwMTZDKSkKICNkZWZpbmUgSU5DQV9JUF9JT01fTUNEQV9NQ0RBMjEgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDYpCiAjZGVmaW5lIElOQ0FfSVBfSU9NX01DREFfTUNEQTIwICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCA0KQogI2RlZmluZSBJTkNBX0lQX0lPTV9NQ0RBX01DREExMSAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMikKLSNkZWZpbmUgSU5DQV9JUF9JT01fTUNEQV9NQ0RBMTAgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCQkKLSAgICAgICAgIAorI2RlZmluZSBJTkNBX0lQX0lPTV9NQ0RBX01DREExMCAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogIE1vZHVsZSAgICAgIDogIEFTQyByZWdpc3RlciBhZGRyZXNzIGFuZCBiaXRzICAgICAgICAgICAgICAgICAgICAgICAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotICAgICAgICAgCisKICNpZiBkZWZpbmVkKENPTkZJR19JTkNBX0lQKQogI2RlZmluZSBJTkNBX0lQX0FTQyAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4QjgwMDA0MDApCiAjZWxpZiBkZWZpbmVkKENPTkZJR19QVVJQTEUpCiAjZGVmaW5lIElOQ0FfSVBfQVNDICAgICAgICAgICAgICAgICAgICAgICAgICAoMHhCRTUwMDAwMCkKICNlbmRpZgogCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovICAgCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKLSAgICAgIAotLyoqKkFTQyBQb3J0IElucHV0IFNlbGVjdCBSZWdpc3RlcioqKi8gCisKKy8qKipBU0MgUG9ydCBJbnB1dCBTZWxlY3QgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19QSVNFTCAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FTQysgMHgwMDA0KSkKICNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX1BJU0VMX1JJUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0gICAgICAKLS8qKipBU0MgQ29udHJvbCBSZWdpc3RlcioqKi8gCisKKy8qKipBU0MgQ29udHJvbCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0NPTiAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQVNDKyAweDAwMTApKQogI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfQ09OX1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNSkKICNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0NPTl9MQiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE0KQpAQCAtMTUyNCw4ICsxNTI0LDggQEAKICNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0NPTl9SRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA0KQogI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfQ09OX1NUUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCiAjZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19DT05fTSAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKkFTQyBXcml0ZSBIYXJkd2FyZSBNb2RpZmllZCBDb250cm9sIFJlZ2lzdGVyKioqLyAKKworLyoqKkFTQyBXcml0ZSBIYXJkd2FyZSBNb2RpZmllZCBDb250cm9sIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfV0hCQ09OICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9BU0MrIDB4MDA1MCkpCiAjZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19XSEJDT05fU0VUT0UgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEzKQogI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfV0hCQ09OX1NFVEZFICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxMikKQEAgLTE1MzUsMjkgKzE1MzUsMjkgQEAKICNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX1dIQkNPTl9DTFJQRSAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOCkKICNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX1dIQkNPTl9TRVRSRU4gICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA1KQogI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfV0hCQ09OX0NMUlJFTiAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDQpCi0gICAgICAKLS8qKipBU0MgQmF1ZHJhdGUgVGltZXIvUmVsb2FkIFJlZ2lzdGVyKioqLyAKKworLyoqKkFTQyBCYXVkcmF0ZSBUaW1lci9SZWxvYWQgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19CVFIgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FTQysgMHgwMDE0KSkKICNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0JUUl9CUl9WQUxVRSAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCAxMykgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipBU0MgRnJhY3Rpb25hbCBEaXZpZGVyIFJlZ2lzdGVyKioqLyAKKworLyoqKkFTQyBGcmFjdGlvbmFsIERpdmlkZXIgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19GRFYgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FTQysgMHgwMDE4KSkKICNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0ZEVl9GRF9WQUxVRSAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCA5KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKkFTQyBJckRBIFB1bHNlIE1vZGUvV2lkdGggUmVnaXN0ZXIqKiovIAorCisvKioqQVNDIElyREEgUHVsc2UgTW9kZS9XaWR0aCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX1BNVyAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQVNDKyAweDAwMUMpKQogI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfUE1XX0lSUFcgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOCkKICNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX1BNV19QV19WQUxVRSAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKkFTQyBUcmFuc21pdCBCdWZmZXIgUmVnaXN0ZXIqKiovIAorCisvKioqQVNDIFRyYW5zbWl0IEJ1ZmZlciBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX1RCVUYgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9BU0MrIDB4MDAyMCkpCiAjZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19UQlVGX1REX1ZBTFVFICh2YWx1ZSkgICAgICAgICAgKCgoKCAxIDw8IDkpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqQVNDIFJlY2VpdmUgQnVmZmVyIFJlZ2lzdGVyKioqLyAKKworLyoqKkFTQyBSZWNlaXZlIEJ1ZmZlciBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX1JCVUYgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9BU0MrIDB4MDAyNCkpCiAjZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19SQlVGX1JEX1ZBTFVFICh2YWx1ZSkgICAgICAgICAgKCgoKCAxIDw8IDkpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqQVNDIEF1dG9iYXVkIENvbnRyb2wgUmVnaXN0ZXIqKiovIAorCisvKioqQVNDIEF1dG9iYXVkIENvbnRyb2wgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19BQkNPTiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FTQysgMHgwMDMwKSkKICNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0FCQ09OX1JYSU5WICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxMSkKICNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0FCQ09OX1RYSU5WICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxMCkKQEAgLTE1NjcsNDAgKzE1NjcsNDAgQEAKICNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0FCQ09OX0FCU1RFTiAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiAjZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19BQkNPTl9BVVJFTiAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKICNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0FCQ09OX0FCRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKLSAgICAgIAotLyoqKlJlY2VpdmUgRklGTyBDb250cm9sIFJlZ2lzdGVyKioqLyAKKworLyoqKlJlY2VpdmUgRklGTyBDb250cm9sIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0FTQ19SWEZDT04gICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9BU0MrIDB4MDA0MCkpCiAjZGVmaW5lIElOQ0FfSVBfQVNDX1JYRkNPTl9SWEZJVEwgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgNikgLSAxKSAmICh2YWx1ZSkpIDw8IDgpCiAjZGVmaW5lIElOQ0FfSVBfQVNDX1JYRkNPTl9SWFRNRU4gICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQogI2RlZmluZSBJTkNBX0lQX0FTQ19SWEZDT05fUlhGRkxVICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKICNkZWZpbmUgSU5DQV9JUF9BU0NfUlhGQ09OX1JYRkVOICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQotICAgICAgCi0vKioqVHJhbnNtaXQgRklGTyBDb250cm9sIFJlZ2lzdGVyKioqLyAKKworLyoqKlRyYW5zbWl0IEZJRk8gQ29udHJvbCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9BU0NfVFhGQ09OICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQVNDKyAweDAwNDQpKQogI2RlZmluZSBJTkNBX0lQX0FTQ19UWEZDT05fVFhGSVRMICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDYpIC0gMSkgJiAodmFsdWUpKSA8PCA4KQogI2RlZmluZSBJTkNBX0lQX0FTQ19UWEZDT05fVFhUTUVOICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKICNkZWZpbmUgSU5DQV9JUF9BU0NfVFhGQ09OX1RYRkZMVSAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiAjZGVmaW5lIElOQ0FfSVBfQVNDX1RYRkNPTl9UWEZFTiAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKLSAgICAgIAotLyoqKkZJRk8gU3RhdHVzIFJlZ2lzdGVyKioqLyAKKworLyoqKkZJRk8gU3RhdHVzIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0FTQ19GU1RBVCAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9BU0MrIDB4MDA0OCkpCiAjZGVmaW5lIElOQ0FfSVBfQVNDX0ZTVEFUX1RYRkZMICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCA2KSAtIDEpICYgKHZhbHVlKSkgPDwgOCkKICNkZWZpbmUgSU5DQV9JUF9BU0NfRlNUQVRfUlhGRkwgKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDYpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqQVNDIFdyaXRlIEhXIE1vZGlmaWVkIEF1dG9iYXVkIENvbnRyb2wgUmVnaXN0ZXIqKiovIAorCisvKioqQVNDIFdyaXRlIEhXIE1vZGlmaWVkIEF1dG9iYXVkIENvbnRyb2wgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19XSEJBQkNPTiAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FTQysgMHgwMDU0KSkKICNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX1dIQkFCQ09OX1NFVEFCRU4gICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKICNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX1dIQkFCQ09OX0NMUkFCRU4gICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKLSAgICAgIAotLyoqKkFTQyBBdXRvYmF1ZCBTdGF0dXMgUmVnaXN0ZXIqKiovIAorCisvKioqQVNDIEF1dG9iYXVkIFN0YXR1cyBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0FCU1RBVCAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQVNDKyAweDAwMzQpKQogI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfQUJTVEFUX0RFVFdBSVQgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNCkKICNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0FCU1RBVF9TQ0NERVQgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzKQogI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfQUJTVEFUX1NDU0RFVCAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiAjZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19BQlNUQVRfRkNDREVUICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKICNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0FCU1RBVF9GQ1NERVQgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQotICAgICAgCi0vKioqQVNDIFdyaXRlIEhXIE1vZGlmaWVkIEF1dG9iYXVkIFN0YXR1cyBSZWdpc3RlcioqKi8gCisKKy8qKipBU0MgV3JpdGUgSFcgTW9kaWZpZWQgQXV0b2JhdWQgU3RhdHVzIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfV0hCQUJTVEFUICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQVNDKyAweDAwNTgpKQogI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfV0hCQUJTVEFUX1NFVERFVFdBSVQgICAgICAgICAgICAgICAgKDEgPDwgOSkKICNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX1dIQkFCU1RBVF9DTFJERVRXQUlUICAgICAgICAgICAgICAgICgxIDw8IDgpCkBAIC0xNjEyLDg2ICsxNjEyLDg2IEBACiAjZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19XSEJBQlNUQVRfQ0xSRkNDREVUICAgICAgICAgICAgICAgICAgKDEgPDwgMikKICNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX1dIQkFCU1RBVF9TRVRGQ1NERVQgICAgICAgICAgICAgICAgICAoMSA8PCAxKQogI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfV0hCQUJTVEFUX0NMUkZDU0RFVCAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0gICAgICAKLS8qKipBU0MgQ2xvY2sgQ29udHJvbCBSZWdpc3RlcioqKi8gCisKKy8qKipBU0MgQ2xvY2sgQ29udHJvbCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0NMQyAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQVNDKyAweDAwMDApKQogI2RlZmluZSBJTkNBX0lQX0FTQ19BU0NfQ0xDX1JNQyAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgOCkKICNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0NMQ19ESVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCi0jZGVmaW5lIElOQ0FfSVBfQVNDX0FTQ19DTENfRElTUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQkJCi0gICAgICAgICAKKyNkZWZpbmUgSU5DQV9JUF9BU0NfQVNDX0NMQ19ESVNSICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qICBNb2R1bGUgICAgICA6ICBETUEgcmVnaXN0ZXIgYWRkcmVzcyBhbmQgYml0cyAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSAgICAgICAgIAotI2RlZmluZSBJTkNBX0lQX0RNQSAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4QkYxMDgwMDApCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovICAgCiAKLSAgICAgIAotLyoqKkRNQSBSWCBDaGFubmVsIDAgQ29tbWFuZCBSZWdpc3RlcioqKi8gCisjZGVmaW5lIElOQ0FfSVBfRE1BICAgICAgICAgICAgICAgICAgICAgICAgICAoMHhCRjEwODAwMCkKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCisvKioqRE1BIFJYIENoYW5uZWwgMCBDb21tYW5kIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfUlhDQ1IwICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9ETUErIDB4MDgwMCkpCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWENDUjBfTEJFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzEpCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWENDUjBfSFBFTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMCkKICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1JYQ0NSMF9JTklUICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWENDUjBfT0ZGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1JYQ0NSMF9IUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0gICAgICAKLS8qKipETUEgUlggQ2hhbm5lbCAxIENvbW1hbmQgUmVnaXN0ZXIqKiovIAorCisvKioqRE1BIFJYIENoYW5uZWwgMSBDb21tYW5kIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfUlhDQ1IxICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9ETUErIDB4MDgwNCkpCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWENDUjFfTEJFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzEpCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWENDUjFfSFBFTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMCkKICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1JYQ0NSMV9JTklUICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWENDUjFfT0ZGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1JYQ0NSMV9IUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0gICAgICAKLS8qKipETUEgUmVjZWl2ZSBJbnRlcnJ1cHQgU3RhdHVzIFJlZ2lzdGVyKioqLyAKKworLyoqKkRNQSBSZWNlaXZlIEludGVycnVwdCBTdGF0dXMgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWElTUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0RNQSsgMHgwODA4KSkKICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1JYSVNSX1JERVJSeCAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgOCkKICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1JYSVNSX0NNRENQVHggKHZhbHVlKSAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgNikKICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1JYSVNSX0VPUHggKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgNCkKICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1JYSVNSX0NQVHggKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMikKICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1JYSVNSX0hMRHggKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKkRNQSBSZWNlaXZlIEludGVycnVwdCBNYXNrIFJlZ2lzdGVyKioqLyAKKworLyoqKkRNQSBSZWNlaXZlIEludGVycnVwdCBNYXNrIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfUlhJTVIgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9ETUErIDB4MDgwQykpCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWElNUl9SREVSUnggKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDgpCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWElNUl9DTURDUFR4ICh2YWx1ZSkgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDYpCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWElNUl9FT1B4ICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDQpCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWElNUl9DUFR4ICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDIpCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWElNUl9ITER4ICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKKwogLyoqKkRNQSBGaXJzdCBSZWNlaXZlIERlc2NyaXB0b3IgQWRkci4gZm9yIFJ4IENoYW5uZWwgMAogKioqLwogI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfUlhGUkRBMCAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9ETUErIDB4MDgxMCkpCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWEZSREEwX1JYRlJEQSAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCAyOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKKwogLyoqKkRNQSBGaXJzdCBSZWNlaXZlIERlc2NyaXB0b3IgQWRkci4gZm9yIFJ4IENoYW5uZWwgMQogKioqLwogI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfUlhGUkRBMSAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9ETUErIDB4MDgxNCkpCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWEZSREExX1JYRlJEQSAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCAyOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipETUEgUmVjZWl2ZSBDaGFubmVsIFBvbGxpbmcgVGltZSoqKi8gCisKKy8qKipETUEgUmVjZWl2ZSBDaGFubmVsIFBvbGxpbmcgVGltZSoqKi8KICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1JYUE9MTCAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfRE1BKyAweDA4MTgpKQogI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfUlhQT0xMX0JTWjEgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMzApCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9SWFBPTExfQlNaMCAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAyOCkKICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1JYUE9MTF9SWFBPTExUSU1FICh2YWx1ZSkgICAgICAgICAoKCgoIDEgPDwgOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipETUEgVFggQ2hhbm5lbCAwIENvbW1hbmQgUmVnaXN0ZXIgKFZvaWNlIFBvcnQpKioqLyAKKworLyoqKkRNQSBUWCBDaGFubmVsIDAgQ29tbWFuZCBSZWdpc3RlciAoVm9pY2UgUG9ydCkqKiovCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWENDUjAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0RNQSsgMHgwODgwKSkKICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYQ0NSMF9MQkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMSkKICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYQ0NSMF9IUEVOICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMwKQogI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfVFhDQ1IwX0hSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYQ0NSMF9PRkYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQogI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfVFhDQ1IwX0lOSVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKLSAgICAgIAotLyoqKkRNQSBUWCBDaGFubmVsIDEgQ29tbWFuZCBSZWdpc3RlciAoTWFuZ210IFBvcnQpKioqLyAKKworLyoqKkRNQSBUWCBDaGFubmVsIDEgQ29tbWFuZCBSZWdpc3RlciAoTWFuZ210IFBvcnQpKioqLwogI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfVFhDQ1IxICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9ETUErIDB4MDg4NCkpCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWENDUjFfTEJFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzEpCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWENDUjFfSFBFTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMCkKICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYQ0NSMV9IUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWENDUjFfT0ZGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMSkKICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYQ0NSMV9JTklUICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCi0gICAgICAKLS8qKipETUEgVFggQ2hhbm5lbCAyIENvbW1hbmQgUmVnaXN0ZXIgKFNTQyBQb3J0KSoqKi8gCisKKy8qKipETUEgVFggQ2hhbm5lbCAyIENvbW1hbmQgUmVnaXN0ZXIgKFNTQyBQb3J0KSoqKi8KICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYQ0NSMiAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfRE1BKyAweDA4ODgpKQogI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfVFhDQ1IyX0xCRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMxKQogI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfVFhDQ1IyX0hQRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzApCkBAIC0xNjk5LDYwICsxNjk5LDYwIEBACiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWENDUjJfSFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQogI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfVFhDQ1IyX09GRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWENDUjJfSU5JVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQotICAgICAgCisKIC8qKipETUEgRmlyc3QgUmVjZWl2ZSBEZXNjcmlwdG9yIEFkZHIuIGZvciBUeCBDaGFubmVsIDAKICoqKi8KICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYRlJEQTAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfRE1BKyAweDA4QTApKQogI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfVFhGUkRBMF9UWEZSREEgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgMjgpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCisKIC8qKipETUEgRmlyc3QgUmVjZWl2ZSBEZXNjcmlwdG9yIEFkZHIuIGZvciBUeCBDaGFubmVsIDEKICoqKi8KICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYRlJEQTEgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfRE1BKyAweDA4QTQpKQogI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfVFhGUkRBMV9UWEZSREEgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgMjgpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCisKIC8qKipETUEgRmlyc3QgUmVjZWl2ZSBEZXNjcmlwdG9yIEFkZHIuIGZvciBUeCBDaGFubmVsIDIKICoqKi8KICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYRlJEQTIgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfRE1BKyAweDA4QTgpKQogI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfVFhGUkRBMl9UWEZSREEgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgMjgpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqRE1BIFRyYW5zbWl0IENoYW5uZWwgQXJiaXRyYXRpb24gUmVnaXN0ZXIqKiovIAorCisvKioqRE1BIFRyYW5zbWl0IENoYW5uZWwgQXJiaXRyYXRpb24gUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWFdHVCAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0RNQSsgMHgwOEMwKSkKICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYV0dUX1RYMlBSICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgNCkKICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYV0dUX1RYMVBSSSAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMikKICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYV0dUX1RYMFBSSSAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKkRNQSBUcmFuc21pdCBDaGFubmVsIFBvbGxpbmcgVGltZSoqKi8gCisKKy8qKipETUEgVHJhbnNtaXQgQ2hhbm5lbCBQb2xsaW5nIFRpbWUqKiovCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWFBPTEwgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0RNQSsgMHgwOEM0KSkKICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYUE9MTF9CU1oyICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDMwKQogI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfVFhQT0xMX0JTWjEgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMjgpCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWFBPTExfQlNaMCAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAyNikKICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYUE9MTF9UWFBPTExUSU1FICh2YWx1ZSkgICAgICAgICAoKCgoIDEgPDwgOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipETUEgVHJhbnNtaXQgSW50ZXJydXB0IFN0YXR1cyBSZWdpc3RlcioqKi8gCisKKy8qKipETUEgVHJhbnNtaXQgSW50ZXJydXB0IFN0YXR1cyBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYSVNSICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfRE1BKyAweDA4QzgpKQogI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfVFhJU1JfUkRFUlJ4ICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCAxMikKICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYSVNSX0hMRHggKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgOSkKICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYSVNSX0NQVHggKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgNikKICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYSVNSX0VPUHggKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMykKICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYSVNSX0NNRENQVHggKHZhbHVlKSAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKkRNQSBUcmFuc21pdCBJbnRlcnJ1cHQgTWFzayBSZWdpc3RlcioqKi8gCisKKy8qKipETUEgVHJhbnNtaXQgSW50ZXJydXB0IE1hc2sgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWElNUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0RNQSsgMHgwOENDKSkKICNkZWZpbmUgSU5DQV9JUF9ETUFfRE1BX1RYSU1SX1JERVJSeCAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCAzKSAtIDEpICYgKHZhbHVlKSkgPDwgMTIpCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWElNUl9ITER4ICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDkpCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWElNUl9DUFR4ICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDYpCiAjZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWElNUl9FT1B4ICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDMpCi0jZGVmaW5lIElOQ0FfSVBfRE1BX0RNQV9UWElNUl9DTURDUFR4ICh2YWx1ZSkgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDApCQkKLSAgICAgICAgIAorI2RlZmluZSBJTkNBX0lQX0RNQV9ETUFfVFhJTVJfQ01EQ1BUeCAodmFsdWUpICAgICAgICAgICAgKCgoKCAxIDw8IDMpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQorCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiAgTW9kdWxlICAgICAgOiAgRGVidWcgcmVnaXN0ZXIgYWRkcmVzcyBhbmQgYml0cyAgICAgICAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0gICAgICAgICAKLSNkZWZpbmUgSU5DQV9JUF9EZWJ1ZyAgICAgICAgICAgICAgICAgICAgICAgICgweEJGMTA2MDAwKQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLyAgIAogCi0gICAgICAKLS8qKipNQ0QgQnJlYWsgQnVzIFN3aXRjaCBSZWdpc3RlcioqKi8gCisjZGVmaW5lIElOQ0FfSVBfRGVidWcgICAgICAgICAgICAgICAgICAgICAgICAoMHhCRjEwNjAwMCkKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCisvKioqTUNEIEJyZWFrIEJ1cyBTd2l0Y2ggUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfRGVidWdfTUNEX0JCUyAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfRGVidWcrIDB4MDAwMCkpCiAjZGVmaW5lIElOQ0FfSVBfRGVidWdfTUNEX0JCU19CVFAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE5KQogI2RlZmluZSBJTkNBX0lQX0RlYnVnX01DRF9CQlNfQlRQMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxOCkKQEAgLTE3NjYsNDggKzE3NjYsNDggQEAKICNkZWZpbmUgSU5DQV9JUF9EZWJ1Z19NQ0RfQkJTX0JTNEVOICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA2KQogI2RlZmluZSBJTkNBX0lQX0RlYnVnX01DRF9CQlNfQlM1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNSkKICNkZWZpbmUgSU5DQV9JUF9EZWJ1Z19NQ0RfQkJTX0JTNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDQpCi0gICAgICAKLS8qKipNQ0QgTXVsdGlwbGV4ZXIgQ29udHJvbCBSZWdpc3RlcioqKi8gCisKKy8qKipNQ0QgTXVsdGlwbGV4ZXIgQ29udHJvbCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9EZWJ1Z19NQ0RfTUNSICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9EZWJ1ZysgMHgwMDA4KSkKICNkZWZpbmUgSU5DQV9JUF9EZWJ1Z19NQ0RfTUNSX01VWDUgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNCkKICNkZWZpbmUgSU5DQV9JUF9EZWJ1Z19NQ0RfTUNSX01VWDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMykKLSNkZWZpbmUgSU5DQV9JUF9EZWJ1Z19NQ0RfTUNSX01VWDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkJCQotICAgICAgICAgCisjZGVmaW5lIElOQ0FfSVBfRGVidWdfTUNEX01DUl9NVVgxICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDApCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qICBNb2R1bGUgICAgICA6ICBUU0YgcmVnaXN0ZXIgYWRkcmVzcyBhbmQgYml0cyAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSAgICAgICAgIAotI2RlZmluZSBJTkNBX0lQX1RTRiAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4QjgwMDA5MDApCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovICAgCiAKLSAgICAgIAotLyoqKlRTRiBDb25maWd1cmF0aW9uIFJlZ2lzdGVyICgwMDAwSCkqKiovIAorI2RlZmluZSBJTkNBX0lQX1RTRiAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4QjgwMDA5MDApCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworLyoqKlRTRiBDb25maWd1cmF0aW9uIFJlZ2lzdGVyICgwMDAwSCkqKiovCiAjZGVmaW5lIElOQ0FfSVBfVFNGX1RTRl9DT05GICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfVFNGKyAweDAwMDApKQogI2RlZmluZSBJTkNBX0lQX1RTRl9UU0ZfQ09ORl9QV01FTiAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMikKICNkZWZpbmUgSU5DQV9JUF9UU0ZfVFNGX0NPTkZfTEVERU4gICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiAjZGVmaW5lIElOQ0FfSVBfVFNGX1RTRl9DT05GX0tFWUVOICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQotICAgICAgCi0vKioqS2V5IHNjYW4gQ29uZmlndXJhdGlvbiBSZWdpc3RlciAoMDAwNEgpKioqLyAKKworLyoqKktleSBzY2FuIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKDAwMDRIKSoqKi8KICNkZWZpbmUgSU5DQV9JUF9UU0ZfS0VZX0NPTkYgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9UU0YrIDB4MDAwNCkpCiAjZGVmaW5lIElOQ0FfSVBfVFNGX0tFWV9DT05GX1NMICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDQpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqU2NhbiBSZWdpc3RlciBMaW5lIDAgYW5kIDEgKDAwMDhIKSoqKi8gCisKKy8qKipTY2FuIFJlZ2lzdGVyIExpbmUgMCBhbmQgMSAoMDAwOEgpKioqLwogI2RlZmluZSBJTkNBX0lQX1RTRl9TUkVHMDEgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9UU0YrIDB4MDAwOCkpCiAjZGVmaW5lIElOQ0FfSVBfVFNGX1NSRUcwMV9SRVMxeCAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgMTIpIC0gMSkgJiAodmFsdWUpKSA8PCAxNikKICNkZWZpbmUgSU5DQV9JUF9UU0ZfU1JFRzAxX1JFUzB4ICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCAxMykgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipTY2FuIFJlZ2lzdGVyIExpbmUgMiBhbmQgMyAoMDAwQ0gpKioqLyAKKworLyoqKlNjYW4gUmVnaXN0ZXIgTGluZSAyIGFuZCAzICgwMDBDSCkqKiovCiAjZGVmaW5lIElOQ0FfSVBfVFNGX1NSRUcyMyAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1RTRisgMHgwMDBDKSkKICNkZWZpbmUgSU5DQV9JUF9UU0ZfU1JFRzIzX1JFUzN4ICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCAxMCkgLSAxKSAmICh2YWx1ZSkpIDw8IDE2KQogI2RlZmluZSBJTkNBX0lQX1RTRl9TUkVHMjNfUkVTMnggKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDExKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKlNjYW4gUmVnaXN0ZXIgTGluZSA0LCA1IGFuZCA2ICgwMDEwSCkqKiovIAorCisvKioqU2NhbiBSZWdpc3RlciBMaW5lIDQsIDUgYW5kIDYgKDAwMTBIKSoqKi8KICNkZWZpbmUgSU5DQV9JUF9UU0ZfU1JFRzQ1NiAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfVFNGKyAweDAwMTApKQogI2RlZmluZSBJTkNBX0lQX1RTRl9TUkVHNDU2X1JFUzZ4ICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCA3KSAtIDEpICYgKHZhbHVlKSkgPDwgMjQpCiAjZGVmaW5lIElOQ0FfSVBfVFNGX1NSRUc0NTZfUkVTNXggKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDgpIC0gMSkgJiAodmFsdWUpKSA8PCAxNikKICNkZWZpbmUgSU5DQV9JUF9UU0ZfU1JFRzQ1Nl9SRVM0eCAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgOSkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipTY2FuIFJlZ2lzdGVyIExpbmUgNyB0byAxMiAoMDAxNEgpKioqLyAKKworLyoqKlNjYW4gUmVnaXN0ZXIgTGluZSA3IHRvIDEyICgwMDE0SCkqKiovCiAjZGVmaW5lIElOQ0FfSVBfVFNGX1NSRUc3dG8xMiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1RTRisgMHgwMDE0KSkKICNkZWZpbmUgSU5DQV9JUF9UU0ZfU1JFRzd0bzEyX1JFUzEyeCAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDI4KQogI2RlZmluZSBJTkNBX0lQX1RTRl9TUkVHN3RvMTJfUkVTMTF4ICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAyNCkKQEAgLTE4MTUsOCArMTgxNSw4IEBACiAjZGVmaW5lIElOQ0FfSVBfVFNGX1NSRUc3dG8xMl9SRVM5eCAodmFsdWUpICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDE2KQogI2RlZmluZSBJTkNBX0lQX1RTRl9TUkVHN3RvMTJfUkVTOHggKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDUpIC0gMSkgJiAodmFsdWUpKSA8PCA4KQogI2RlZmluZSBJTkNBX0lQX1RTRl9TUkVHN3RvMTJfUkVTN3ggKHZhbHVlKSAgICAgICAgICAgICAgKCgoKCAxIDw8IDYpIC0gMSkgJiAodmFsdWUpKSA8PCAwKQotICAgICAgCi0vKioqTEVETVVYIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKDAwMThIKSoqKi8gCisKKy8qKipMRURNVVggQ29uZmlndXJhdGlvbiBSZWdpc3RlciAoMDAxOEgpKioqLwogI2RlZmluZSBJTkNBX0lQX1RTRl9MRURNVVhfQ09ORiAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9UU0YrIDB4MDAxOCkpCiAjZGVmaW5lIElOQ0FfSVBfVFNGX0xFRE1VWF9DT05GX0VUTDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMjUpCiAjZGVmaW5lIElOQ0FfSVBfVFNGX0xFRE1VWF9DT05GX0VTVEExICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyNCkKQEAgLTE4MzAsMTk0ICsxODMwLDE5NCBAQAogI2RlZmluZSBJTkNBX0lQX1RTRl9MRURNVVhfQ09ORl9FU1BEMCAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTYpCiAjZGVmaW5lIElOQ0FfSVBfVFNGX0xFRE1VWF9DT05GX0lOViAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiAjZGVmaW5lIElOQ0FfSVBfVFNGX0xFRE1VWF9DT05GX05DT0wgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKLSAgICAgIAotLyoqKkxFRCBSZWdpc3RlciAoMDAxQ0gpKioqLyAKKworLyoqKkxFRCBSZWdpc3RlciAoMDAxQ0gpKioqLwogI2RlZmluZSBJTkNBX0lQX1RTRl9MRURfUkVHICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9UU0YrIDB4MDAxQykpCiAjZGVmaW5lIElOQ0FfSVBfVFNGX0xFRF9SRUdfTHh5ICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDI0KSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKlB1bHNlIFdpZHRoIE1vZHVsYXRvciAxIGFuZCAyIFJlZ2lzdGVyICgwMDIwSCkqKiovIAorCisvKioqUHVsc2UgV2lkdGggTW9kdWxhdG9yIDEgYW5kIDIgUmVnaXN0ZXIgKDAwMjBIKSoqKi8KICNkZWZpbmUgSU5DQV9JUF9UU0ZfUFdNMTIgICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfVFNGKyAweDAwMjApKQotI2RlZmluZSBJTkNBX0lQX1RTRl9QV00xMl9QVzJQVzEgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgTmFOKSAtIDEpICYgKHZhbHVlKSkgPDwgTmFOKQkJCi0gICAgICAgICAKKyNkZWZpbmUgSU5DQV9JUF9UU0ZfUFdNMTJfUFcyUFcxICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IE5hTikgLSAxKSAmICh2YWx1ZSkpIDw8IE5hTikKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogIE1vZHVsZSAgICAgIDogIFBvcnRzIHJlZ2lzdGVyIGFkZHJlc3MgYW5kIGJpdHMgICAgICAgICAgICAgICAgICAgICAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotICAgICAgICAgCi0jZGVmaW5lIElOQ0FfSVBfUG9ydHMgICAgICAgICAgICAgICAgICAgICAgICAoMHhCODAwMEEwMCkKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8gICAKIAotICAgICAgCi0vKioqUG9ydCAxIERhdGEgT3V0cHV0IFJlZ2lzdGVyICgwMDIwSCkqKiovIAorI2RlZmluZSBJTkNBX0lQX1BvcnRzICAgICAgICAgICAgICAgICAgICAgICAgKDB4QjgwMDBBMDApCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworLyoqKlBvcnQgMSBEYXRhIE91dHB1dCBSZWdpc3RlciAoMDAyMEgpKioqLwogI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AxX09VVCAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1BvcnRzKyAweDAwMjApKQogI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AxX09VVF9QKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgCi0vKioqUG9ydCAyIERhdGEgT3V0cHV0IFJlZ2lzdGVyICgwMDQwSCkqKiovIAorCisKKy8qKipQb3J0IDIgRGF0YSBPdXRwdXQgUmVnaXN0ZXIgKDAwNDBIKSoqKi8KICNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMl9PVVQgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Qb3J0cysgMHgwMDQwKSkKICNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMl9PVVRfUCh2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAotLyoqKlBvcnQgMSBEYXRhIElucHV0IFJlZ2lzdGVyICgwMDI0SCkqKiovIAorCisKKy8qKipQb3J0IDEgRGF0YSBJbnB1dCBSZWdpc3RlciAoMDAyNEgpKioqLwogI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AxX0lOICAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1BvcnRzKyAweDAwMjQpKQogI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AxX0lOX1AodmFsdWUpICAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAKLS8qKipQb3J0IDIgRGF0YSBJbnB1dCBSZWdpc3RlciAoMDA0NEgpKioqLyAKKworCisvKioqUG9ydCAyIERhdGEgSW5wdXQgUmVnaXN0ZXIgKDAwNDRIKSoqKi8KICNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMl9JTiAgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Qb3J0cysgMHgwMDQ0KSkKICNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMl9JTl9QKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgCi0vKioqUG9ydCAxIERpcmVjdGlvbiBSZWdpc3RlciAoMDAyOEgpKioqLyAKKworCisvKioqUG9ydCAxIERpcmVjdGlvbiBSZWdpc3RlciAoMDAyOEgpKioqLwogI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AxX0RJUiAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1BvcnRzKyAweDAwMjgpKQogI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AxX0RJUl9Qb3J0MVAodmFsdWUpICAgICAgICAgKDEgPDwgdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgCisKICNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMV9ESVJfUG9ydDJQbiAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCAxNikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipQb3J0IDIgRGlyZWN0aW9uIFJlZ2lzdGVyICgwMDQ4SCkqKiovIAorCisvKioqUG9ydCAyIERpcmVjdGlvbiBSZWdpc3RlciAoMDA0OEgpKioqLwogI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AyX0RJUiAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1BvcnRzKyAweDAwNDgpKQogI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AyX0RJUl9Qb3J0MVAodmFsdWUpICAgICAgICAgKDEgPDwgdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgCisKICNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMl9ESVJfUG9ydDJQbiAodmFsdWUpICAgICAgICAgICgoKCggMSA8PCAxNikgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKKwogLyoqKlBvcnQgMCBBbHRlcm5hdGUgRnVuY3Rpb24gU2VsZWN0IFJlZ2lzdGVyIDAgKDAwMEMgSCkKICoqKi8KICNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMF9BTFRTRUwgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Qb3J0cysgMHgwMDBDKSkKICNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMF9BTFRTRUxfUG9ydDBQKHZhbHVlKSAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgCisKKwogLyoqKlBvcnQgMSBBbHRlcm5hdGUgRnVuY3Rpb24gU2VsZWN0IFJlZ2lzdGVyIDAgKDAwMkMgSCkKICoqKi8KICNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMV9BTFRTRUwgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Qb3J0cysgMHgwMDJDKSkKICNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMV9BTFRTRUxfUG9ydDFQKHZhbHVlKSAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAorCiAjZGVmaW5lIElOQ0FfSVBfUG9ydHNfUDFfQUxUU0VMX1BvcnQyUCh2YWx1ZSkgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAorCisKIC8qKipQb3J0IDIgQWx0ZXJuYXRlIEZ1bmN0aW9uIFNlbGVjdCBSZWdpc3RlciAwICgwMDRDIEgpCiAqKiovCiAjZGVmaW5lIElOQ0FfSVBfUG9ydHNfUDJfQUxUU0VMICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfUG9ydHMrIDB4MDA0QykpCiAjZGVmaW5lIElOQ0FfSVBfUG9ydHNfUDJfQUxUU0VMX1BvcnQxUCh2YWx1ZSkgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKKwogI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AyX0FMVFNFTF9Qb3J0MlAodmFsdWUpICAgICAgICAgKDEgPDwgdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAKKworCiAvKioqUG9ydCAwIElucHV0IFNjaG1pdHQtVHJpZ2dlciBPZmYgUmVnaXN0ZXIgKDAwMTAgSCkKICoqKi8KICNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMF9TVE9GRiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1BvcnRzKyAweDAwMTApKQogI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AwX1NUT0ZGX1BvcnQwUCh2YWx1ZSkgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAorCisKIC8qKipQb3J0IDEgSW5wdXQgU2NobWl0dC1UcmlnZ2VyIE9mZiBSZWdpc3RlciAoMDAzMCBIKQogKioqLwogI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AxX1NUT0ZGICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfUG9ydHMrIDB4MDAzMCkpCiAjZGVmaW5lIElOQ0FfSVBfUG9ydHNfUDFfU1RPRkZfUG9ydDFQKHZhbHVlKSAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAorCiAjZGVmaW5lIElOQ0FfSVBfUG9ydHNfUDFfU1RPRkZfUG9ydDJQKHZhbHVlKSAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgCisKKwogLyoqKlBvcnQgMiBJbnB1dCBTY2htaXR0LVRyaWdnZXIgT2ZmIFJlZ2lzdGVyICgwMDUwIEgpCiAqKiovCiAjZGVmaW5lIElOQ0FfSVBfUG9ydHNfUDJfU1RPRkYgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Qb3J0cysgMHgwMDUwKSkKICNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMl9TVE9GRl9Qb3J0MVAodmFsdWUpICAgICAgICAgKDEgPDwgdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgCisKICNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMl9TVE9GRl9Qb3J0MlAodmFsdWUpICAgICAgICAgKDEgPDwgdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAKLS8qKipQb3J0IDIgT3BlbiBEcmFpbiBDb250cm9sIFJlZ2lzdGVyICgwMDU0SCkqKiovIAorCisKKy8qKipQb3J0IDIgT3BlbiBEcmFpbiBDb250cm9sIFJlZ2lzdGVyICgwMDU0SCkqKiovCiAjZGVmaW5lIElOQ0FfSVBfUG9ydHNfUDJfT0QgICAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfUG9ydHMrIDB4MDA1NCkpCiAjZGVmaW5lIElOQ0FfSVBfUG9ydHNfUDJfT0RfUG9ydDJQKHZhbHVlKSAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgCi0vKioqUG9ydCAwIFB1bGwgVXAgRGV2aWNlIEVuYWJsZSBSZWdpc3RlciAoMDAxOCBIKSoqKi8gCisKKworLyoqKlBvcnQgMCBQdWxsIFVwIERldmljZSBFbmFibGUgUmVnaXN0ZXIgKDAwMTggSCkqKiovCiAjZGVmaW5lIElOQ0FfSVBfUG9ydHNfUDBfUFVERU4gICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Qb3J0cysgMHgwMDE4KSkKICNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMF9QVURFTl9Qb3J0MFAodmFsdWUpICAgICAgICAgKDEgPDwgdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAKLS8qKipQb3J0IDIgUHVsbCBVcCBEZXZpY2UgRW5hYmxlIFJlZ2lzdGVyICgwMDU4IEgpKioqLyAKKworCisvKioqUG9ydCAyIFB1bGwgVXAgRGV2aWNlIEVuYWJsZSBSZWdpc3RlciAoMDA1OCBIKSoqKi8KICNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMl9QVURFTiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1BvcnRzKyAweDAwNTgpKQogI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AyX1BVREVOX1BvcnQyUCh2YWx1ZSkgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKKwogI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AyX1BVREVOX1BvcnQyUCh2YWx1ZSkgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAotLyoqKlBvcnQgMCBQdWxsIFVwL1B1bGwgRG93biBTZWxlY3QgUmVnaXN0ZXIgKDAwMUMgSCkqKiovIAorCisKKy8qKipQb3J0IDAgUHVsbCBVcC9QdWxsIERvd24gU2VsZWN0IFJlZ2lzdGVyICgwMDFDIEgpKioqLwogI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AwX1BVRFNFTCAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX1BvcnRzKyAweDAwMUMpKQogI2RlZmluZSBJTkNBX0lQX1BvcnRzX1AwX1BVRFNFTF9Qb3J0MFAodmFsdWUpICAgICAgICAgKDEgPDwgdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAKLS8qKipQb3J0IDIgUHVsbCBVcC9QdWxsIERvd24gU2VsZWN0IFJlZ2lzdGVyICgwMDVDIEgpKioqLyAKKworCisvKioqUG9ydCAyIFB1bGwgVXAvUHVsbCBEb3duIFNlbGVjdCBSZWdpc3RlciAoMDA1QyBIKSoqKi8KICNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMl9QVURTRUwgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9Qb3J0cysgMHgwMDVDKSkKICNkZWZpbmUgSU5DQV9JUF9Qb3J0c19QMl9QVURTRUxfUG9ydDJQKHZhbHVlKSAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAorCiAjZGVmaW5lIElOQ0FfSVBfUG9ydHNfUDJfUFVEU0VMX1BvcnQyUCh2YWx1ZSkgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAJCQotICAgICAgICAgCisKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogIE1vZHVsZSAgICAgIDogIERFUy8zREVTIHJlZ2lzdGVyIGFkZHJlc3MgYW5kIGJpdHMgICAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0gICAgICAgICAKLSNkZWZpbmUgSU5DQV9JUF9ERVNfM0RFUyAgICAgICAgICAgICAgICAgICAgKDB4QjgwMDA4MDApCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovICAgCiAKLSAgICAgIAotLyoqKkRFUyBJbnB1dCBEYXRhIEhpZ2ggUmVnaXN0ZXIqKiovIAorI2RlZmluZSBJTkNBX0lQX0RFU18zREVTICAgICAgICAgICAgICAgICAgICAoMHhCODAwMDgwMCkKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCisvKioqREVTIElucHV0IERhdGEgSGlnaCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9ERVNfM0RFU19ERVNfSUhSICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9ERVNfM0RFUysgMHgwMDAwKSkKICNkZWZpbmUgSU5DQV9JUF9ERVNfM0RFU19ERVNfSUhSX0lIKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgCi0vKioqREVTIElucHV0IERhdGEgTG93IFJlZ2lzdGVyKioqLyAKKworCisvKioqREVTIElucHV0IERhdGEgTG93IFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0RFU18zREVTX0RFU19JTFIgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0RFU18zREVTKyAweDAwMDQpKQogI2RlZmluZSBJTkNBX0lQX0RFU18zREVTX0RFU19JTFJfSUwodmFsdWUpICAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAKLS8qKipERVMgS2V5ICMxIEhpZ2ggUmVnaXN0ZXIqKiovIAorCisKKy8qKipERVMgS2V5ICMxIEhpZ2ggUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0sxSFIgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9ERVNfM0RFUysgMHgwMDA4KSkKICNkZWZpbmUgSU5DQV9JUF9ERVNfM0RFU19ERVNfSzFIUl9LMUgodmFsdWUpICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAotLyoqKkRFUyBLZXkgIzEgTG93IFJlZ2lzdGVyKioqLyAKKworCisvKioqREVTIEtleSAjMSBMb3cgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0sxTFIgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9ERVNfM0RFUysgMHgwMDBDKSkKICNkZWZpbmUgSU5DQV9JUF9ERVNfM0RFU19ERVNfSzFMUl9LMUwodmFsdWUpICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAotLyoqKkRFUyBLZXkgIzIgSGlnaCBSZWdpc3RlcioqKi8gCisKKworLyoqKkRFUyBLZXkgIzIgSGlnaCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9ERVNfM0RFU19ERVNfSzJIUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0RFU18zREVTKyAweDAwMTApKQogI2RlZmluZSBJTkNBX0lQX0RFU18zREVTX0RFU19LMkhSX0sySCh2YWx1ZSkgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgCi0vKioqREVTIEtleSAjMiBMb3cgUmVnaXN0ZXIqKiovIAorCisKKy8qKipERVMgS2V5ICMyIExvdyBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9ERVNfM0RFU19ERVNfSzJMUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0RFU18zREVTKyAweDAwMTQpKQogI2RlZmluZSBJTkNBX0lQX0RFU18zREVTX0RFU19LMkxSX0syTCh2YWx1ZSkgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgCi0vKioqREVTIEtleSAjMyBIaWdoIFJlZ2lzdGVyKioqLyAKKworCisvKioqREVTIEtleSAjMyBIaWdoIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0RFU18zREVTX0RFU19LM0hSICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfREVTXzNERVMrIDB4MDAxOCkpCiAjZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0szSFJfSzNIKHZhbHVlKSAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAKLS8qKipERVMgS2V5ICMzIExvdyBSZWdpc3RlcioqKi8gCisKKworLyoqKkRFUyBLZXkgIzMgTG93IFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0RFU18zREVTX0RFU19LM0xSICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfREVTXzNERVMrIDB4MDAxQykpCiAjZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0szTFJfSzNMKHZhbHVlKSAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAKLS8qKipERVMgSW5pdGlhbGl6YXRpb24gVmVjdG9yIEhpZ2ggUmVnaXN0ZXIqKiovIAorCisKKy8qKipERVMgSW5pdGlhbGl6YXRpb24gVmVjdG9yIEhpZ2ggUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0lWSFIgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9ERVNfM0RFUysgMHgwMDIwKSkKICNkZWZpbmUgSU5DQV9JUF9ERVNfM0RFU19ERVNfSVZIUl9JVkgodmFsdWUpICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAotLyoqKkRFUyBJbml0aWFsaXphdGlvbiBWZWN0b3IgTG93IFJlZ2lzdGVyKioqLyAKKworCisvKioqREVTIEluaXRpYWxpemF0aW9uIFZlY3RvciBMb3cgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0lWTFIgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9ERVNfM0RFUysgMHgwMDI0KSkKICNkZWZpbmUgSU5DQV9JUF9ERVNfM0RFU19ERVNfSVZMUl9JVkwodmFsdWUpICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAotLyoqKkRFUyBDb250cm9sIFJlZ2lzdGVyKioqLyAKKworCisvKioqREVTIENvbnRyb2wgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0NPTlRST0xSICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfREVTXzNERVMrIDB4MDAyOCkpCiAjZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0NPTlRST0xSX0tSRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMxKQogI2RlZmluZSBJTkNBX0lQX0RFU18zREVTX0RFU19DT05UUk9MUl9EQVUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxNikKICNkZWZpbmUgSU5DQV9JUF9ERVNfM0RFU19ERVNfQ09OVFJPTFJfRih2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKKwogI2RlZmluZSBJTkNBX0lQX0RFU18zREVTX0RFU19DT05UUk9MUl9PKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAorCiAjZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0NPTlRST0xSX0dPICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgOCkKICNkZWZpbmUgSU5DQV9JUF9ERVNfM0RFU19ERVNfQ09OVFJPTFJfU1RQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNykKICNkZWZpbmUgSU5DQV9JUF9ERVNfM0RFU19ERVNfQ09OVFJPTFJfSUVOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNikKQEAgLTIwMjUsMTM0ICsyMDI1LDEzNCBAQAogI2RlZmluZSBJTkNBX0lQX0RFU18zREVTX0RFU19DT05UUk9MUl9TTSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDQpCiAjZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0NPTlRST0xSX0VfRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCiAjZGVmaW5lIElOQ0FfSVBfREVTXzNERVNfREVTX0NPTlRST0xSX00odmFsdWUpICAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAKLS8qKipERVMgT3V0cHV0IERhdGEgSGlnaCBSZWdpc3RlcioqKi8gCisKKworLyoqKkRFUyBPdXRwdXQgRGF0YSBIaWdoIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0RFU18zREVTX0RFU19PSFIgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0RFU18zREVTKyAweDAwMkMpKQogI2RlZmluZSBJTkNBX0lQX0RFU18zREVTX0RFU19PSFJfT0godmFsdWUpICAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAKLS8qKipERVMgT3V0cHV0IERhdGEgTG93IFJlZ2lzdGVyKioqLyAKKworCisvKioqREVTIE91dHB1dCBEYXRhIExvdyBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9ERVNfM0RFU19ERVNfT0xSICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9ERVNfM0RFUysgMHgwMDMwKSkKICNkZWZpbmUgSU5DQV9JUF9ERVNfM0RFU19ERVNfT0xSX09MKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAkJCi0gICAgICAgICAKKworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiAgTW9kdWxlICAgICAgOiAgQUVTIHJlZ2lzdGVyIGFkZHJlc3MgYW5kIGJpdHMgICAgICAgICAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0gICAgICAgICAKLSNkZWZpbmUgSU5DQV9JUF9BRVMgICAgICAgICAgICAgICAgICAgICAgICAgICgweEI4MDAwODgwKQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLyAgIAogCi0gICAgICAKLS8qKipBRVMgSW5wdXQgRGF0YSAzIFJlZ2lzdGVyKioqLyAKKyNkZWZpbmUgSU5DQV9JUF9BRVMgICAgICAgICAgICAgICAgICAgICAgICAgICgweEI4MDAwODgwKQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKKy8qKipBRVMgSW5wdXQgRGF0YSAzIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfSUQzUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FFUysgMHgwMDAwKSkKICNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX0lEM1JfSSh2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAotLyoqKkFFUyBJbnB1dCBEYXRhIDIgUmVnaXN0ZXIqKiovIAorCisKKy8qKipBRVMgSW5wdXQgRGF0YSAyIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfSUQyUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FFUysgMHgwMDAwKSkKICNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX0lEMlJfSSh2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAotLyoqKkFFUyBJbnB1dCBEYXRhIDEgUmVnaXN0ZXIqKiovIAorCisKKy8qKipBRVMgSW5wdXQgRGF0YSAxIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfSUQxUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FFUysgMHgwMDAwKSkKICNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX0lEMVJfSSh2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAotLyoqKkFFUyBJbnB1dCBEYXRhIDAgUmVnaXN0ZXIqKiovIAorCisKKy8qKipBRVMgSW5wdXQgRGF0YSAwIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfSUQwUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FFUysgMHgwMDAwKSkKICNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX0lEMFJfSSh2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAotLyoqKkFFUyBPdXRwdXQgRGF0YSAzIFJlZ2lzdGVyKioqLyAKKworCisvKioqQUVTIE91dHB1dCBEYXRhIDMgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19PRDNSICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQUVTKyAweDAwMDApKQogI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfT0QzUl9PKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgCi0vKioqQUVTIE91dHB1dCBEYXRhIDIgUmVnaXN0ZXIqKiovIAorCisKKy8qKipBRVMgT3V0cHV0IERhdGEgMiBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX09EMlIgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9BRVMrIDB4MDAwMCkpCiAjZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19PRDJSX08odmFsdWUpICAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAKLS8qKipBRVMgT3V0cHV0IERhdGEgMSBSZWdpc3RlcioqKi8gCisKKworLyoqKkFFUyBPdXRwdXQgRGF0YSAxIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfT0QxUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FFUysgMHgwMDAwKSkKICNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX09EMVJfTyh2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAotLyoqKkFFUyBPdXRwdXQgRGF0YSAwIFJlZ2lzdGVyKioqLyAKKworCisvKioqQUVTIE91dHB1dCBEYXRhIDAgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19PRDBSICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQUVTKyAweDAwMDApKQogI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfT0QwUl9PKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgCi0vKioqQUVTIEtleSA3IFJlZ2lzdGVyKioqLyAKKworCisvKioqQUVTIEtleSA3IFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfSzdSICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9BRVMrIDB4MDAwMCkpCiAjZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19LN1JfSyh2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAotLyoqKkFFUyBLZXkgNiBSZWdpc3RlcioqKi8gCisKKworLyoqKkFFUyBLZXkgNiBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX0s2UiAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQUVTKyAweDAwMDApKQogI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfSzZSX0sodmFsdWUpICAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAKLS8qKipBRVMgS2V5IDUgUmVnaXN0ZXIqKiovIAorCisKKy8qKipBRVMgS2V5IDUgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19LNVIgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FFUysgMHgwMDAwKSkKICNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX0s1Ul9LKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgCi0vKioqQUVTIEtleSA0IFJlZ2lzdGVyKioqLyAKKworCisvKioqQUVTIEtleSA0IFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfSzRSICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9BRVMrIDB4MDAwMCkpCiAjZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19LNFJfSyh2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAotLyoqKkFFUyBLZXkgMyBSZWdpc3RlcioqKi8gCisKKworLyoqKkFFUyBLZXkgMyBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX0szUiAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQUVTKyAweDAwMDApKQogI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfSzNSX0sodmFsdWUpICAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAKLS8qKipBRVMgS2V5IDIgUmVnaXN0ZXIqKiovIAorCisKKy8qKipBRVMgS2V5IDIgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19LMlIgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FFUysgMHgwMDAwKSkKICNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX0syUl9LKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgCi0vKioqQUVTIEtleSAxIFJlZ2lzdGVyKioqLyAKKworCisvKioqQUVTIEtleSAxIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfSzFSICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9BRVMrIDB4MDAwMCkpCiAjZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19LMVJfSyh2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAotLyoqKkFFUyBLZXkgMCBSZWdpc3RlcioqKi8gCisKKworLyoqKkFFUyBLZXkgMCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX0swUiAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQUVTKyAweDAwMDApKQogI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfSzBSX0sodmFsdWUpICAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAKLS8qKipBRVMgSW5pdGlhbGl6YXRpb24gVmVjdG9yIDMgUmVnaXN0ZXIqKiovIAorCisKKy8qKipBRVMgSW5pdGlhbGl6YXRpb24gVmVjdG9yIDMgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19JVjNSICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQUVTKyAweDAwMDApKQogI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfSVYzUl9JVih2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAotLyoqKkFFUyBJbml0aWFsaXphdGlvbiBWZWN0b3IgMiBSZWdpc3RlcioqKi8gCisKKworLyoqKkFFUyBJbml0aWFsaXphdGlvbiBWZWN0b3IgMiBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX0lWMlIgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9BRVMrIDB4MDAwMCkpCiAjZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19JVjJSX0lWKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgCi0vKioqQUVTIEluaXRpYWxpemF0aW9uIFZlY3RvciAxIFJlZ2lzdGVyKioqLyAKKworCisvKioqQUVTIEluaXRpYWxpemF0aW9uIFZlY3RvciAxIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfSVYxUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0FFUysgMHgwMDAwKSkKICNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX0lWMVJfSVYodmFsdWUpICAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAKLS8qKipBRVMgSW5pdGlhbGl6YXRpb24gVmVjdG9yIDAgUmVnaXN0ZXIqKiovIAorCisKKy8qKipBRVMgSW5pdGlhbGl6YXRpb24gVmVjdG9yIDAgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19JVjBSICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfQUVTKyAweDAwMDApKQogI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfSVYwUl9JViAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCAzMikgLSAxKSAmKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKkFFUyBDb250cm9sIFJlZ2lzdGVyKioqLyAKKworLyoqKkFFUyBDb250cm9sIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfQ09OVFJPTFIgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9BRVMrIDB4MDAwMCkpCiAjZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19DT05UUk9MUl9LUkUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMSkKICNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX0NPTlRST0xSX0RBVSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE2KQogI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfQ09OVFJPTFJfUE5LICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTUpCiAjZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19DT05UUk9MUl9GKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAorCiAjZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19DT05UUk9MUl9PKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAorCiAjZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19DT05UUk9MUl9HTyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDgpCiAjZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19DT05UUk9MUl9TVFAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCA3KQogI2RlZmluZSBJTkNBX0lQX0FFU19BRVNfQ09OVFJPTFJfSUVOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgNikKQEAgLTIxNjEsMzAgKzIxNjEsMzAgQEAKICNkZWZpbmUgSU5DQV9JUF9BRVNfQUVTX0NPTlRST0xSX0VfRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMpCiAjZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19DT05UUk9MUl9LViAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiAjZGVmaW5lIElOQ0FfSVBfQUVTX0FFU19DT05UUk9MUl9LKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAkJCi0gICAgICAgICAKKworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiAgTW9kdWxlICAgICAgOiAgSbJDIHJlZ2lzdGVyIGFkZHJlc3MgYW5kIGJpdHMgICAgICAgICAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0gICAgICAgICAKLSNkZWZpbmUgSU5DQV9JUF9JSUMgICAgICAgICAgICAgICAgICAgICAgICAgICgweEI4MDAwNzAwKQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLyAgIAogCi0gICAgICAKLS8qKipJskMgUG9ydCBJbnB1dCBTZWxlY3QgUmVnaXN0ZXIqKiovIAorI2RlZmluZSBJTkNBX0lQX0lJQyAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4QjgwMDA3MDApCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworLyoqKkmyQyBQb3J0IElucHV0IFNlbGVjdCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1BJU0VMICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSUlDKyAweDAwMDQpKQogI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfUElTRUxfU0RBSVModmFsdWUpICAgICAgICAgICAgKDEgPDwgdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgCisKICNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1BJU0VMX1NDTElTKHZhbHVlKSAgICAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgCi0vKioqSbJDIENsb2NrIENvbnRyb2wgUmVnaXN0ZXIqKiovIAorCisKKy8qKipJskMgQ2xvY2sgQ29udHJvbCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX0NMQyAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSUlDKyAweDAwMDApKQogI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfQ0xDX1JNQyAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgOCkKICNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX0NMQ19ESVNTICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiAjZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19DTENfRElTUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQotICAgICAgCi0vKioqSbJDIFN5c3RlbSBDb250cm9sIFJlZ2lzdGVyKioqLyAKKworLyoqKkmyQyBTeXN0ZW0gQ29udHJvbCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1NZU0NPTl8wICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSUlDKyAweDAwMTApKQogI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfU1lTQ09OXzBfV01FTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMSkKICNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1NZU0NPTl8wX0NJICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAyNikKQEAgLTIyMDcsOCArMjIwNyw4IEBACiAjZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMF9TTEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQogI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfU1lTQ09OXzBfQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQogI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfU1lTQ09OXzBfQURSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKLSAgICAgIAotLyoqKkmyQyBTeXN0ZW0gQ29udHJvbCBSZWdpc3RlcioqKi8gCisKKy8qKipJskMgU3lzdGVtIENvbnRyb2wgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMSAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lJQysgMHgwMDEwKSkKICNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1NZU0NPTl8xX1JNICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDgpIC0gMSkgJiAodmFsdWUpKSA8PCAyNCkKICNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1NZU0NPTl8xX1RSWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIzKQpAQCAtMjIyOCw4ICsyMjI4LDggQEAKICNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1NZU0NPTl8xX1NMQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiAjZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMV9BTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCiAjZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMV9BRFIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQotICAgICAgCi0vKioqSbJDIFN5c3RlbSBDb250cm9sIFJlZ2lzdGVyKioqLyAKKworLyoqKkmyQyBTeXN0ZW0gQ29udHJvbCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1NZU0NPTl8yICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSUlDKyAweDAwMTApKQogI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfU1lTQ09OXzJfV01FTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMSkKICNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1NZU0NPTl8yX0NJICh2YWx1ZSkgICAgICAgICAgICAgICAgKCgoKCAxIDw8IDIpIC0gMSkgJiAodmFsdWUpKSA8PCAyNikKQEAgLTIyNTEsNyArMjI1MSw3IEBACiAjZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19TWVNDT05fMl9TTEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAyKQogI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfU1lTQ09OXzJfQUwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAxKQogI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfU1lTQ09OXzJfQURSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKLSAgICAgIAorCiAvKioqSbJDIFdyaXRlIEhhcmR3YXJlIE1vZGlmaWVkIFN5c3RlbSBDb250cm9sIFJlZ2lzdGVyCiAqKiovCiAjZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19XSEJTWVNDT04gICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JSUMrIDB4MDAyMCkpCkBAIC0yMjc3LDE2MSArMjI3NywxNjEgQEAKICNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1dIQlNZU0NPTl9DTFJJUlFEICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDUpCiAjZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19XSEJTWVNDT05fU0VUQUwgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDIpCiAjZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19XSEJTWVNDT05fQ0xSQUwgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDEpCi0gICAgICAKLS8qKipJskMgQnVzIENvbnRyb2wgUmVnaXN0ZXIqKiovIAorCisvKioqSbJDIEJ1cyBDb250cm9sIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfQlVTQ09OXzAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JSUMrIDB4MDAxNCkpCiAjZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19CVVNDT05fMF9CUlBNT0QgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMSkKICNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX0JVU0NPTl8wX1BSRURJViAodmFsdWUpICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMjkpCiAjZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19CVVNDT05fMF9JQ0E5XzAgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgMTApIC0gMSkgJiAodmFsdWUpKSA8PCAxNikKICNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX0JVU0NPTl8wX0JSUCAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgOCkKICNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX0JVU0NPTl8wX1NDTEVOKHZhbHVlKSAgICAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAorCiAjZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19CVVNDT05fMF9TREFFTih2YWx1ZSkgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAotLyoqKkmyQyBCdXMgQ29udHJvbCBSZWdpc3RlcioqKi8gCisKKworLyoqKkmyQyBCdXMgQ29udHJvbCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX0JVU0NPTl8xICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSUlDKyAweDAwMTQpKQogI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfQlVTQ09OXzFfQlJQTU9EICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMzEpCiAjZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19CVVNDT05fMV9QUkVESVYgKHZhbHVlKSAgICAgICAgICAgICAoKCgoIDEgPDwgMikgLSAxKSAmICh2YWx1ZSkpIDw8IDI5KQogI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfQlVTQ09OXzFfSUNBN18xICh2YWx1ZSkgICAgICAgICAgICAgKCgoKCAxIDw8IDcpIC0gMSkgJiAodmFsdWUpKSA8PCAxNykKICNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX0JVU0NPTl8xX0JSUCAodmFsdWUpICAgICAgICAgICAgICAgICgoKCggMSA8PCA4KSAtIDEpICYgKHZhbHVlKSkgPDwgOCkKICNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX0JVU0NPTl8xX1NDTEVOKHZhbHVlKSAgICAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAorCiAjZGVmaW5lIElOQ0FfSVBfSUlDX0lJQ19CVVNDT05fMV9TREFFTih2YWx1ZSkgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAotLyoqKkmyQyBSZWNlaXZlIFRyYW5zbWl0IEJ1ZmZlcioqKi8gCisKKworLyoqKkmyQyBSZWNlaXZlIFRyYW5zbWl0IEJ1ZmZlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9JSUNfSUlDX1JUQiAgICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSUlDKyAweDAwMTgpKQogI2RlZmluZSBJTkNBX0lQX0lJQ19JSUNfUlRCX1JUQih2YWx1ZSkgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAkJCi0gICAgICAgICAKKworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiAgTW9kdWxlICAgICAgOiAgRkIgcmVnaXN0ZXIgYWRkcmVzcyBhbmQgYml0cyAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSAgICAgICAgIAotI2RlZmluZSBJTkNBX0lQX0ZCICAgICAgICAgICAgICAgICAgICAgICAgICAoMHhCRjg4MDAwMCkKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8gICAKIAotICAgICAgCi0vKioqRkIgQWNjZXNzIEVycm9yIENhdXNlIFJlZ2lzdGVyKioqLyAKKyNkZWZpbmUgSU5DQV9JUF9GQiAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4QkY4ODAwMDApCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworLyoqKkZCIEFjY2VzcyBFcnJvciBDYXVzZSBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9GQl9GQl9FUlJDQVVTRSAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9GQisgMHgwMTAwKSkKICNkZWZpbmUgSU5DQV9JUF9GQl9GQl9FUlJDQVVTRV9FUlIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAzMSkKICNkZWZpbmUgSU5DQV9JUF9GQl9GQl9FUlJDQVVTRV9QT1JUICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgNCkgLSAxKSAmICh2YWx1ZSkpIDw8IDE2KQogI2RlZmluZSBJTkNBX0lQX0ZCX0ZCX0VSUkNBVVNFX0NBVVNFICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKkZCIEFjY2VzcyBFcnJvciBBZGRyZXNzIFJlZ2lzdGVyKioqLyAKKworLyoqKkZCIEFjY2VzcyBFcnJvciBBZGRyZXNzIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0ZCX0ZCX0VSUkFERFIgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0ZCKyAweDAxMDgpKQogI2RlZmluZSBJTkNBX0lQX0ZCX0ZCX0VSUkFERFJfQUREUgotICAgICAgCi0vKioqRkIgQ29uZmlndXJhdGlvbiBSZWdpc3RlcioqKi8gCisKKy8qKipGQiBDb25maWd1cmF0aW9uIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0ZCX0ZCX0NGRyAgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0ZCKyAweDA4MDApKQotI2RlZmluZSBJTkNBX0lQX0ZCX0ZCX0NGR19TVk0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMSA8PCAwKQkJCi0gICAgICAgICAKKyNkZWZpbmUgSU5DQV9JUF9GQl9GQl9DRkdfU1ZNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDEgPDwgMCkKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyogIE1vZHVsZSAgICAgIDogIFNSQU0gcmVnaXN0ZXIgYWRkcmVzcyBhbmQgYml0cyAgICAgICAgICAgICAgICAgICAgICAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotICAgICAgICAgCi0jZGVmaW5lIElOQ0FfSVBfU1JBTSAgICAgICAgICAgICAgICAgICAgICAgICAoMHhCRjk4MDAwMCkKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8gICAKIAotICAgICAgCi0vKioqU1JBTSBTaXplIFJlZ2lzdGVyKioqLyAKKyNkZWZpbmUgSU5DQV9JUF9TUkFNICAgICAgICAgICAgICAgICAgICAgICAgICgweEJGOTgwMDAwKQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKKy8qKipTUkFNIFNpemUgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfU1JBTV9TUkFNX1NJWkUgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9TUkFNKyAweDA4MDApKQotI2RlZmluZSBJTkNBX0lQX1NSQU1fU1JBTV9TSVpFX1NJWkUgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAyMykgLSAxKSAmICh2YWx1ZSkpIDw8IDApCQkKLSAgICAgICAgIAorI2RlZmluZSBJTkNBX0lQX1NSQU1fU1JBTV9TSVpFX1NJWkUgKHZhbHVlKSAgICAgICAgICAgICAgICgoKCggMSA8PCAyMykgLSAxKSAmICh2YWx1ZSkpIDw8IDApCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qICBNb2R1bGUgICAgICA6ICBCSVUgcmVnaXN0ZXIgYWRkcmVzcyBhbmQgYml0cyAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSAgICAgICAgIAotI2RlZmluZSBJTkNBX0lQX0JJVSAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4QkZBODAwMDApCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovICAgCiAKLSAgICAgIAotLyoqKkJJVSBJZGVudGlmaWNhdGlvbiBSZWdpc3RlcioqKi8gCisjZGVmaW5lIElOQ0FfSVBfQklVICAgICAgICAgICAgICAgICAgICAgICAgICAoMHhCRkE4MDAwMCkKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCisvKioqQklVIElkZW50aWZpY2F0aW9uIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0JJVV9CSVVfSUQgICAgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9CSVUrIDB4MDAwMCkpCiAjZGVmaW5lIElOQ0FfSVBfQklVX0JJVV9JRF9BUkNIICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE2KQogI2RlZmluZSBJTkNBX0lQX0JJVV9CSVVfSURfSUQgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDgpCiAjZGVmaW5lIElOQ0FfSVBfQklVX0JJVV9JRF9SRVYgKHZhbHVlKSAgICAgICAgICAgICAgICAoKCgoIDEgPDwgOCkgLSAxKSAmICh2YWx1ZSkpIDw8IDApCi0gICAgICAKLS8qKipCSVUgQWNjZXNzIEVycm9yIENhdXNlIFJlZ2lzdGVyKioqLyAKKworLyoqKkJJVSBBY2Nlc3MgRXJyb3IgQ2F1c2UgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfQklVX0JJVV9FUlJDQVVTRSAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0JJVSsgMHgwMTAwKSkKICNkZWZpbmUgSU5DQV9JUF9CSVVfQklVX0VSUkNBVVNFX0VSUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDMxKQogI2RlZmluZSBJTkNBX0lQX0JJVV9CSVVfRVJSQ0FVU0VfUE9SVCAodmFsdWUpICAgICAgICAgICAgICAgKCgoKCAxIDw8IDQpIC0gMSkgJiAodmFsdWUpKSA8PCAxNikKICNkZWZpbmUgSU5DQV9JUF9CSVVfQklVX0VSUkNBVVNFX0NBVVNFICh2YWx1ZSkgICAgICAgICAgICAgICgoKCggMSA8PCAyKSAtIDEpICYgKHZhbHVlKSkgPDwgMCkKLSAgICAgIAotLyoqKkJJVSBBY2Nlc3MgRXJyb3IgQWRkcmVzcyBSZWdpc3RlcioqKi8gCisKKy8qKipCSVUgQWNjZXNzIEVycm9yIEFkZHJlc3MgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfQklVX0JJVV9FUlJBRERSICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0JJVSsgMHgwMTA4KSkKLSNkZWZpbmUgSU5DQV9JUF9CSVVfQklVX0VSUkFERFJfQUREUgkJCi0gICAgICAgICAKKyNkZWZpbmUgSU5DQV9JUF9CSVVfQklVX0VSUkFERFJfQUREUgorCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKiAgTW9kdWxlICAgICAgOiAgSUNVIHJlZ2lzdGVyIGFkZHJlc3MgYW5kIGJpdHMgICAgICAgICAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0gICAgICAgICAKLSNkZWZpbmUgSU5DQV9JUF9JQ1UgICAgICAgICAgICAgICAgICAgICAgICAgICgweEJGMTAxMDAwKQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLyAgIAogCi0gICAgICAKLS8qKipJTTAgSW50ZXJydXB0IFN0YXR1cyBSZWdpc3RlcioqKi8gCisjZGVmaW5lIElOQ0FfSVBfSUNVICAgICAgICAgICAgICAgICAgICAgICAgICAoMHhCRjEwMTAwMCkKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCisvKioqSU0wIEludGVycnVwdCBTdGF0dXMgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfSUNVX0lNMF9JU1IgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lDVSsgMHgwMDAwKSkKICNkZWZpbmUgSU5DQV9JUF9JQ1VfSU0wX0lTUl9JUih2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAotLyoqKklNMSBJbnRlcnJ1cHQgU3RhdHVzIFJlZ2lzdGVyKioqLyAKKworCisvKioqSU0xIEludGVycnVwdCBTdGF0dXMgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfSUNVX0lNMV9JU1IgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lDVSsgMHgwMjAwKSkKICNkZWZpbmUgSU5DQV9JUF9JQ1VfSU0xX0lTUl9JUih2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAotLyoqKklNMiBJbnRlcnJ1cHQgU3RhdHVzIFJlZ2lzdGVyKioqLyAKKworCisvKioqSU0yIEludGVycnVwdCBTdGF0dXMgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfSUNVX0lNMl9JU1IgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lDVSsgMHgwNDAwKSkKICNkZWZpbmUgSU5DQV9JUF9JQ1VfSU0yX0lTUl9JUih2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAotLyoqKklNMCBJbnRlcnJ1cHQgRW5hYmxlIFJlZ2lzdGVyKioqLyAKKworCisvKioqSU0wIEludGVycnVwdCBFbmFibGUgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfSUNVX0lNMF9JRVIgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lDVSsgMHgwMDA4KSkKICNkZWZpbmUgSU5DQV9JUF9JQ1VfSU0wX0lFUl9JUih2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAotLyoqKklNMSBJbnRlcnJ1cHQgRW5hYmxlIFJlZ2lzdGVyKioqLyAKKworCisvKioqSU0xIEludGVycnVwdCBFbmFibGUgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfSUNVX0lNMV9JRVIgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lDVSsgMHgwMjA4KSkKICNkZWZpbmUgSU5DQV9JUF9JQ1VfSU0xX0lFUl9JUih2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAotLyoqKklNMiBJbnRlcnJ1cHQgRW5hYmxlIFJlZ2lzdGVyKioqLyAKKworCisvKioqSU0yIEludGVycnVwdCBFbmFibGUgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfSUNVX0lNMl9JRVIgICAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lDVSsgMHgwNDA4KSkKICNkZWZpbmUgSU5DQV9JUF9JQ1VfSU0yX0lFUl9JUih2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAotLyoqKklNMCBJbnRlcnJ1cHQgT3V0cHV0IFN0YXR1cyBSZWdpc3RlcioqKi8gCisKKworLyoqKklNMCBJbnRlcnJ1cHQgT3V0cHV0IFN0YXR1cyBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9JQ1VfSU0wX0lPU1IgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JQ1UrIDB4MDAxMCkpCiAjZGVmaW5lIElOQ0FfSVBfSUNVX0lNMF9JT1NSX0lSKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgCi0vKioqSU0xIEludGVycnVwdCBPdXRwdXQgU3RhdHVzIFJlZ2lzdGVyKioqLyAKKworCisvKioqSU0xIEludGVycnVwdCBPdXRwdXQgU3RhdHVzIFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0lDVV9JTTFfSU9TUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lDVSsgMHgwMjEwKSkKICNkZWZpbmUgSU5DQV9JUF9JQ1VfSU0xX0lPU1JfSVIodmFsdWUpICAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAKLS8qKipJTTIgSW50ZXJydXB0IE91dHB1dCBTdGF0dXMgUmVnaXN0ZXIqKiovIAorCisKKy8qKipJTTIgSW50ZXJydXB0IE91dHB1dCBTdGF0dXMgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfSUNVX0lNMl9JT1NSICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSUNVKyAweDA0MTApKQogI2RlZmluZSBJTkNBX0lQX0lDVV9JTTJfSU9TUl9JUih2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAotLyoqKklNMCBJbnRlcnJ1cHQgUmVxdWVzdCBTZXQgUmVnaXN0ZXIqKiovIAorCisKKy8qKipJTTAgSW50ZXJydXB0IFJlcXVlc3QgU2V0IFJlZ2lzdGVyKioqLwogI2RlZmluZSBJTkNBX0lQX0lDVV9JTTBfSVJTUiAgICAgICAgICAgICAgICAgICAgKCh2b2xhdGlsZSB1MzIqKShJTkNBX0lQX0lDVSsgMHgwMDE4KSkKICNkZWZpbmUgSU5DQV9JUF9JQ1VfSU0wX0lSU1JfSVIodmFsdWUpICAgICAgICAgICAgICAgKDEgPDwgdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAKLS8qKipJTTEgSW50ZXJydXB0IFJlcXVlc3QgU2V0IFJlZ2lzdGVyKioqLyAKKworCisvKioqSU0xIEludGVycnVwdCBSZXF1ZXN0IFNldCBSZWdpc3RlcioqKi8KICNkZWZpbmUgSU5DQV9JUF9JQ1VfSU0xX0lSU1IgICAgICAgICAgICAgICAgICAgICgodm9sYXRpbGUgdTMyKikoSU5DQV9JUF9JQ1UrIDB4MDIxOCkpCiAjZGVmaW5lIElOQ0FfSVBfSUNVX0lNMV9JUlNSX0lSKHZhbHVlKSAgICAgICAgICAgICAgICgxIDw8IHZhbHVlKQotICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgCi0vKioqSU0yIEludGVycnVwdCBSZXF1ZXN0IFNldCBSZWdpc3RlcioqKi8gCisKKworLyoqKklNMiBJbnRlcnJ1cHQgUmVxdWVzdCBTZXQgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfSUNVX0lNMl9JUlNSICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSUNVKyAweDA0MTgpKQogI2RlZmluZSBJTkNBX0lQX0lDVV9JTTJfSVJTUl9JUih2YWx1ZSkgICAgICAgICAgICAgICAoMSA8PCB2YWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgIAotLyoqKkV4dGVybmFsIEludGVycnVwdCBDb250cm9sIFJlZ2lzdGVyKioqLyAKKworCisvKioqRXh0ZXJuYWwgSW50ZXJydXB0IENvbnRyb2wgUmVnaXN0ZXIqKiovCiAjZGVmaW5lIElOQ0FfSVBfSUNVX0lDVV9FSUNSICAgICAgICAgICAgICAgICAgICAoKHZvbGF0aWxlIHUzMiopKElOQ0FfSVBfSUNVKyAweDBCMDApKQogI2RlZmluZSBJTkNBX0lQX0lDVV9JQ1VfRUlDUl9FSUk1ICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDIwKQogI2RlZmluZSBJTkNBX0lQX0lDVV9JQ1VfRUlDUl9FSUk0ICh2YWx1ZSkgICAgICAgICAgICAgICAoKCgoIDEgPDwgMykgLSAxKSAmICh2YWx1ZSkpIDw8IDE2KQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tbWlwcy9pby5oIGIvaW5jbHVkZS9hc20tbWlwcy9pby5oCmluZGV4IDlhN2FhZjcuLjg1N2ZiMDMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW1pcHMvaW8uaAorKysgYi9pbmNsdWRlL2FzbS1taXBzL2lvLmgKQEAgLTIwMyw3ICsyMDMsNyBAQAogI2RlZmluZSBpc2FfZXRoX2lvX2NvcHlfYW5kX3N1bShhLGIsYyxkKSBldGhfY29weV9hbmRfc3VtKChhKSwoYiksKGMpLChkKSkKIAogc3RhdGljIGlubGluZSBpbnQgY2hlY2tfc2lnbmF0dXJlKHVuc2lnbmVkIGxvbmcgaW9fYWRkciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaWduYXR1cmUsIGludCBsZW5ndGgpCisJCQkJICBjb25zdCB1bnNpZ25lZCBjaGFyICpzaWduYXR1cmUsIGludCBsZW5ndGgpCiB7CiAJaW50IHJldHZhbCA9IDA7CiAJZG8gewpAQCAtMjg2LDE1ICsyODYsMTUgQEAKICNkZWZpbmUgX19PVVRTMihtKSBcCiBpZiAoY291bnQpIFwKIF9fYXNtX18gX192b2xhdGlsZV9fICggXAotICAgICAgICAiLnNldFx0bm9yZW9yZGVyXG5cdCIgXAotICAgICAgICAiLnNldFx0bm9hdFxuIiBcCi0gICAgICAgICIxOlx0bCIgI20gIlx0JDEsKCUwKVxuXHQiIFwKLSAgICAgICAgInN1YnVcdCUxLDFcblx0IiBcCi0gICAgICAgICJzIiAjbSAiXHQkMSwlNCglNSlcblx0IiBcCi0gICAgICAgICJibmVcdCQwLCUxLDFiXG5cdCIgXAotICAgICAgICAiYWRkaXVcdCUwLCU2XG5cdCIgXAotICAgICAgICAiLnNldFx0YXRcblx0IiBcCi0gICAgICAgICIuc2V0XHRyZW9yZGVyIgorCSIuc2V0XHRub3Jlb3JkZXJcblx0IiBcCisJIi5zZXRcdG5vYXRcbiIgXAorCSIxOlx0bCIgI20gIlx0JDEsKCUwKVxuXHQiIFwKKwkic3VidVx0JTEsMVxuXHQiIFwKKwkicyIgI20gIlx0JDEsJTQoJTUpXG5cdCIgXAorCSJibmVcdCQwLCUxLDFiXG5cdCIgXAorCSJhZGRpdVx0JTAsJTZcblx0IiBcCisJIi5zZXRcdGF0XG5cdCIgXAorCSIuc2V0XHRyZW9yZGVyIgogCiAjZGVmaW5lIF9fT1VUUyhtLHMsaSkgXAogX19PVVRTMShzKSBfX09VVFMyKG0pIFwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW1pcHMvbWlwc3JlZ3MuaCBiL2luY2x1ZGUvYXNtLW1pcHMvbWlwc3JlZ3MuaAppbmRleCA1NmZjM2RhLi4zMTAwNzM4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1taXBzL21pcHNyZWdzLmgKKysrIGIvaW5jbHVkZS9hc20tbWlwcy9taXBzcmVncy5oCkBAIC03NSw3ICs3NSw3IEBACiAjZGVmaW5lIENQMF9JV0FUQ0ggJDE4CiAjZGVmaW5lIENQMF9EV0FUQ0ggJDE5CiAKLS8qIAorLyoKICAqIENvcHJvY2Vzc29yIDAgU2V0IDEgcmVnaXN0ZXIgbmFtZXMKICAqLwogI2RlZmluZSBDUDBfUzFfREVSUkFERFIwICAkMjYKQEAgLTE3NSw2OSArMTc1LDY5IEBACiAgKi8KICNkZWZpbmUgcmVhZF8zMmJpdF9jcDBfcmVnaXN0ZXIoc291cmNlKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAoeyBpbnQgX19yZXM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwlfX2FzbV9fIF9fdm9sYXRpbGVfXyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKIAkiLnNldFx0cHVzaFxuXHQiCQkJCQlcCiAJIi5zZXRcdHJlb3JkZXJcblx0IgkJCQkJXAotICAgICAgICAibWZjMFx0JTAsIlNUUihzb3VyY2UpIlxuXHQiICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwkibWZjMFx0JTAsIlNUUihzb3VyY2UpIlxuXHQiICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKIAkiLnNldFx0cG9wIgkJCQkJCVwKLSAgICAgICAgOiAiPXIiIChfX3JlcykpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIF9fcmVzO30pCisJOiAiPXIiIChfX3JlcykpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJX19yZXM7fSkKIAogI2RlZmluZSByZWFkXzMyYml0X2NwMF9zZXQxX3JlZ2lzdGVyKHNvdXJjZSkgICAgICAgICAgICAgICAgICAgIFwKICh7IGludCBfX3JlczsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCV9fYXNtX18gX192b2xhdGlsZV9fKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogCSIuc2V0XHRwdXNoXG5cdCIJCQkJCVwKIAkiLnNldFx0cmVvcmRlclxuXHQiCQkJCQlcCi0gICAgICAgICJjZmMwXHQlMCwiU1RSKHNvdXJjZSkiXG5cdCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCSJjZmMwXHQlMCwiU1RSKHNvdXJjZSkiXG5cdCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogCSIuc2V0XHRwb3AiCQkJCQkJXAotICAgICAgICA6ICI9ciIgKF9fcmVzKSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgX19yZXM7fSkKKwk6ICI9ciIgKF9fcmVzKSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwlfX3Jlczt9KQogCiAvKgogICogRm9yIG5vdyB1c2UgdGhpcyBvbmx5IHdpdGggaW50ZXJydXB0cyBkaXNhYmxlZCEKICAqLwogI2RlZmluZSByZWFkXzY0Yml0X2NwMF9yZWdpc3Rlcihzb3VyY2UpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICh7IGludCBfX3JlczsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIF9fYXNtX18gX192b2xhdGlsZV9fKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAiLnNldFx0bWlwczNcblx0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgImRtZmMwXHQlMCwiU1RSKHNvdXJjZSkiXG5cdCIgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICIuc2V0XHRtaXBzMCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICA6ICI9ciIgKF9fcmVzKSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgX19yZXM7fSkKKwlfX2FzbV9fIF9fdm9sYXRpbGVfXyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwkiLnNldFx0bWlwczNcblx0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwkiZG1mYzBcdCUwLCJTVFIoc291cmNlKSJcblx0IiAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwkiLnNldFx0bWlwczAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwk6ICI9ciIgKF9fcmVzKSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwlfX3Jlczt9KQogCiAjZGVmaW5lIHdyaXRlXzMyYml0X2NwMF9yZWdpc3RlcihyZWdpc3Rlcix2YWx1ZSkgICAgICAgICAgICAgICAgXAotICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgIm10YzBcdCUwLCJTVFIocmVnaXN0ZXIpIlxuXHQiCQkJCVwKKwlfX2FzbV9fIF9fdm9sYXRpbGVfXyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwkibXRjMFx0JTAsIlNUUihyZWdpc3RlcikiXG5cdCIJCQkJXAogCSJub3AiCQkJCQkJCVwKLSAgICAgICAgOiA6ICJyIiAodmFsdWUpKTsKKwk6IDogInIiICh2YWx1ZSkpOwogCiAjZGVmaW5lIHdyaXRlXzMyYml0X2NwMF9zZXQxX3JlZ2lzdGVyKHJlZ2lzdGVyLHZhbHVlKSAgICAgICAgICAgXAotICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgImN0YzBcdCUwLCJTVFIocmVnaXN0ZXIpIlxuXHQiCQkJCVwKKwlfX2FzbV9fIF9fdm9sYXRpbGVfXyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwkiY3RjMFx0JTAsIlNUUihyZWdpc3RlcikiXG5cdCIJCQkJXAogCSJub3AiCQkJCQkJCVwKLSAgICAgICAgOiA6ICJyIiAodmFsdWUpKTsKKwk6IDogInIiICh2YWx1ZSkpOwogCiAjZGVmaW5lIHdyaXRlXzY0Yml0X2NwMF9yZWdpc3RlcihyZWdpc3Rlcix2YWx1ZSkgICAgICAgICAgICAgICAgXAotICAgICAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgIi5zZXRcdG1pcHMzXG5cdCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICJkbXRjMFx0JTAsIlNUUihyZWdpc3RlcikiXG5cdCIgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAiLnNldFx0bWlwczAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgOiA6ICJyIiAodmFsdWUpKQorCV9fYXNtX18gX192b2xhdGlsZV9fKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCSIuc2V0XHRtaXBzM1xuXHQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCSJkbXRjMFx0JTAsIlNUUihyZWdpc3RlcikiXG5cdCIgICAgICAgICAgICAgICAgICAgICAgICAgXAorCSIuc2V0XHRtaXBzMCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCTogOiAiciIgKHZhbHVlKSkKIAotLyogCi0gKiBUaGlzIHNob3VsZCBiZSBjaGFuZ2VkIHdoZW4gd2UgZ2V0IGEgY29tcGlsZXIgdGhhdCBzdXBwb3J0IHRoZSBNSVBTMzIgSVNBLiAKKy8qCisgKiBUaGlzIHNob3VsZCBiZSBjaGFuZ2VkIHdoZW4gd2UgZ2V0IGEgY29tcGlsZXIgdGhhdCBzdXBwb3J0IHRoZSBNSVBTMzIgSVNBLgogICovCiAjZGVmaW5lIHJlYWRfbWlwczMyX2NwMF9jb25maWcxKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogKHsgaW50IF9fcmVzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgX19hc21fXyBfX3ZvbGF0aWxlX18oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJX19hc21fXyBfX3ZvbGF0aWxlX18oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAJIi5zZXRcdG5vcmVvcmRlclxuXHQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAJIi5zZXRcdG5vYXRcblx0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgIAkiLndvcmRcdDB4NDAwMTgwMDFcblx0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwkiLndvcmRcdDB4NDAwMTgwMDFcblx0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKIAkibW92ZVx0JTAsJDFcblx0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKIAkiLnNldFx0YXRcblx0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKIAkiLnNldFx0cmVvcmRlciIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKIAk6Ij1yIiAoX19yZXMpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgX19yZXM7fSkKKwlfX3Jlczt9KQogCiAvKgogICogUjR4MDAgaW50ZXJydXB0IGVuYWJsZSAvIGNhdXNlIGJpdHMKQEAgLTI3MywxMSArMjczLDExIEBACiBzZXRfY3AwXyMjbmFtZSh1bnNpZ25lZCBpbnQgc2V0KQkJCQlcCiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogCXVuc2lnbmVkIGludCByZXM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwkJCQkJCQkJXAogCXJlcyA9IHJlYWRfMzJiaXRfY3AwX3JlZ2lzdGVyKHJlZ2lzdGVyKTsgICAgICAgICAgICAgICAgXAogCXJlcyB8PSBzZXQ7CQkJCQkJXAogCXdyaXRlXzMyYml0X2NwMF9yZWdpc3RlcihyZWdpc3RlciwgcmVzKTsgICAgICAgIAlcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCQkJCQkJCQlcCiAJcmV0dXJuIHJlczsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiB9CQkJCQkJCQlcCiAJCQkJCQkJCVwKQEAgLTI4NSwxMSArMjg1LDExIEBACiBjbGVhcl9jcDBfIyNuYW1lKHVuc2lnbmVkIGludCBjbGVhcikJCQkJXAogeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKIAl1bnNpZ25lZCBpbnQgcmVzOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisJCQkJCQkJCVwKIAlyZXMgPSByZWFkXzMyYml0X2NwMF9yZWdpc3RlcihyZWdpc3Rlcik7ICAgICAgICAgICAgICAgIFwKIAlyZXMgJj0gfmNsZWFyOwkJCQkJCVwKIAl3cml0ZV8zMmJpdF9jcDBfcmVnaXN0ZXIocmVnaXN0ZXIsIHJlcyk7CQlcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCQkJCQkJCQlcCiAJcmV0dXJuIHJlczsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiB9CQkJCQkJCQlcCiAJCQkJCQkJCVwKQEAgLTI5NywxMyArMjk3LDEzIEBACiBjaGFuZ2VfY3AwXyMjbmFtZSh1bnNpZ25lZCBpbnQgY2hhbmdlLCB1bnNpZ25lZCBpbnQgbmV3KQlcCiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogCXVuc2lnbmVkIGludCByZXM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKwkJCQkJCQkJXAogCXJlcyA9IHJlYWRfMzJiaXRfY3AwX3JlZ2lzdGVyKHJlZ2lzdGVyKTsgICAgICAgICAgICAgICAgXAogCXJlcyAmPSB+Y2hhbmdlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogCXJlcyB8PSAobmV3ICYgY2hhbmdlKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogCWlmKGNoYW5nZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogCQl3cml0ZV8zMmJpdF9jcDBfcmVnaXN0ZXIocmVnaXN0ZXIsIHJlcyk7ICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorCQkJCQkJCQlcCiAJcmV0dXJuIHJlczsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiB9CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW1pcHMvcG9zaXhfdHlwZXMuaCBiL2luY2x1ZGUvYXNtLW1pcHMvcG9zaXhfdHlwZXMuaAppbmRleCA2YzQ4YjNmLi44NzlhYWUyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1taXBzL3Bvc2l4X3R5cGVzLmgKKysrIGIvaW5jbHVkZS9hc20tbWlwcy9wb3NpeF90eXBlcy5oCkBAIC00NSw3ICs0NSw3IEBACiAjZW5kaWYKIAogdHlwZWRlZiBzdHJ1Y3QgewotICAgICAgICBsb25nICAgIHZhbFsyXTsKKwlsb25nICAgIHZhbFsyXTsKIH0gX19rZXJuZWxfZnNpZF90OwogCiAjaWYgZGVmaW5lZChfX0tFUk5FTF9fKSB8fCAhZGVmaW5lZChfX0dMSUJDX18pIHx8IChfX0dMSUJDX18gPCAyKQpAQCAtNjgsNyArNjgsNyBAQAogCiAjdW5kZWYgX19GRF9JU1NFVAogc3RhdGljIF9faW5saW5lX18gaW50IF9fRkRfSVNTRVQodW5zaWduZWQgbG9uZyBfX2ZkLCBjb25zdCBfX2tlcm5lbF9mZF9zZXQgKl9fcCkKLXsgCit7CiAJdW5zaWduZWQgbG9uZyBfX3RtcCA9IF9fZmQgLyBfX05GREJJVFM7CiAJdW5zaWduZWQgbG9uZyBfX3JlbSA9IF9fZmQgJSBfX05GREJJVFM7CiAJcmV0dXJuIChfX3AtPmZkc19iaXRzW19fdG1wXSAmICgxVUw8PF9fcmVtKSkgIT0gMDsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYXNtLW1pcHMvcHJvY2Vzc29yLmggYi9pbmNsdWRlL2FzbS1taXBzL3Byb2Nlc3Nvci5oCmluZGV4IDhjM2RlOTAuLjY4MzhhZWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW1pcHMvcHJvY2Vzc29yLmgKKysrIGIvaW5jbHVkZS9hc20tbWlwcy9wcm9jZXNzb3IuaApAQCAtMTE1LDggKzExNSw4IEBACiB9OwogCiB1bmlvbiBtaXBzX2ZwdV91bmlvbiB7Ci0gICAgICAgIHN0cnVjdCBtaXBzX2ZwdV9oYXJkX3N0cnVjdCBoYXJkOwotICAgICAgICBzdHJ1Y3QgbWlwc19mcHVfc29mdF9zdHJ1Y3Qgc29mdDsKKwlzdHJ1Y3QgbWlwc19mcHVfaGFyZF9zdHJ1Y3QgaGFyZDsKKwlzdHJ1Y3QgbWlwc19mcHVfc29mdF9zdHJ1Y3Qgc29mdDsKIH07CiAKICNkZWZpbmUgSU5JVF9GUFUgeyBcCkBAIC0xNzMsMTEgKzE3MywxMSBAQAogI2VuZGlmIC8qICFkZWZpbmVkIChfTEFOR1VBR0VfQVNTRU1CTFkpICovCiAKICNkZWZpbmUgSU5JVF9USFJFQUQgIHsgXAotICAgICAgICAvKiBcCi0gICAgICAgICAqIHNhdmVkIG1haW4gcHJvY2Vzc29yIHJlZ2lzdGVycyBcCi0gICAgICAgICAqLyBcCisJLyogXAorCSAqIHNhdmVkIG1haW4gcHJvY2Vzc29yIHJlZ2lzdGVycyBcCisJICovIFwKIAkwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCBcCi0JICAgICAgICAgICAgICAgMCwgMCwgMCwgXAorCQkgICAgICAgMCwgMCwgMCwgXAogCS8qIFwKIAkgKiBzYXZlZCBjcDAgc3R1ZmYgXAogCSAqLyBcCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1taXBzL3N0cmluZy5oIGIvaW5jbHVkZS9hc20tbWlwcy9zdHJpbmcuaAppbmRleCAzNDNiNDVlLi40NjNhMTExIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1taXBzL3N0cmluZy5oCisrKyBiL2luY2x1ZGUvYXNtLW1pcHMvc3RyaW5nLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAkiLnNldFx0YXRcblx0IgogCSIuc2V0XHRyZW9yZGVyIgogCTogIj1yIiAoX19kZXN0KSwgIj1yIiAoX19zcmMpCi0gICAgICAgIDogIjAiIChfX2Rlc3QpLCAiMSIgKF9fc3JjKQorCTogIjAiIChfX2Rlc3QpLCAiMSIgKF9fc3JjKQogCTogIiQxIiwibWVtb3J5Iik7CiAKICAgcmV0dXJuIF9feGRlc3Q7CkBAIC01NCw5ICs1NCw5IEBACiAJIjI6XG5cdCIKIAkiLnNldFx0YXRcblx0IgogCSIuc2V0XHRyZW9yZGVyIgotICAgICAgICA6ICI9ciIgKF9fZGVzdCksICI9ciIgKF9fc3JjKSwgIj1yIiAoX19uKQotICAgICAgICA6ICIwIiAoX19kZXN0KSwgIjEiIChfX3NyYyksICIyIiAoX19uKQotICAgICAgICA6ICIkMSIsIm1lbW9yeSIpOworCTogIj1yIiAoX19kZXN0KSwgIj1yIiAoX19zcmMpLCAiPXIiIChfX24pCisJOiAiMCIgKF9fZGVzdCksICIxIiAoX19zcmMpLCAiMiIgKF9fbikKKwk6ICIkMSIsIm1lbW9yeSIpOwogCiAgIHJldHVybiBfX2Rlc3Q7CiB9CkBAIC0xMTAsNyArMTEwLDcgQEAKIAkiMjpcblx0IgogI2lmIGRlZmluZWQoQ09ORklHX0NQVV9SMzAwMCkKIAkibm9wXG5cdCIKLSNlbmRpZgkKKyNlbmRpZgogCSJtb3ZlXHQlMywkMVxuIgogCSIzOlx0c3VidVx0JTMsJDFcblx0IgogCSIuc2V0XHRhdFxuXHQiCmRpZmYgLS1naXQgYS9pbmNsdWRlL2FzbS1taXBzL3N5c3RlbS5oIGIvaW5jbHVkZS9hc20tbWlwcy9zeXN0ZW0uaAppbmRleCA0YjQ1ODQ3Li5iNmQ1MGUyIDEwMDY0NAotLS0gYS9pbmNsdWRlL2FzbS1taXBzL3N5c3RlbS5oCisrKyBiL2luY2x1ZGUvYXNtLW1pcHMvc3lzdGVtLmgKQEAgLTgsNyArOCw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTQgLSAxOTk5IGJ5IFJhbGYgQmFlY2hsZQogICoKICAqIENoYW5nZWQgc2V0X2V4Y2VwdF92ZWN0b3IgZGVjbGFyYXRpb24gdG8gYWxsb3cgcmV0dXJuIG9mIHByZXZpb3VzCi0gKiB2ZWN0b3IgYWRkcmVzcyB2YWx1ZSAtIG5lY2Vzc2FyeSBmb3IgImJvcnJvd2luZyIgdmVjdG9ycy4gCisgKiB2ZWN0b3IgYWRkcmVzcyB2YWx1ZSAtIG5lY2Vzc2FyeSBmb3IgImJvcnJvd2luZyIgdmVjdG9ycy4KICAqCiAgKiBLZXZpbiBELiBLaXNzZWxsLCBrZXZpbmtAbWlwcy5vcmcgYW5kIENhcnN0ZW4gTGFuZ2dhYXJkLCBjYXJzdGVubEBtaXBzLmNvbQogICogQ29weXJpZ2h0IChDKSAyMDAwIE1JUFMgVGVjaG5vbG9naWVzLCBJbmMuCkBAIC0xMjQsNyArMTI0LDcgQEAKIGV4dGVybiB1bnNpZ25lZCBsb25nIF9fZ2xvYmFsX3NhdmVfZmxhZ3Modm9pZCk7CiBleHRlcm4gdm9pZCBfX2dsb2JhbF9yZXN0b3JlX2ZsYWdzKHVuc2lnbmVkIGxvbmcpOwogIyAgZGVmaW5lIHN0aSgpIF9fZ2xvYmFsX3N0aSgpCi0jICBkZWZpbmUgY2xpKCkgX19nbG9iYWxfY2xpKCkgCisjICBkZWZpbmUgY2xpKCkgX19nbG9iYWxfY2xpKCkKICMgIGRlZmluZSBzYXZlX2ZsYWdzKHgpIGRvIHsgeCA9IF9fZ2xvYmFsX3NhdmVfZmxhZ3MoKTsgfSB3aGlsZSAoMCkKICMgIGRlZmluZSByZXN0b3JlX2ZsYWdzKHgpIF9fZ2xvYmFsX3Jlc3RvcmVfZmxhZ3MoeCkKICMgIGRlZmluZSBzYXZlX2FuZF9jbGkoeCkgZG8geyBzYXZlX2ZsYWdzKHgpOyBjbGkoKTsgfSB3aGlsZSgwKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9hc20tbWlwcy90eXBlcy5oIGIvaW5jbHVkZS9hc20tbWlwcy90eXBlcy5oCmluZGV4IDYzOGY3NTEuLmU3NTdlMjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvYXNtLW1pcHMvdHlwZXMuaAorKysgYi9pbmNsdWRlL2FzbS1taXBzL3R5cGVzLmgKQEAgLTMyLDEyICszMiwxMiBAQAogdHlwZWRlZiB1bnNpZ25lZCBsb25nIF9fdTY0OwogCiAjZWxzZQotIAorCiAjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgIWRlZmluZWQoX19TVFJJQ1RfQU5TSV9fKQogdHlwZWRlZiBfX3NpZ25lZF9fIGxvbmcgbG9uZyBfX3M2NDsKIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIF9fdTY0OwogI2VuZGlmCi0gCisKICNlbmRpZgogCiAvKgo=